@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,17 @@
1
+ import type { EventRepository } from "../../../domain/aggregates/event/EventRepository";
2
+ import { IUseCase } from "../base";
3
+ export interface UpdateEventInput {
4
+ eventId: string;
5
+ name?: string;
6
+ date?: Date;
7
+ }
8
+ import type { Event } from "../../../domain/aggregates/event/Event";
9
+ export type UpdateEventOutput = Event;
10
+ /**
11
+ * イベント名・日付の変更ユースケース
12
+ */
13
+ export declare class UpdateEvent extends IUseCase<UpdateEventInput, UpdateEventOutput> {
14
+ private readonly eventRepository;
15
+ constructor(eventRepository: EventRepository);
16
+ execute(input: UpdateEventInput): Promise<UpdateEventOutput>;
17
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UpdateEvent = void 0;
4
+ const exceptions_1 = require("../../exceptions");
5
+ const base_1 = require("../base");
6
+ /**
7
+ * イベント名・日付の変更ユースケース
8
+ */
9
+ class UpdateEvent extends base_1.IUseCase {
10
+ constructor(eventRepository) {
11
+ super();
12
+ this.eventRepository = eventRepository;
13
+ }
14
+ async execute(input) {
15
+ const event = await this.eventRepository.findById(input.eventId);
16
+ if (!event) {
17
+ throw new exceptions_1.EventNotFoundException();
18
+ }
19
+ if (input.name !== undefined) {
20
+ event.changeName(input.name);
21
+ }
22
+ if (input.date !== undefined) {
23
+ event.changeDate(input.date);
24
+ }
25
+ await this.eventRepository.save(event);
26
+ return event;
27
+ }
28
+ }
29
+ exports.UpdateEvent = UpdateEvent;
@@ -0,0 +1,14 @@
1
+ export * from "./AddExhibitToEvent";
2
+ export * from "./ChangeExhibitDescription";
3
+ export * from "./ChangeExhibitMarkdownContent";
4
+ export * from "./ChangeExhibitName";
5
+ export * from "./ChangeExhibitUrl";
6
+ export * from "./ChangeLightningTalkDuration";
7
+ export * from "./ChangeLightningTalkSlideUrl";
8
+ export * from "./ChangeLightningTalkStartTime";
9
+ export * from "./CreateEvent";
10
+ export * from "./DeleteEvent";
11
+ export * from "./GetEvent";
12
+ export * from "./GetEventList";
13
+ export * from "./RemoveExhibitFromEvent";
14
+ export * from "./UpdateEvent";
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./AddExhibitToEvent"), exports);
18
+ __exportStar(require("./ChangeExhibitDescription"), exports);
19
+ __exportStar(require("./ChangeExhibitMarkdownContent"), exports);
20
+ __exportStar(require("./ChangeExhibitName"), exports);
21
+ __exportStar(require("./ChangeExhibitUrl"), exports);
22
+ __exportStar(require("./ChangeLightningTalkDuration"), exports);
23
+ __exportStar(require("./ChangeLightningTalkSlideUrl"), exports);
24
+ __exportStar(require("./ChangeLightningTalkStartTime"), exports);
25
+ __exportStar(require("./CreateEvent"), exports);
26
+ __exportStar(require("./DeleteEvent"), exports);
27
+ __exportStar(require("./GetEvent"), exports);
28
+ __exportStar(require("./GetEventList"), exports);
29
+ __exportStar(require("./RemoveExhibitFromEvent"), exports);
30
+ __exportStar(require("./UpdateEvent"), exports);
@@ -1,9 +1,3 @@
1
- export * from "./BaseUseCase";
2
- export * from "./ChangeDiscordNickName";
3
- export * from "./ConnectDiscordAccount";
4
- export * from "./GetMember";
5
- export * from "./GetMemberByEmail";
6
- export * from "./GetMemberByDiscordId";
7
- export * from "./GetMemberList";
8
- export * from "./RegisterMember";
9
- export * from "./UpdateMember";
1
+ export * from "./base";
2
+ export * from "./event";
3
+ export * from "./member";
@@ -14,12 +14,6 @@ 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("./BaseUseCase"), exports);
18
- __exportStar(require("./ChangeDiscordNickName"), exports);
19
- __exportStar(require("./ConnectDiscordAccount"), exports);
20
- __exportStar(require("./GetMember"), exports);
21
- __exportStar(require("./GetMemberByEmail"), exports);
22
- __exportStar(require("./GetMemberByDiscordId"), exports);
23
- __exportStar(require("./GetMemberList"), exports);
24
- __exportStar(require("./RegisterMember"), exports);
25
- __exportStar(require("./UpdateMember"), exports);
17
+ __exportStar(require("./base"), exports);
18
+ __exportStar(require("./event"), exports);
19
+ __exportStar(require("./member"), exports);
@@ -1,11 +1,11 @@
1
- import type { Member, MemberRepository } from "../../domain";
2
- import type { IUseCase } from "./BaseUseCase";
1
+ import type { Member, MemberRepository } from "../../../domain";
2
+ import { IUseCase } from "../base";
3
3
  export interface ChangeDiscordNickNameInput {
4
4
  discordAccountId: string;
5
5
  discordNickName: string;
6
6
  }
