@shizuoka-its/core 2.0.0-alpha.2 → 2.0.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/dist/application/exceptions/ApplicationExceptions.d.ts +6 -0
  2. package/dist/application/exceptions/ApplicationExceptions.js +15 -1
  3. package/dist/application/index.d.ts +1 -1
  4. package/dist/application/index.js +1 -1
  5. package/dist/application/usecase/base.d.ts +8 -0
  6. package/dist/application/usecase/base.js +11 -0
  7. package/dist/application/usecase/event/AddExhibitToEvent.d.ts +23 -0
  8. package/dist/application/usecase/event/AddExhibitToEvent.js +27 -0
  9. package/dist/application/usecase/event/ChangeExhibitDescription.d.ts +17 -0
  10. package/dist/application/usecase/event/ChangeExhibitDescription.js +24 -0
  11. package/dist/application/usecase/event/ChangeExhibitMarkdownContent.d.ts +17 -0
  12. package/dist/application/usecase/event/ChangeExhibitMarkdownContent.js +24 -0
  13. package/dist/application/usecase/event/ChangeExhibitName.d.ts +17 -0
  14. package/dist/application/usecase/event/ChangeExhibitName.js +24 -0
  15. package/dist/application/usecase/event/ChangeExhibitUrl.d.ts +18 -0
  16. package/dist/application/usecase/event/ChangeExhibitUrl.js +24 -0
  17. package/dist/application/usecase/event/ChangeLightningTalkDuration.d.ts +18 -0
  18. package/dist/application/usecase/event/ChangeLightningTalkDuration.js +24 -0
  19. package/dist/application/usecase/event/ChangeLightningTalkSlideUrl.d.ts +18 -0
  20. package/dist/application/usecase/event/ChangeLightningTalkSlideUrl.js +24 -0
  21. package/dist/application/usecase/event/ChangeLightningTalkStartTime.d.ts +17 -0
  22. package/dist/application/usecase/event/ChangeLightningTalkStartTime.js +24 -0
  23. package/dist/application/usecase/event/CreateEvent.d.ts +19 -0
  24. package/dist/application/usecase/event/CreateEvent.js +25 -0
  25. package/dist/application/usecase/event/DeleteEvent.d.ts +14 -0
  26. package/dist/application/usecase/event/DeleteEvent.js +22 -0
  27. package/dist/application/usecase/event/GetEvent.d.ts +17 -0
  28. package/dist/application/usecase/event/GetEvent.js +18 -0
  29. package/dist/application/usecase/event/GetEventList.d.ts +13 -0
  30. package/dist/application/usecase/event/GetEventList.js +17 -0
  31. package/dist/application/usecase/event/RemoveExhibitFromEvent.d.ts +16 -0
  32. package/dist/application/usecase/event/RemoveExhibitFromEvent.js +24 -0
  33. package/dist/application/usecase/event/UpdateEvent.d.ts +17 -0
  34. package/dist/application/usecase/event/UpdateEvent.js +29 -0
  35. package/dist/application/usecase/event/index.d.ts +14 -0
  36. package/dist/application/usecase/event/index.js +30 -0
  37. package/dist/application/usecase/index.d.ts +3 -9
  38. package/dist/application/usecase/index.js +3 -9
  39. package/dist/application/usecase/{ChangeDiscordNickName.d.ts → member/ChangeDiscordNickName.d.ts} +3 -3
  40. package/dist/application/usecase/{ChangeDiscordNickName.js → member/ChangeDiscordNickName.js} +4 -2
  41. package/dist/application/usecase/{ConnectDiscordAccount.d.ts → member/ConnectDiscordAccount.d.ts} +2 -2
  42. package/dist/application/usecase/{ConnectDiscordAccount.js → member/ConnectDiscordAccount.js} +2 -2
  43. package/dist/application/usecase/{GetMember.d.ts → member/GetMember.d.ts} +2 -2
  44. package/dist/application/usecase/{GetMemberByDiscordId.d.ts → member/GetMemberByDiscordId.d.ts} +2 -2
  45. package/dist/application/usecase/{GetMemberByEmail.d.ts → member/GetMemberByEmail.d.ts} +2 -2
  46. package/dist/application/usecase/{GetMemberList.d.ts → member/GetMemberList.d.ts} +2 -2
  47. package/dist/application/usecase/{RegisterMember.d.ts → member/RegisterMember.d.ts} +3 -3
  48. package/dist/application/usecase/{RegisterMember.js → member/RegisterMember.js} +5 -3
  49. package/dist/application/usecase/member/UpdateMember.d.ts +18 -0
  50. package/dist/application/usecase/{UpdateMember.js → member/UpdateMember.js} +5 -3
  51. package/dist/application/usecase/member/index.d.ts +8 -0
  52. package/dist/application/usecase/member/index.js +24 -0
  53. package/dist/domain/aggregates/event/Event.d.ts +39 -0
  54. package/dist/domain/aggregates/event/Event.js +68 -0
  55. package/dist/domain/aggregates/event/EventRepository.d.ts +7 -0
  56. package/dist/domain/aggregates/event/Exhibit.d.ts +33 -0
  57. package/dist/domain/aggregates/event/Exhibit.js +62 -0
  58. package/dist/domain/aggregates/event/LightningTalk.d.ts +17 -0
  59. package/dist/domain/aggregates/event/LightningTalk.js +30 -0
  60. package/dist/domain/aggregates/event/index.d.ts +4 -0
  61. package/dist/domain/aggregates/event/index.js +20 -0
  62. package/dist/domain/aggregates/index.d.ts +2 -0
  63. package/dist/domain/aggregates/index.js +18 -0
  64. package/dist/domain/{member → aggregates/member}/DiscordAccount.d.ts +5 -0
  65. package/dist/domain/{member → aggregates/member}/DiscordAccount.js +7 -0
  66. package/dist/domain/aggregates/member/Member.d.ts +38 -0
  67. package/dist/domain/{member → aggregates/member}/Member.js +25 -8
  68. package/dist/domain/aggregates/memberEvent/MemberEvent.d.ts +11 -0
  69. package/dist/domain/aggregates/memberEvent/MemberEvent.js +18 -0
  70. package/dist/domain/aggregates/memberEvent/MemberEventRepository.d.ts +8 -0
  71. package/dist/domain/aggregates/memberEvent/MemberEventRepository.js +2 -0
  72. package/dist/domain/aggregates/memberExhibit/MemberExhibit.d.ts +11 -0
  73. package/dist/domain/aggregates/memberExhibit/MemberExhibit.js +18 -0
  74. package/dist/domain/aggregates/memberExhibit/MemberExhibitRepository.d.ts +8 -0
  75. package/dist/domain/aggregates/memberExhibit/MemberExhibitRepository.js +2 -0
  76. package/dist/domain/exceptions/DomainExceptions.d.ts +21 -0
  77. package/dist/domain/exceptions/DomainExceptions.js +50 -1
  78. package/dist/domain/index.d.ts +1 -1
  79. package/dist/domain/index.js +1 -1
  80. package/dist/domain/value-objects/LightningTalkDuration.d.ts +4 -0
  81. package/dist/domain/value-objects/LightningTalkDuration.js +11 -0
  82. package/dist/domain/value-objects/Url.d.ts +4 -0
  83. package/dist/domain/value-objects/Url.js +19 -0
  84. package/dist/domain/value-objects/index.d.ts +3 -1
  85. package/dist/domain/value-objects/index.js +3 -1
  86. package/dist/executable/event.d.ts +21 -0
  87. package/dist/executable/event.js +50 -0
  88. package/dist/executable/member.d.ts +9 -9
  89. package/dist/infrastructure/prisma/PrismaEventRepository.d.ts +22 -0
  90. package/dist/infrastructure/prisma/PrismaEventRepository.js +172 -0
  91. package/dist/infrastructure/prisma/PrismaMemberEventRepository.d.ts +10 -0
  92. package/dist/infrastructure/prisma/PrismaMemberEventRepository.js +48 -0
  93. package/dist/infrastructure/prisma/PrismaMemberExhibitRepository.d.ts +10 -0
  94. package/dist/infrastructure/prisma/PrismaMemberExhibitRepository.js +48 -0
  95. package/dist/infrastructure/prisma/PrismaMemberRepository.js +14 -13
  96. package/dist/infrastructure/prisma/index.d.ts +3 -0
  97. package/dist/infrastructure/prisma/index.js +3 -0
  98. package/package.json +1 -1
  99. package/dist/application/usecase/BaseUseCase.d.ts +0 -8
  100. package/dist/application/usecase/UpdateMember.d.ts +0 -27
  101. package/dist/domain/member/Member.d.ts +0 -23
  102. /package/dist/application/usecase/{GetMember.js → member/GetMember.js} +0 -0
  103. /package/dist/application/usecase/{GetMemberByDiscordId.js → member/GetMemberByDiscordId.js} +0 -0
  104. /package/dist/application/usecase/{GetMemberByEmail.js → member/GetMemberByEmail.js} +0 -0
  105. /package/dist/application/usecase/{GetMemberList.js → member/GetMemberList.js} +0 -0
  106. /package/dist/{application/usecase/BaseUseCase.js → domain/aggregates/event/EventRepository.js} +0 -0
  107. /package/dist/domain/{member → aggregates/member}/MemberRepository.d.ts +0 -0
  108. /package/dist/domain/{member → aggregates/member}/MemberRepository.js +0 -0
  109. /package/dist/domain/{member → aggregates/member}/index.d.ts +0 -0
  110. /package/dist/domain/{member → aggregates/member}/index.js +0 -0
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PrismaEventRepository = void 0;
4
+ const client_1 = require("@prisma/client");
5
+ const event_1 = require("../../domain/aggregates/event");
6
+ const value_objects_1 = require("../../domain/value-objects");
7
+ const prisma = new client_1.PrismaClient();
8
+ class PrismaEventRepository {
9
+ /**
10
+ * Prisma の Record から ドメインの Event を構築
11
+ * Exhibit.createWithLightningTalk() を使用して lightningTalk を持つ Exhibit を生成
12
+ */
13
+ toDomain(record) {
14
+ var _a, _b, _c, _d;
15
+ const event = new event_1.Event(record.id, record.name, record.date);
16
+ // exhibits をドメインに変換して追加
17
+ for (const exhibitRecord of record.exhibits) {
18
+ let exhibit;
19
+ if (exhibitRecord.lightningTalk) {
20
+ const ltRecord = exhibitRecord.lightningTalk;
21
+ const lightningTalk = new event_1.LightningTalk(ltRecord.exhibitId, ltRecord.startTime, new value_objects_1.LightningTalkDuration(ltRecord.duration), ltRecord.slideUrl ? new value_objects_1.Url(ltRecord.slideUrl) : undefined);
22
+ exhibit = event_1.Exhibit.createWithLightningTalk(exhibitRecord.id, exhibitRecord.name, lightningTalk, (_a = exhibitRecord.description) !== null && _a !== void 0 ? _a : undefined, (_b = exhibitRecord.markdownContent) !== null && _b !== void 0 ? _b : undefined, exhibitRecord.url ? new value_objects_1.Url(exhibitRecord.url) : undefined);
23
+ }
24
+ else {
25
+ exhibit = new event_1.Exhibit(exhibitRecord.id, exhibitRecord.name, (_c = exhibitRecord.description) !== null && _c !== void 0 ? _c : undefined, (_d = exhibitRecord.markdownContent) !== null && _d !== void 0 ? _d : undefined, exhibitRecord.url ? new value_objects_1.Url(exhibitRecord.url) : undefined);
26
+ }
27
+ event.addExhibit(exhibit);
28
+ }
29
+ return event;
30
+ }
31
+ /**
32
+ * DBへEventを保存するためのヘルパー
33
+ * Event, Exhibit, LightningTalk の upsert処理を行う
34
+ */
35
+ async persistEvent(event) {
36
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
37
+ const snapshot = event.toSnapshot();
38
+ // 1) まず event を upsert
39
+ await prisma.event.upsert({
40
+ where: { id: snapshot.id },
41
+ update: {
42
+ name: snapshot.name,
43
+ date: snapshot.date,
44
+ },
45
+ create: {
46
+ id: snapshot.id,
47
+ name: snapshot.name,
48
+ date: snapshot.date,
49
+ },
50
+ });
51
+ // 2) 既存 exhibits を削除(スナップショットに含まれないもののみ)
52
+ const snapshotExhibitIds = snapshot.exhibits.map((ex) => ex.id);
53
+ // lightningTalk を先に削除
54
+ await prisma.lightningTalk.deleteMany({
55
+ where: {
56
+ exhibitId: {
57
+ in: await this.findObsoleteExhibitIds(snapshot.id, snapshotExhibitIds),
58
+ },
59
+ },
60
+ });
61
+ // exhibit 削除
62
+ await prisma.exhibit.deleteMany({
63
+ where: {
64
+ eventId: snapshot.id,
65
+ id: { notIn: snapshotExhibitIds },
66
+ },
67
+ });
68
+ // 3) exhibits を upsert
69
+ for (const ex of snapshot.exhibits) {
70
+ await prisma.exhibit.upsert({
71
+ where: { id: ex.id },
72
+ create: {
73
+ id: ex.id,
74
+ name: ex.name,
75
+ description: (_a = ex.description) !== null && _a !== void 0 ? _a : null,
76
+ markdownContent: (_b = ex.markdownContent) !== null && _b !== void 0 ? _b : null,
77
+ url: (_d = (_c = ex.url) === null || _c === void 0 ? void 0 : _c.getValue()) !== null && _d !== void 0 ? _d : null,
78
+ eventId: snapshot.id,
79
+ },
80
+ update: {
81
+ name: ex.name,
82
+ description: (_e = ex.description) !== null && _e !== void 0 ? _e : null,
83
+ markdownContent: (_f = ex.markdownContent) !== null && _f !== void 0 ? _f : null,
84
+ url: (_h = (_g = ex.url) === null || _g === void 0 ? void 0 : _g.getValue()) !== null && _h !== void 0 ? _h : null,
85
+ },
86
+ });
87
+ // LightningTalk
88
+ if (ex.lightningTalk) {
89
+ await prisma.lightningTalk.upsert({
90
+ where: { exhibitId: ex.id },
91
+ create: {
92
+ exhibitId: ex.id,
93
+ startTime: ex.lightningTalk.startTime,
94
+ duration: ex.lightningTalk.durationMinutes.getValue(),
95
+ slideUrl: (_k = (_j = ex.lightningTalk.slideUrl) === null || _j === void 0 ? void 0 : _j.getValue()) !== null && _k !== void 0 ? _k : null,
96
+ },
97
+ update: {
98
+ startTime: ex.lightningTalk.startTime,
99
+ duration: ex.lightningTalk.durationMinutes.getValue(),
100
+ slideUrl: (_m = (_l = ex.lightningTalk.slideUrl) === null || _l === void 0 ? void 0 : _l.getValue()) !== null && _m !== void 0 ? _m : null,
101
+ },
102
+ });
103
+ }
104
+ else {
105
+ // 存在していたら削除
106
+ await prisma.lightningTalk.deleteMany({
107
+ where: { exhibitId: ex.id },
108
+ });
109
+ }
110
+ }
111
+ }
112
+ /**
113
+ * どの ExhibitID が消えたかを調べるヘルパー
114
+ */
115
+ async findObsoleteExhibitIds(eventId, keptExhibitIds) {
116
+ // イベントに紐づく既存のExhibitIDを全て取得
117
+ const existingIds = await prisma.exhibit.findMany({
118
+ where: { eventId },
119
+ select: { id: true },
120
+ });
121
+ const existingIdSet = new Set(existingIds.map((r) => r.id));
122
+ // スナップショットに無いIDだけ抽出
123
+ const keptIdSet = new Set(keptExhibitIds);
124
+ return [...existingIdSet].filter((id) => !keptIdSet.has(id));
125
+ }
126
+ // =============== EventRepository 実装 ===============
127
+ async findById(id) {
128
+ const record = await prisma.event.findUnique({
129
+ where: { id },
130
+ include: {
131
+ exhibits: {
132
+ include: { lightningTalk: true },
133
+ },
134
+ },
135
+ });
136
+ if (!record)
137
+ return null;
138
+ return this.toDomain(record);
139
+ }
140
+ async findAll() {
141
+ const records = await prisma.event.findMany({
142
+ include: {
143
+ exhibits: {
144
+ include: { lightningTalk: true },
145
+ },
146
+ },
147
+ });
148
+ return records.map((r) => this.toDomain(r));
149
+ }
150
+ async save(event) {
151
+ await this.persistEvent(event);
152
+ }
153
+ async delete(eventId) {
154
+ // 先に lightningTalk を削除
155
+ const exhibitIds = await prisma.exhibit.findMany({
156
+ where: { eventId },
157
+ select: { id: true },
158
+ });
159
+ await prisma.lightningTalk.deleteMany({
160
+ where: {
161
+ exhibitId: { in: exhibitIds.map((ex) => ex.id) },
162
+ },
163
+ });
164
+ // exhibit 削除
165
+ await prisma.exhibit.deleteMany({ where: { eventId } });
166
+ // event 削除
167
+ await prisma.event.delete({
168
+ where: { id: eventId },
169
+ });
170
+ }
171
+ }
172
+ exports.PrismaEventRepository = PrismaEventRepository;
@@ -0,0 +1,10 @@
1
+ import { MemberEvent } from "../../domain/aggregates/memberEvent/MemberEvent";
2
+ import type { MemberEventRepository } from "../../domain/aggregates/memberEvent/MemberEventRepository";
3
+ export declare class PrismaMemberEventRepository implements MemberEventRepository {
4
+ private toDomain;
5
+ findById(id: string): Promise<MemberEvent | null>;
6
+ findByMemberId(memberId: string): Promise<MemberEvent[]>;
7
+ findByEventId(eventId: string): Promise<MemberEvent[]>;
8
+ save(memberEvent: MemberEvent): Promise<void>;
9
+ delete(id: string): Promise<void>;
10
+ }
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PrismaMemberEventRepository = void 0;
4
+ const client_1 = require("@prisma/client");
5
+ const MemberEvent_1 = require("../../domain/aggregates/memberEvent/MemberEvent");
6
+ const prisma = new client_1.PrismaClient();
7
+ class PrismaMemberEventRepository {
8
+ toDomain(record) {
9
+ return new MemberEvent_1.MemberEvent(record.id, record.memberId, record.eventId);
10
+ }
11
+ async findById(id) {
12
+ const record = await prisma.memberEvent.findUnique({ where: { id } });
13
+ if (!record)
14
+ return null;
15
+ return this.toDomain(record);
16
+ }
17
+ async findByMemberId(memberId) {
18
+ const records = await prisma.memberEvent.findMany({
19
+ where: { memberId },
20
+ });
21
+ return records.map((r) => this.toDomain(r));
22
+ }
23
+ async findByEventId(eventId) {
24
+ const records = await prisma.memberEvent.findMany({
25
+ where: { eventId },
26
+ });
27
+ return records.map((r) => this.toDomain(r));
28
+ }
29
+ async save(memberEvent) {
30
+ const snapshot = memberEvent.toSnapshot();
31
+ await prisma.memberEvent.upsert({
32
+ where: { id: snapshot.id },
33
+ create: {
34
+ id: snapshot.id,
35
+ memberId: snapshot.memberId,
36
+ eventId: snapshot.eventId,
37
+ },
38
+ update: {
39
+ memberId: snapshot.memberId,
40
+ eventId: snapshot.eventId,
41
+ },
42
+ });
43
+ }
44
+ async delete(id) {
45
+ await prisma.memberEvent.delete({ where: { id } });
46
+ }
47
+ }
48
+ exports.PrismaMemberEventRepository = PrismaMemberEventRepository;
@@ -0,0 +1,10 @@
1
+ import { MemberExhibit } from "../../domain/aggregates/memberExhibit/MemberExhibit";
2
+ import type { MemberExhibitRepository } from "../../domain/aggregates/memberExhibit/MemberExhibitRepository";
3
+ export declare class PrismaMemberExhibitRepository implements MemberExhibitRepository {
4
+ private toDomain;
5
+ findById(id: string): Promise<MemberExhibit | null>;
6
+ findByMemberId(memberId: string): Promise<MemberExhibit[]>;
7
+ findByExhibitId(exhibitId: string): Promise<MemberExhibit[]>;
8
+ save(memberExhibit: MemberExhibit): Promise<void>;
9
+ delete(id: string): Promise<void>;
10
+ }
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PrismaMemberExhibitRepository = void 0;
4
+ const client_1 = require("@prisma/client");
5
+ const MemberExhibit_1 = require("../../domain/aggregates/memberExhibit/MemberExhibit");
6
+ const prisma = new client_1.PrismaClient();
7
+ class PrismaMemberExhibitRepository {
8
+ toDomain(record) {
9
+ return new MemberExhibit_1.MemberExhibit(record.id, record.memberId, record.exhibitId);
10
+ }
11
+ async findById(id) {
12
+ const record = await prisma.memberExhibit.findUnique({ where: { id } });
13
+ if (!record)
14
+ return null;
15
+ return this.toDomain(record);
16
+ }
17
+ async findByMemberId(memberId) {
18
+ const records = await prisma.memberExhibit.findMany({
19
+ where: { memberId },
20
+ });
21
+ return records.map((r) => this.toDomain(r));
22
+ }
23
+ async findByExhibitId(exhibitId) {
24
+ const records = await prisma.memberExhibit.findMany({
25
+ where: { exhibitId },
26
+ });
27
+ return records.map((r) => this.toDomain(r));
28
+ }
29
+ async save(memberExhibit) {
30
+ const snapshot = memberExhibit.toSnapshot();
31
+ await prisma.memberExhibit.upsert({
32
+ where: { id: snapshot.id },
33
+ create: {
34
+ id: snapshot.id,
35
+ memberId: snapshot.memberId,
36
+ exhibitId: snapshot.exhibitId,
37
+ },
38
+ update: {
39
+ memberId: snapshot.memberId,
40
+ exhibitId: snapshot.exhibitId,
41
+ },
42
+ });
43
+ }
44
+ async delete(id) {
45
+ await prisma.memberExhibit.delete({ where: { id } });
46
+ }
47
+ }
48
+ exports.PrismaMemberExhibitRepository = PrismaMemberExhibitRepository;
@@ -56,25 +56,26 @@ class PrismaMemberRepository {
56
56
  }