7
7
  export type ChangeDiscordNickNameOutput = Member;
8
- export declare class ChangeDiscordNickNameUseCase implements IUseCase<ChangeDiscordNickNameInput, ChangeDiscordNickNameOutput> {
8
+ export declare class ChangeDiscordNickNameUseCase extends IUseCase<ChangeDiscordNickNameInput, ChangeDiscordNickNameOutput> {
9
9
  private readonly memberRepo;
10
10
  constructor(memberRepo: MemberRepository);
11
11
  execute(input: ChangeDiscordNickNameInput): Promise<ChangeDiscordNickNameOutput>;
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ChangeDiscordNickNameUseCase = void 0;
4
- const ApplicationExceptions_1 = require("../exceptions/ApplicationExceptions");
5
- class ChangeDiscordNickNameUseCase {
4
+ const ApplicationExceptions_1 = require("../../exceptions/ApplicationExceptions");
5
+ const base_1 = require("../base");
6
+ class ChangeDiscordNickNameUseCase extends base_1.IUseCase {
6
7
  constructor(memberRepo) {
8
+ super();
7
9
  this.memberRepo = memberRepo;
8
10
  }
9
11
  async execute(input) {
@@ -1,5 +1,5 @@
1
- import { type Member, type MemberRepository } from "../../domain";
2
- import type { IUseCase } from "./BaseUseCase";
1
+ import { type Member, type MemberRepository } from "../../../domain";
2
+ import type { IUseCase } from "../base";
3
3
  export interface ConnectDiscordAccountInput {
4
4
  memberId: string;
5
5
  discordAccountId: string;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ConnectDiscordAccountUseCase = void 0;
4
- const domain_1 = require("../../domain");
5
- const ApplicationExceptions_1 = require("../exceptions/ApplicationExceptions");
4
+ const domain_1 = require("../../../domain");
5
+ const ApplicationExceptions_1 = require("../../exceptions/ApplicationExceptions");
6
6
  class ConnectDiscordAccountUseCase {
7
7
  constructor(memberRepo) {
8
8
  this.memberRepo = memberRepo;
@@ -1,5 +1,5 @@
1
- import type { Member, MemberRepository } from "../../domain";
2
- import type { IUseCase } from "./BaseUseCase";
1
+ import type { Member, MemberRepository } from "../../../domain";
2
+ import type { IUseCase } from "../base";
3
3
  export interface GetMemberInput {
4
4
  id: string;
5
5
  }
@@ -1,5 +1,5 @@
1
- import type { Member, MemberRepository } from "../../domain";
2
- import type { IUseCase } from "./BaseUseCase";
1
+ import type { Member, MemberRepository } from "../../../domain";
2
+ import type { IUseCase } from "../base";
3
3
  export interface GetMemberByDiscordIdInput {
4
4
  discordId: string;
5
5
  }
@@ -1,5 +1,5 @@
1
- import type { Member, MemberRepository } from "../../domain";
2
- import type { IUseCase } from "./BaseUseCase";
1
+ import type { Member, MemberRepository } from "../../../domain";
2
+ import type { IUseCase } from "../base";
3
3
  export interface GetMemberByEmailInput {
4
4
  email: string;
5
5
  }
@@ -1,5 +1,5 @@
1
- import type { Member, MemberRepository } from "../../domain";
2
- import type { IUseCase } from "./BaseUseCase";
1
+ import type { Member, MemberRepository } from "../../../domain";
2
+ import type { IUseCase } from "../base";
3
3
  export type GetMemberListInput = Record<string, never>;
4
4
  export type GetMemberListOutput = Member[];
5
5
  export declare class GetMemberListUseCase implements IUseCase<GetMemberListInput, GetMemberListOutput> {
@@ -1,5 +1,5 @@
1
- import { Member, type MemberRepository } from "../../domain";
2
- import type { IUseCase } from "./BaseUseCase";
1
+ import { Member, type MemberRepository } from "../../../domain";
2
+ import { IUseCase } from "../base";
3
3
  export interface RegisterMemberInput {
4
4
  name: string;
5
5
  studentId: string;
@@ -10,7 +10,7 @@ export interface RegisterMemberInput {
10
10
  discordNickName?: string;
11
11
  }
12
12
  export type RegisterMemberOutput = Member;
13
- export declare class RegisterMemberUseCase implements IUseCase<RegisterMemberInput, RegisterMemberOutput> {
13
+ export declare class RegisterMemberUseCase extends IUseCase<RegisterMemberInput, RegisterMemberOutput> {
14
14
  private readonly memberRepo;
15
15
  constructor(memberRepo: MemberRepository);
16
16
  execute(input: RegisterMemberInput): Promise<RegisterMemberOutput>;
@@ -2,10 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RegisterMemberUseCase = void 0;
4
4
  const uuid_1 = require("uuid");
5
- const domain_1 = require("../../domain");
6
- const ApplicationExceptions_1 = require("../exceptions/ApplicationExceptions");
7
- class RegisterMemberUseCase {
5
+ const domain_1 = require("../../../domain");
6
+ const ApplicationExceptions_1 = require("../../exceptions/ApplicationExceptions");
7
+ const base_1 = require("../base");
8
+ class RegisterMemberUseCase extends base_1.IUseCase {
8
9
  constructor(memberRepo) {
10
+ super();
9
11
  this.memberRepo = memberRepo;
10
12
  }
11
13
  async execute(input) {
@@ -0,0 +1,18 @@
1
+ import { type Member, type MemberRepository } from "../../../domain";
2
+ import { IUseCase } from "../base";
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 extends IUseCase<UpdateMemberInput, UpdateMemberOutput> {
15
+ private readonly memberRepo;
16
+ constructor(memberRepo: MemberRepository);
17
+ execute(input: UpdateMemberInput): Promise<UpdateMemberOutput>;
18
+ }
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.UpdateMemberUseCase = void 0;
4
- const domain_1 = require("../../domain");
5
- const ApplicationExceptions_1 = require("../exceptions/ApplicationExceptions");
6
- class UpdateMemberUseCase {
4
+ const domain_1 = require("../../../domain");
5
+ const ApplicationExceptions_1 = require("../../exceptions/ApplicationExceptions");
6
+ const base_1 = require("../base");
7
+ class UpdateMemberUseCase extends base_1.IUseCase {
7
8
  constructor(memberRepo) {
9
+ super();
8
10
  this.memberRepo = memberRepo;
9
11
  }
10
12
  async execute(input) {
@@ -0,0 +1,8 @@
1
+ export * from "./ChangeDiscordNickName";
2
+ export * from "./ConnectDiscordAccount";
3
+ export * from "./GetMember";
4
+ export * from "./GetMemberByEmail";
5
+ export * from "./GetMemberByDiscordId";
6
+ export * from "./GetMemberList";
7
+ export * from "./RegisterMember";
8
+ export * from "./UpdateMember";
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./ChangeDiscordNickName"), exports);
18
+ __exportStar(require("./ConnectDiscordAccount"), exports);
19
+ __exportStar(require("./GetMember"), exports);
20
+ __exportStar(require("./GetMemberByEmail"), exports);
21
+ __exportStar(require("./GetMemberByDiscordId"), exports);
22
+ __exportStar(require("./GetMemberList"), exports);
23
+ __exportStar(require("./RegisterMember"), exports);
24
+ __exportStar(require("./UpdateMember"), exports);
@@ -0,0 +1,39 @@
1
+ import type { LightningTalkDuration, Url } from "../../value-objects";
2
+ import type { Exhibit } from "./Exhibit";
3
+ export declare class Event {
4
+ readonly id: string;
5
+ private name;
6
+ private date;
7
+ private exhibits;
8
+ constructor(id: string, name: string, date: Date);
9
+ changeName(newName: string): void;
10
+ changeDate(newDate: Date): void;
11
+ addExhibit(exhibit: Exhibit): void;
12
+ removeExhibit(exhibitId: string): void;
13
+ changeExhibitName(exhibitId: string, newName: string): void;
14
+ changeExhibitDescription(exhibitId: string, newDescription: string): void;
15
+ changeExhibitMarkdownContent(exhibitId: string, newMarkdownContent: string): void;
16
+ changeExhibitUrl(exhibitId: string, newUrl: Url): void;
17
+ changeExhibitLightningTalkStartTime(exhibitId: string, newStartTime: Date): void;
18
+ changeExhibitLightningTalkDuration(exhibitId: string, newDuration: LightningTalkDuration): void;
19
+ changeExhibitLightningTalkSlideUrl(exhibitId: string, newSlideUrl: Url): void;
20
+ private getExhibitOrThrow;
21
+ toSnapshot(): {
22
+ id: string;
23
+ name: string;
24
+ date: Date;
25
+ exhibits: {
26
+ id: string;
27
+ name: string;
28
+ description: string | undefined;
29
+ markdownContent: string | undefined;
30
+ url: Url | undefined;
31
+ lightningTalk: {
32
+ exhibitId: string;
33
+ startTime: Date;
34
+ durationMinutes: LightningTalkDuration;
35
+ slideUrl: Url | undefined;
36
+ } | undefined;
37
+ }[];
38
+ };
39
+ }
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Event = void 0;
4
+ const exceptions_1 = require("../../exceptions");
5
+ class Event {
6
+ constructor(id, name,
7
+ // TODO: 期間を指定したい
8
+ date) {
9
+ this.id = id;
10
+ this.name = name;
11
+ this.date = date;
12
+ this.exhibits = [];
13
+ }
14
+ changeName(newName) {
15
+ this.name = newName;
16
+ }
17
+ changeDate(newDate) {
18
+ // NOTE: 時間を変更した時に、時間系のプロパティを持つエンティティの時間を変更する必要がある?
19
+ this.date = newDate;
20
+ }
21
+ addExhibit(exhibit) {
22
+ if (this.exhibits.some((x) => x.id === exhibit.id)) {
23
+ throw new exceptions_1.ExhibitAlreadyExistsException(`Exhibit(id=${exhibit.id}) は既に存在します`);
24
+ }
25
+ this.exhibits.push(exhibit);
26
+ }
27
+ removeExhibit(exhibitId) {
28
+ this.getExhibitOrThrow(exhibitId);
29
+ this.exhibits = this.exhibits.filter((x) => x.id !== exhibitId);
30
+ }
31
+ changeExhibitName(exhibitId, newName) {
32
+ this.getExhibitOrThrow(exhibitId).changeName(newName);
33
+ }
34
+ changeExhibitDescription(exhibitId, newDescription) {
35
+ this.getExhibitOrThrow(exhibitId).changeDescription(newDescription);
36
+ }
37
+ changeExhibitMarkdownContent(exhibitId, newMarkdownContent) {
38
+ this.getExhibitOrThrow(exhibitId).changeMarkdownContent(newMarkdownContent);
39
+ }
40
+ changeExhibitUrl(exhibitId, newUrl) {
41
+ this.getExhibitOrThrow(exhibitId).changeUrl(newUrl);
42
+ }
43
+ changeExhibitLightningTalkStartTime(exhibitId, newStartTime) {
44
+ this.getExhibitOrThrow(exhibitId).changeLightningTalkStartTime(newStartTime);
45
+ }
46
+ changeExhibitLightningTalkDuration(exhibitId, newDuration) {
47
+ this.getExhibitOrThrow(exhibitId).changeLightningTalkDuration(newDuration);
48
+ }
49
+ changeExhibitLightningTalkSlideUrl(exhibitId, newSlideUrl) {
50
+ this.getExhibitOrThrow(exhibitId).changeLightningTalkSlideUrl(newSlideUrl);
51
+ }
52
+ getExhibitOrThrow(exhibitId) {
53
+ const exhibit = this.exhibits.find((x) => x.id === exhibitId);
54
+ if (!exhibit) {
55
+ throw new exceptions_1.ExhibitNotFoundException(`Exhibit(id=${exhibitId}) が見つかりません`);
56
+ }
57
+ return exhibit;
58
+ }
59
+ toSnapshot() {
60
+ return {
61
+ id: this.id,
62
+ name: this.name,
63
+ date: this.date,
64
+ exhibits: this.exhibits.map((exhibit) => exhibit.toSnapshot()),
65
+ };
66
+ }
67
+ }
68
+ exports.Event = Event;
@@ -0,0 +1,7 @@
1
+ import type { Event } from "./Event";
2
+ export interface EventRepository {
3
+ findById(id: string): Promise<Event | null>;
4
+ findAll(): Promise<Event[]>;
5
+ save(event: Event): Promise<void>;
6
+ delete(eventId: string): Promise<void>;
7
+ }
@@ -0,0 +1,33 @@
1
+ import type { LightningTalkDuration, Url } from "../../value-objects";
2
+ import type { LightningTalk } from "./LightningTalk";
3
+ export declare class Exhibit {
4
+ readonly id: string;
5
+ private name;
6
+ private description?;
7
+ private markdownContent?;
8
+ private url?;
9
+ private lightningTalk?;
10
+ static createWithLightningTalk(id: string, name: string, lt: LightningTalk, description?: string, markdownContent?: string, url?: Url): Exhibit;
11
+ constructor(id: string, name: string, description?: string | undefined, markdownContent?: string | undefined, url?: Url | undefined);
12
+ changeName(newName: string): void;
13
+ changeDescription(newDescription: string): void;
14
+ changeMarkdownContent(newMarkdownContent: string): void;
15
+ changeUrl(newUrl: Url): void;
16
+ changeLightningTalkStartTime(newStartTime: Date): void;
17
+ changeLightningTalkDuration(newDuration: LightningTalkDuration): void;
18
+ changeLightningTalkSlideUrl(newSlideUrl: Url): void;
19
+ private getLightningTalkOrThrow;
20
+ toSnapshot(): {
21
+ id: string;
22
+ name: string;
23
+ description: string | undefined;
24
+ markdownContent: string | undefined;
25
+ url: Url | undefined;
26
+ lightningTalk: {
27
+ exhibitId: string;
28
+ startTime: Date;
29
+ durationMinutes: LightningTalkDuration;
30
+ slideUrl: Url | undefined;
31
+ } | undefined;
32
+ };
33
+ }
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Exhibit = void 0;
4
+ const exceptions_1 = require("../../exceptions");
5
+ class Exhibit {
6
+ // NOTE: LightningTalkのExhibitコンストラクタ(TypeScriptは2つのコンストラクタを持てないため)
7
+ static createWithLightningTalk(id, name, lt, description, markdownContent, url) {
8
+ const exhibit = new Exhibit(id, name, description, markdownContent, url);
9
+ // NOTE: ここで例外を投げるのは、Exhibit の id と LightningTalk の exhibitId が一致しているかどうかをチェックしているため
10
+ if (lt.exhibitId !== id) {
11
+ throw new exceptions_1.LightningTalkExhibitIdMismatchException();
12
+ }
13
+ exhibit.lightningTalk = lt;
14
+ return exhibit;
15
+ }
16
+ constructor(id, name, description, markdownContent, url) {
17
+ this.id = id;
18
+ this.name = name;
19
+ this.description = description;
20
+ this.markdownContent = markdownContent;
21
+ this.url = url;
22
+ }
23
+ changeName(newName) {
24
+ this.name = newName;
25
+ }
26
+ changeDescription(newDescription) {
27
+ this.description = newDescription;
28
+ }
29
+ changeMarkdownContent(newMarkdownContent) {
30
+ this.markdownContent = newMarkdownContent;
31
+ }
32
+ changeUrl(newUrl) {
33
+ this.url = newUrl;
34
+ }
35
+ changeLightningTalkStartTime(newStartTime) {
36
+ this.getLightningTalkOrThrow().changeStartTime(newStartTime);
37
+ }
38
+ changeLightningTalkDuration(newDuration) {
39
+ this.getLightningTalkOrThrow().changeDuration(newDuration);
40
+ }
41
+ changeLightningTalkSlideUrl(newSlideUrl) {
42
+ this.getLightningTalkOrThrow().changeSlideUrl(newSlideUrl);
43
+ }
44
+ getLightningTalkOrThrow() {
45
+ if (!this.lightningTalk) {
46
+ throw new exceptions_1.LightningTalkNotFoundException(`Exhibit(id=${this.id}) に紐づく LightningTalk が存在しません`);
47
+ }
48
+ return this.lightningTalk;
49
+ }
50
+ toSnapshot() {
51
+ var _a;
52
+ return {
53
+ id: this.id,
54
+ name: this.name,
55
+ description: this.description,
56
+ markdownContent: this.markdownContent,
57
+ url: this.url,
58
+ lightningTalk: (_a = this.lightningTalk) === null || _a === void 0 ? void 0 : _a.toSnapshot(),
59
+ };
60
+ }
61
+ }
62
+ exports.Exhibit = Exhibit;
@@ -0,0 +1,17 @@
1
+ import type { LightningTalkDuration, Url } from "../../value-objects";
2
+ export declare class LightningTalk {
3
+ readonly exhibitId: string;
4
+ private startTime;
5
+ private durationMinutes;
6
+ private slideUrl?;
7
+ constructor(exhibitId: string, startTime: Date, durationMinutes: LightningTalkDuration, slideUrl?: Url | undefined);
8
+ changeSlideUrl(newSlideUrl: Url): void;
9
+ changeDuration(newDuration: LightningTalkDuration): void;
10
+ changeStartTime(newStartTime: Date): void;
11
+ toSnapshot(): {
12
+ exhibitId: string;
13
+ startTime: Date;
14
+ durationMinutes: LightningTalkDuration;
15
+ slideUrl: Url | undefined;
16
+ };
17
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LightningTalk = void 0;
4
+ class LightningTalk {
5
+ constructor(exhibitId, startTime, durationMinutes, slideUrl) {
6
+ this.exhibitId = exhibitId;
7
+ this.startTime = startTime;
8
+ this.durationMinutes = durationMinutes;
9
+ this.slideUrl = slideUrl;
10
+ }
11
+ changeSlideUrl(newSlideUrl) {
12
+ this.slideUrl = newSlideUrl;
13
+ }
14
+ changeDuration(newDuration) {
15
+ this.durationMinutes = newDuration;
16
+ }
17
+ // TODO: イベントの期間内かどうかをチェックする必要がある?
18
+ changeStartTime(newStartTime) {
19
+ this.startTime = newStartTime;
20
+ }
21
+ toSnapshot() {
22
+ return {
23
+ exhibitId: this.exhibitId,
24
+ startTime: this.startTime,
25
+ durationMinutes: this.durationMinutes,
26
+ slideUrl: this.slideUrl,
27
+ };
28
+ }
29
+ }
30
+ exports.LightningTalk = LightningTalk;
@@ -0,0 +1,4 @@
1
+ export * from "./Event";
2
+ export * from "./EventRepository";
3
+ export * from "./Exhibit";
4
+ export * from "./LightningTalk";
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./Event"), exports);
18
+ __exportStar(require("./EventRepository"), exports);
19
+ __exportStar(require("./Exhibit"), exports);
20
+ __exportStar(require("./LightningTalk"), exports);
@@ -0,0 +1,2 @@
1
+ export * from "./event";
2
+ export * from "./member";
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./event"), exports);
18
+ __exportStar(require("./member"), exports);
@@ -5,4 +5,9 @@ export declare class DiscordAccount {
5
5
  constructor(id: string, // Discord ID
6
6
  nickName: string, memberId: string);
7
7
  setNickName(newNickName: string): void;
8
+ toSnapshot(): {
9
+ id: string;
10
+ nickName: string;
11
+ memberId: string;
12
+ };
8
13
  }