57
57
  async save(member) {
58
58
  var _a, _b;
59
+ const memberSnapshot = member.toSnapshot();
59
60
  await prisma.member.upsert({
60
- where: { id: member.id },
61
+ where: { id: memberSnapshot.id },
61
62
  update: {
62
- name: member.name,
63
- studentId: member.studentId,
64
- department: member.department.toString(),
65
- email: member.email.getValue(),
66
- personalEmail: (_a = member.personalEmail) === null || _a === void 0 ? void 0 : _a.getValue(),
63
+ name: memberSnapshot.name,
64
+ studentId: memberSnapshot.studentId,
65
+ department: memberSnapshot.department.toString(),
66
+ email: memberSnapshot.email.getValue(),
67
+ personalEmail: (_a = memberSnapshot.personalEmail) === null || _a === void 0 ? void 0 : _a.getValue(),
67
68
  },
68
69
  create: {
69
- id: member.id,
70
- name: member.name,
71
- studentId: member.studentId,
72
- department: member.department.toString(),
73
- email: member.email.getValue(),
74
- personalEmail: (_b = member.personalEmail) === null || _b === void 0 ? void 0 : _b.getValue(),
70
+ id: memberSnapshot.id,
71
+ name: memberSnapshot.name,
72
+ studentId: memberSnapshot.studentId,
73
+ department: memberSnapshot.department.toString(),
74
+ email: memberSnapshot.email.getValue(),
75
+ personalEmail: (_b = memberSnapshot.personalEmail) === null || _b === void 0 ? void 0 : _b.getValue(),
75
76
  },
76
77
  });
77
- for (const discordAccount of member.getDiscordAccounts()) {
78
+ for (const discordAccount of memberSnapshot.discordAccounts) {
78
79
  await prisma.discordAccount.upsert({
79
80
  where: { id: discordAccount.id },
80
81
  update: { nickName: discordAccount.nickName },
@@ -1 +1,4 @@
1
+ export * from "./PrismaEventRepository";
2
+ export * from "./PrismaMemberEventRepository";
3
+ export * from "./PrismaMemberExhibitRepository";
1
4
  export * from "./PrismaMemberRepository";
@@ -14,4 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./PrismaEventRepository"), exports);
18
+ __exportStar(require("./PrismaMemberEventRepository"), exports);
19
+ __exportStar(require("./PrismaMemberExhibitRepository"), exports);
17
20
  __exportStar(require("./PrismaMemberRepository"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shizuoka-its/core",
3
- "version": "2.0.0-alpha.2",
3
+ "version": "2.0.0-alpha.4",
4
4
  "description": "ITS core library",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,8 +0,0 @@
1
- /**
2
- * ユースケースの基底インターフェース
3
- * TInputはユースケースへの入力型
4
- * TOutputはユースケースからの出力型
5
- */
6
- export interface IUseCase<TInput, TOutput> {
7
- execute(input: TInput): Promise<TOutput>;
8
- }
@@ -1,27 +0,0 @@
1
- import { type Member, type MemberRepository } from "../../domain";
2
- import type { IUseCase } from "./BaseUseCase";
3
- export interface UpdateMemberInput {
4
- memberId: string;
5
- name?: string;
6
- studentId?: string;
7
- department?: string;
8
- email?: string;
9
- personalEmail?: string;
10
- discordAccountId?: string;
11
- discordNickName?: string;
12
- }
13
- export type UpdateMemberOutput = Member;
14
- export declare class UpdateMemberUseCase implements IUseCase<UpdateMemberInput, UpdateMemberOutput> {
15
- private readonly memberRepo;
16
- constructor(memberRepo: MemberRepository);
17
- execute(input: {
18
- memberId: string;
19
- name?: string;
20
- studentId?: string;
21
- department?: string;
22
- email?: string;
23
- personalEmail?: string;
24
- discordAccountId?: string;
25
- discordNickName?: string;
26
- }): Promise<Member>;
27
- }
@@ -1,23 +0,0 @@
1
- import type { Department } from "../value-objects/Departments";
2
- import type { Email } from "../value-objects/Email";
3
- import type { UniversityEmail } from "../value-objects/UniversityEmail";
4
- import type { DiscordAccount } from "./DiscordAccount";
5
- export declare class Member {
6
- readonly id: string;
7
- name: string;
8
- studentId: string;
9
- department: Department;
10
- email: UniversityEmail;
11
- personalEmail?: Email | undefined;
12
- private discordAccounts;
13
- constructor(id: string, name: string, studentId: string, department: Department, email: UniversityEmail, personalEmail?: Email | undefined);
14
- setName(newName: string): void;
15
- setStudentId(newStudentId: string): void;
16
- setDepartment(newDepartment: Department): void;
17
- setEmail(newEmail: UniversityEmail): void;
18
- setPersonalEmail(newPersonalEmail?: Email): void;
19
- addDiscordAccount(discordAccount: DiscordAccount): void;
20
- removeDiscordAccount(discordAccountId: string): void;
21
- getDiscordAccounts(): DiscordAccount[];
22
- getDiscordAccountById(discordAccountId: string): DiscordAccount | undefined;
23
- }