@shizuoka-its/core 2.1.2 → 3.0.0-rc.0
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.
- package/README.md +45 -25
- package/dist/_virtual/_rolldown/runtime.cjs +13 -0
- package/dist/_virtual/_rolldown/runtime.mjs +13 -0
- package/dist/application/exceptions/ApplicationExceptions.cjs +79 -0
- package/dist/application/exceptions/ApplicationExceptions.cjs.map +1 -0
- package/dist/application/exceptions/ApplicationExceptions.mjs +70 -0
- package/dist/application/exceptions/ApplicationExceptions.mjs.map +1 -0
- package/dist/application/index.cjs +39 -0
- package/dist/application/index.mjs +40 -0
- package/dist/application/usecase/base.cjs +11 -0
- package/dist/application/usecase/base.cjs.map +1 -0
- package/dist/application/usecase/base.d.cts +12 -0
- package/dist/application/usecase/base.d.mts +12 -0
- package/dist/application/usecase/base.mjs +11 -0
- package/dist/application/usecase/base.mjs.map +1 -0
- package/dist/application/usecase/event/AddExhibitToEvent.cjs +27 -0
- package/dist/application/usecase/event/AddExhibitToEvent.cjs.map +1 -0
- package/dist/application/usecase/event/AddExhibitToEvent.d.cts +32 -0
- package/dist/application/usecase/event/AddExhibitToEvent.d.mts +32 -0
- package/dist/application/usecase/event/AddExhibitToEvent.mjs +27 -0
- package/dist/application/usecase/event/AddExhibitToEvent.mjs.map +1 -0
- package/dist/application/usecase/event/ChangeExhibitDescription.cjs +23 -0
- package/dist/application/usecase/event/ChangeExhibitDescription.cjs.map +1 -0
- package/dist/application/usecase/event/ChangeExhibitDescription.d.cts +26 -0
- package/dist/application/usecase/event/ChangeExhibitDescription.d.mts +26 -0
- package/dist/application/usecase/event/ChangeExhibitDescription.mjs +23 -0
- package/dist/application/usecase/event/ChangeExhibitDescription.mjs.map +1 -0
- package/dist/application/usecase/event/ChangeExhibitMarkdownContent.cjs +23 -0
- package/dist/application/usecase/event/ChangeExhibitMarkdownContent.cjs.map +1 -0
- package/dist/application/usecase/event/ChangeExhibitMarkdownContent.d.cts +26 -0
- package/dist/application/usecase/event/ChangeExhibitMarkdownContent.d.mts +26 -0
- package/dist/application/usecase/event/ChangeExhibitMarkdownContent.mjs +23 -0
- package/dist/application/usecase/event/ChangeExhibitMarkdownContent.mjs.map +1 -0
- package/dist/application/usecase/event/ChangeExhibitName.cjs +23 -0
- package/dist/application/usecase/event/ChangeExhibitName.cjs.map +1 -0
- package/dist/application/usecase/event/ChangeExhibitName.d.cts +26 -0
- package/dist/application/usecase/event/ChangeExhibitName.d.mts +26 -0
- package/dist/application/usecase/event/ChangeExhibitName.mjs +23 -0
- package/dist/application/usecase/event/ChangeExhibitName.mjs.map +1 -0
- package/dist/application/usecase/event/ChangeExhibitUrl.cjs +23 -0
- package/dist/application/usecase/event/ChangeExhibitUrl.cjs.map +1 -0
- package/dist/application/usecase/event/ChangeExhibitUrl.d.cts +27 -0
- package/dist/application/usecase/event/ChangeExhibitUrl.d.mts +27 -0
- package/dist/application/usecase/event/ChangeExhibitUrl.mjs +23 -0
- package/dist/application/usecase/event/ChangeExhibitUrl.mjs.map +1 -0
- package/dist/application/usecase/event/ChangeLightningTalkDuration.cjs +23 -0
- package/dist/application/usecase/event/ChangeLightningTalkDuration.cjs.map +1 -0
- package/dist/application/usecase/event/ChangeLightningTalkDuration.d.cts +27 -0
- package/dist/application/usecase/event/ChangeLightningTalkDuration.d.mts +27 -0
- package/dist/application/usecase/event/ChangeLightningTalkDuration.mjs +23 -0
- package/dist/application/usecase/event/ChangeLightningTalkDuration.mjs.map +1 -0
- package/dist/application/usecase/event/ChangeLightningTalkSlideUrl.cjs +23 -0
- package/dist/application/usecase/event/ChangeLightningTalkSlideUrl.cjs.map +1 -0
- package/dist/application/usecase/event/ChangeLightningTalkSlideUrl.d.cts +27 -0
- package/dist/application/usecase/event/ChangeLightningTalkSlideUrl.d.mts +27 -0
- package/dist/application/usecase/event/ChangeLightningTalkSlideUrl.mjs +23 -0
- package/dist/application/usecase/event/ChangeLightningTalkSlideUrl.mjs.map +1 -0
- package/dist/application/usecase/event/ChangeLightningTalkStartTime.cjs +23 -0
- package/dist/application/usecase/event/ChangeLightningTalkStartTime.cjs.map +1 -0
- package/dist/application/usecase/event/ChangeLightningTalkStartTime.d.cts +26 -0
- package/dist/application/usecase/event/ChangeLightningTalkStartTime.d.mts +26 -0
- package/dist/application/usecase/event/ChangeLightningTalkStartTime.mjs +23 -0
- package/dist/application/usecase/event/ChangeLightningTalkStartTime.mjs.map +1 -0
- package/dist/application/usecase/event/CreateEvent.cjs +23 -0
- package/dist/application/usecase/event/CreateEvent.cjs.map +1 -0
- package/dist/application/usecase/event/CreateEvent.d.cts +25 -0
- package/dist/application/usecase/event/CreateEvent.d.mts +25 -0
- package/dist/application/usecase/event/CreateEvent.mjs +23 -0
- package/dist/application/usecase/event/CreateEvent.mjs.map +1 -0
- package/dist/application/usecase/event/DeleteEvent.cjs +22 -0
- package/dist/application/usecase/event/DeleteEvent.cjs.map +1 -0
- package/dist/application/usecase/event/DeleteEvent.d.cts +23 -0
- package/dist/application/usecase/event/DeleteEvent.d.mts +23 -0
- package/dist/application/usecase/event/DeleteEvent.mjs +22 -0
- package/dist/application/usecase/event/DeleteEvent.mjs.map +1 -0
- package/dist/application/usecase/event/GetEvent.cjs +18 -0
- package/dist/application/usecase/event/GetEvent.cjs.map +1 -0
- package/dist/application/usecase/event/GetEvent.d.cts +23 -0
- package/dist/application/usecase/event/GetEvent.d.mts +23 -0
- package/dist/application/usecase/event/GetEvent.mjs +18 -0
- package/dist/application/usecase/event/GetEvent.mjs.map +1 -0
- package/dist/application/usecase/event/GetEventList.cjs +15 -0
- package/dist/application/usecase/event/GetEventList.cjs.map +1 -0
- package/dist/application/usecase/event/GetEventList.d.cts +17 -0
- package/dist/application/usecase/event/GetEventList.d.mts +17 -0
- package/dist/application/usecase/event/GetEventList.mjs +15 -0
- package/dist/application/usecase/event/GetEventList.mjs.map +1 -0
- package/dist/application/usecase/event/RemoveExhibitFromEvent.cjs +23 -0
- package/dist/application/usecase/event/RemoveExhibitFromEvent.cjs.map +1 -0
- package/dist/application/usecase/event/RemoveExhibitFromEvent.d.cts +25 -0
- package/dist/application/usecase/event/RemoveExhibitFromEvent.d.mts +25 -0
- package/dist/application/usecase/event/RemoveExhibitFromEvent.mjs +23 -0
- package/dist/application/usecase/event/RemoveExhibitFromEvent.mjs.map +1 -0
- package/dist/application/usecase/event/UpdateEvent.cjs +21 -0
- package/dist/application/usecase/event/UpdateEvent.cjs.map +1 -0
- package/dist/application/usecase/event/UpdateEvent.d.cts +22 -0
- package/dist/application/usecase/event/UpdateEvent.d.mts +22 -0
- package/dist/application/usecase/event/UpdateEvent.mjs +21 -0
- package/dist/application/usecase/event/UpdateEvent.mjs.map +1 -0
- package/dist/application/usecase/event/index.cjs +14 -0
- package/dist/application/usecase/event/index.mjs +15 -0
- package/dist/application/usecase/eventParticipation/GetEventsByMember.cjs +15 -0
- package/dist/application/usecase/eventParticipation/GetEventsByMember.cjs.map +1 -0
- package/dist/application/usecase/eventParticipation/GetEventsByMember.d.cts +20 -0
- package/dist/application/usecase/eventParticipation/GetEventsByMember.d.mts +20 -0
- package/dist/application/usecase/eventParticipation/GetEventsByMember.mjs +15 -0
- package/dist/application/usecase/eventParticipation/GetEventsByMember.mjs.map +1 -0
- package/dist/application/usecase/eventParticipation/GetExhibitsByMember.cjs +18 -0
- package/dist/application/usecase/eventParticipation/GetExhibitsByMember.cjs.map +1 -0
- package/dist/application/usecase/eventParticipation/GetExhibitsByMember.d.cts +20 -0
- package/dist/application/usecase/eventParticipation/GetExhibitsByMember.d.mts +20 -0
- package/dist/application/usecase/eventParticipation/GetExhibitsByMember.mjs +18 -0
- package/dist/application/usecase/eventParticipation/GetExhibitsByMember.mjs.map +1 -0
- package/dist/application/usecase/eventParticipation/GetMembersByEvent.cjs +19 -0
- package/dist/application/usecase/eventParticipation/GetMembersByEvent.cjs.map +1 -0
- package/dist/application/usecase/eventParticipation/GetMembersByEvent.d.cts +22 -0
- package/dist/application/usecase/eventParticipation/GetMembersByEvent.d.mts +22 -0
- package/dist/application/usecase/eventParticipation/GetMembersByEvent.mjs +19 -0
- package/dist/application/usecase/eventParticipation/GetMembersByEvent.mjs.map +1 -0
- package/dist/application/usecase/eventParticipation/GetMembersByExhibit.cjs +19 -0
- package/dist/application/usecase/eventParticipation/GetMembersByExhibit.cjs.map +1 -0
- package/dist/application/usecase/eventParticipation/GetMembersByExhibit.d.cts +22 -0
- package/dist/application/usecase/eventParticipation/GetMembersByExhibit.d.mts +22 -0
- package/dist/application/usecase/eventParticipation/GetMembersByExhibit.mjs +19 -0
- package/dist/application/usecase/eventParticipation/GetMembersByExhibit.mjs.map +1 -0
- package/dist/application/usecase/eventParticipation/RegisterMemberToEvent.cjs +22 -0
- package/dist/application/usecase/eventParticipation/RegisterMemberToEvent.cjs.map +1 -0
- package/dist/application/usecase/eventParticipation/RegisterMemberToEvent.d.cts +24 -0
- package/dist/application/usecase/eventParticipation/RegisterMemberToEvent.d.mts +24 -0
- package/dist/application/usecase/eventParticipation/RegisterMemberToEvent.mjs +22 -0
- package/dist/application/usecase/eventParticipation/RegisterMemberToEvent.mjs.map +1 -0
- package/dist/application/usecase/eventParticipation/RegisterMemberToExhibit.cjs +22 -0
- package/dist/application/usecase/eventParticipation/RegisterMemberToExhibit.cjs.map +1 -0
- package/dist/application/usecase/eventParticipation/RegisterMemberToExhibit.d.cts +24 -0
- package/dist/application/usecase/eventParticipation/RegisterMemberToExhibit.d.mts +24 -0
- package/dist/application/usecase/eventParticipation/RegisterMemberToExhibit.mjs +22 -0
- package/dist/application/usecase/eventParticipation/RegisterMemberToExhibit.mjs.map +1 -0
- package/dist/application/usecase/eventParticipation/RemoveMemberFromEvent.cjs +21 -0
- package/dist/application/usecase/eventParticipation/RemoveMemberFromEvent.cjs.map +1 -0
- package/dist/application/usecase/eventParticipation/RemoveMemberFromEvent.d.cts +24 -0
- package/dist/application/usecase/eventParticipation/RemoveMemberFromEvent.d.mts +24 -0
- package/dist/application/usecase/eventParticipation/RemoveMemberFromEvent.mjs +21 -0
- package/dist/application/usecase/eventParticipation/RemoveMemberFromEvent.mjs.map +1 -0
- package/dist/application/usecase/eventParticipation/RemoveMemberFromExhibit.cjs +21 -0
- package/dist/application/usecase/eventParticipation/RemoveMemberFromExhibit.cjs.map +1 -0
- package/dist/application/usecase/eventParticipation/RemoveMemberFromExhibit.d.cts +24 -0
- package/dist/application/usecase/eventParticipation/RemoveMemberFromExhibit.d.mts +24 -0
- package/dist/application/usecase/eventParticipation/RemoveMemberFromExhibit.mjs +21 -0
- package/dist/application/usecase/eventParticipation/RemoveMemberFromExhibit.mjs.map +1 -0
- package/dist/application/usecase/karte/CorrectKarte.cjs +20 -0
- package/dist/application/usecase/karte/CorrectKarte.cjs.map +1 -0
- package/dist/application/usecase/karte/CorrectKarte.d.cts +20 -0
- package/dist/application/usecase/karte/CorrectKarte.d.mts +20 -0
- package/dist/application/usecase/karte/CorrectKarte.mjs +20 -0
- package/dist/application/usecase/karte/CorrectKarte.mjs.map +1 -0
- package/dist/application/usecase/karte/CreateKarte.cjs +19 -0
- package/dist/application/usecase/karte/CreateKarte.cjs.map +1 -0
- package/dist/application/usecase/karte/CreateKarte.d.cts +20 -0
- package/dist/application/usecase/karte/CreateKarte.d.mts +20 -0
- package/dist/application/usecase/karte/CreateKarte.mjs +19 -0
- package/dist/application/usecase/karte/CreateKarte.mjs.map +1 -0
- package/dist/application/usecase/karte/GetKarte.cjs +18 -0
- package/dist/application/usecase/karte/GetKarte.cjs.map +1 -0
- package/dist/application/usecase/karte/GetKarte.d.cts +20 -0
- package/dist/application/usecase/karte/GetKarte.d.mts +20 -0
- package/dist/application/usecase/karte/GetKarte.mjs +18 -0
- package/dist/application/usecase/karte/GetKarte.mjs.map +1 -0
- package/dist/application/usecase/karte/ImportKarte.cjs +19 -0
- package/dist/application/usecase/karte/ImportKarte.cjs.map +1 -0
- package/dist/application/usecase/karte/ImportKarte.d.cts +39 -0
- package/dist/application/usecase/karte/ImportKarte.d.mts +39 -0
- package/dist/application/usecase/karte/ImportKarte.mjs +19 -0
- package/dist/application/usecase/karte/ImportKarte.mjs.map +1 -0
- package/dist/application/usecase/karte/ListKartes.cjs +15 -0
- package/dist/application/usecase/karte/ListKartes.cjs.map +1 -0
- package/dist/application/usecase/karte/ListKartes.d.cts +17 -0
- package/dist/application/usecase/karte/ListKartes.d.mts +17 -0
- package/dist/application/usecase/karte/ListKartes.mjs +15 -0
- package/dist/application/usecase/karte/ListKartes.mjs.map +1 -0
- package/dist/application/usecase/karte/index.cjs +5 -0
- package/dist/application/usecase/karte/index.mjs +6 -0
- package/dist/application/usecase/member/ChangeDiscordNickName.cjs +20 -0
- package/dist/application/usecase/member/ChangeDiscordNickName.cjs.map +1 -0
- package/dist/application/usecase/member/ChangeDiscordNickName.d.cts +21 -0
- package/dist/application/usecase/member/ChangeDiscordNickName.d.mts +21 -0
- package/dist/application/usecase/member/ChangeDiscordNickName.mjs +20 -0
- package/dist/application/usecase/member/ChangeDiscordNickName.mjs.map +1 -0
- package/dist/application/usecase/member/ConnectDiscordAccount.cjs +27 -0
- package/dist/application/usecase/member/ConnectDiscordAccount.cjs.map +1 -0
- package/dist/application/usecase/member/ConnectDiscordAccount.d.cts +25 -0
- package/dist/application/usecase/member/ConnectDiscordAccount.d.mts +25 -0
- package/dist/application/usecase/member/ConnectDiscordAccount.mjs +27 -0
- package/dist/application/usecase/member/ConnectDiscordAccount.mjs.map +1 -0
- package/dist/application/usecase/member/GetMember.cjs +15 -0
- package/dist/application/usecase/member/GetMember.cjs.map +1 -0
- package/dist/application/usecase/member/GetMember.d.cts +20 -0
- package/dist/application/usecase/member/GetMember.d.mts +20 -0
- package/dist/application/usecase/member/GetMember.mjs +15 -0
- package/dist/application/usecase/member/GetMember.mjs.map +1 -0
- package/dist/application/usecase/member/GetMemberByDiscordId.cjs +18 -0
- package/dist/application/usecase/member/GetMemberByDiscordId.cjs.map +1 -0
- package/dist/application/usecase/member/GetMemberByDiscordId.d.cts +22 -0
- package/dist/application/usecase/member/GetMemberByDiscordId.d.mts +22 -0
- package/dist/application/usecase/member/GetMemberByDiscordId.mjs +18 -0
- package/dist/application/usecase/member/GetMemberByDiscordId.mjs.map +1 -0
- package/dist/application/usecase/member/GetMemberByEmail.cjs +15 -0
- package/dist/application/usecase/member/GetMemberByEmail.cjs.map +1 -0
- package/dist/application/usecase/member/GetMemberByEmail.d.cts +20 -0
- package/dist/application/usecase/member/GetMemberByEmail.d.mts +20 -0
- package/dist/application/usecase/member/GetMemberByEmail.mjs +15 -0
- package/dist/application/usecase/member/GetMemberByEmail.mjs.map +1 -0
- package/dist/application/usecase/member/GetMemberList.cjs +15 -0
- package/dist/application/usecase/member/GetMemberList.cjs.map +1 -0
- package/dist/application/usecase/member/GetMemberList.d.cts +17 -0
- package/dist/application/usecase/member/GetMemberList.d.mts +17 -0
- package/dist/application/usecase/member/GetMemberList.mjs +15 -0
- package/dist/application/usecase/member/GetMemberList.mjs.map +1 -0
- package/dist/application/usecase/member/RegisterMember.cjs +30 -0
- package/dist/application/usecase/member/RegisterMember.cjs.map +1 -0
- package/dist/application/usecase/member/RegisterMember.d.cts +28 -0
- package/dist/application/usecase/member/RegisterMember.d.mts +28 -0
- package/dist/application/usecase/member/RegisterMember.mjs +30 -0
- package/dist/application/usecase/member/RegisterMember.mjs.map +1 -0
- package/dist/application/usecase/member/UpdateMember.cjs +24 -0
- package/dist/application/usecase/member/UpdateMember.cjs.map +1 -0
- package/dist/application/usecase/member/UpdateMember.d.cts +26 -0
- package/dist/application/usecase/member/UpdateMember.d.mts +26 -0
- package/dist/application/usecase/member/UpdateMember.mjs +24 -0
- package/dist/application/usecase/member/UpdateMember.mjs.map +1 -0
- package/dist/application/usecase/member/index.cjs +8 -0
- package/dist/application/usecase/member/index.mjs +9 -0
- package/dist/domain/aggregates/discord-account/DiscordAccount.cjs +47 -0
- package/dist/domain/aggregates/discord-account/DiscordAccount.cjs.map +1 -0
- package/dist/domain/aggregates/discord-account/DiscordAccount.d.cts +43 -0
- package/dist/domain/aggregates/discord-account/DiscordAccount.d.mts +43 -0
- package/dist/domain/aggregates/discord-account/DiscordAccount.mjs +46 -0
- package/dist/domain/aggregates/discord-account/DiscordAccount.mjs.map +1 -0
- package/dist/domain/aggregates/discord-account/DiscordAccountRepository.d.cts +14 -0
- package/dist/domain/aggregates/discord-account/DiscordAccountRepository.d.mts +14 -0
- package/dist/domain/aggregates/discord-account/DiscordId.cjs +8 -0
- package/dist/domain/aggregates/discord-account/DiscordId.cjs.map +1 -0
- package/dist/domain/aggregates/discord-account/DiscordId.d.cts +9 -0
- package/dist/domain/aggregates/discord-account/DiscordId.d.mts +9 -0
- package/dist/domain/aggregates/discord-account/DiscordId.mjs +8 -0
- package/dist/domain/aggregates/discord-account/DiscordId.mjs.map +1 -0
- package/dist/domain/aggregates/event/Event.cjs +91 -0
- package/dist/domain/aggregates/event/Event.cjs.map +1 -0
- package/dist/domain/aggregates/event/Event.d.cts +59 -0
- package/dist/domain/aggregates/event/Event.d.mts +59 -0
- package/dist/domain/aggregates/event/Event.mjs +91 -0
- package/dist/domain/aggregates/event/Event.mjs.map +1 -0
- package/dist/domain/aggregates/event/EventId.cjs +8 -0
- package/dist/domain/aggregates/event/EventId.cjs.map +1 -0
- package/dist/domain/aggregates/event/EventId.d.cts +9 -0
- package/dist/domain/aggregates/event/EventId.d.mts +9 -0
- package/dist/domain/aggregates/event/EventId.mjs +8 -0
- package/dist/domain/aggregates/event/EventId.mjs.map +1 -0
- package/dist/domain/aggregates/event/EventRepository.d.cts +17 -0
- package/dist/domain/aggregates/event/EventRepository.d.mts +17 -0
- package/dist/domain/aggregates/event/Exhibit.cjs +86 -0
- package/dist/domain/aggregates/event/Exhibit.cjs.map +1 -0
- package/dist/domain/aggregates/event/Exhibit.d.cts +52 -0
- package/dist/domain/aggregates/event/Exhibit.d.mts +52 -0
- package/dist/domain/aggregates/event/Exhibit.mjs +86 -0
- package/dist/domain/aggregates/event/Exhibit.mjs.map +1 -0
- package/dist/domain/aggregates/event/ExhibitId.cjs +8 -0
- package/dist/domain/aggregates/event/ExhibitId.cjs.map +1 -0
- package/dist/domain/aggregates/event/ExhibitId.d.cts +9 -0
- package/dist/domain/aggregates/event/ExhibitId.d.mts +9 -0
- package/dist/domain/aggregates/event/ExhibitId.mjs +8 -0
- package/dist/domain/aggregates/event/ExhibitId.mjs.map +1 -0
- package/dist/domain/aggregates/event/LightningTalk.cjs +39 -0
- package/dist/domain/aggregates/event/LightningTalk.cjs.map +1 -0
- package/dist/domain/aggregates/event/LightningTalk.d.cts +27 -0
- package/dist/domain/aggregates/event/LightningTalk.d.mts +27 -0
- package/dist/domain/aggregates/event/LightningTalk.mjs +39 -0
- package/dist/domain/aggregates/event/LightningTalk.mjs.map +1 -0
- package/dist/domain/aggregates/event/LightningTalkDuration.cjs +12 -0
- package/dist/domain/aggregates/event/LightningTalkDuration.cjs.map +1 -0
- package/dist/domain/aggregates/event/LightningTalkDuration.d.cts +9 -0
- package/dist/domain/aggregates/event/LightningTalkDuration.d.mts +9 -0
- package/dist/domain/aggregates/event/LightningTalkDuration.mjs +12 -0
- package/dist/domain/aggregates/event/LightningTalkDuration.mjs.map +1 -0
- package/dist/domain/aggregates/event/Url.cjs +19 -0
- package/dist/domain/aggregates/event/Url.cjs.map +1 -0
- package/dist/domain/aggregates/event/Url.d.cts +9 -0
- package/dist/domain/aggregates/event/Url.d.mts +9 -0
- package/dist/domain/aggregates/event/Url.mjs +19 -0
- package/dist/domain/aggregates/event/Url.mjs.map +1 -0
- package/dist/domain/aggregates/index.cjs +25 -0
- package/dist/domain/aggregates/index.mjs +26 -0
- package/dist/domain/aggregates/karte/Assignee.cjs +7 -0
- package/dist/domain/aggregates/karte/Assignee.cjs.map +1 -0
- package/dist/domain/aggregates/karte/Assignee.d.cts +20 -0
- package/dist/domain/aggregates/karte/Assignee.d.mts +20 -0
- package/dist/domain/aggregates/karte/Assignee.mjs +7 -0
- package/dist/domain/aggregates/karte/Assignee.mjs.map +1 -0
- package/dist/domain/aggregates/karte/Client.cjs +20 -0
- package/dist/domain/aggregates/karte/Client.cjs.map +1 -0
- package/dist/domain/aggregates/karte/Client.d.cts +42 -0
- package/dist/domain/aggregates/karte/Client.d.mts +42 -0
- package/dist/domain/aggregates/karte/Client.mjs +19 -0
- package/dist/domain/aggregates/karte/Client.mjs.map +1 -0
- package/dist/domain/aggregates/karte/Consent.d.cts +14 -0
- package/dist/domain/aggregates/karte/Consent.d.mts +14 -0
- package/dist/domain/aggregates/karte/Consultation.d.cts +19 -0
- package/dist/domain/aggregates/karte/Consultation.d.mts +19 -0
- package/dist/domain/aggregates/karte/ConsultationCategory.cjs +89 -0
- package/dist/domain/aggregates/karte/ConsultationCategory.cjs.map +1 -0
- package/dist/domain/aggregates/karte/ConsultationCategory.d.cts +75 -0
- package/dist/domain/aggregates/karte/ConsultationCategory.d.mts +75 -0
- package/dist/domain/aggregates/karte/ConsultationCategory.mjs +89 -0
- package/dist/domain/aggregates/karte/ConsultationCategory.mjs.map +1 -0
- package/dist/domain/aggregates/karte/ConsultedAt.cjs +90 -0
- package/dist/domain/aggregates/karte/ConsultedAt.cjs.map +1 -0
- package/dist/domain/aggregates/karte/ConsultedAt.d.cts +49 -0
- package/dist/domain/aggregates/karte/ConsultedAt.d.mts +49 -0
- package/dist/domain/aggregates/karte/ConsultedAt.mjs +85 -0
- package/dist/domain/aggregates/karte/ConsultedAt.mjs.map +1 -0
- package/dist/domain/aggregates/karte/FollowUp.cjs +13 -0
- package/dist/domain/aggregates/karte/FollowUp.cjs.map +1 -0
- package/dist/domain/aggregates/karte/FollowUp.d.cts +8 -0
- package/dist/domain/aggregates/karte/FollowUp.d.mts +8 -0
- package/dist/domain/aggregates/karte/FollowUp.mjs +13 -0
- package/dist/domain/aggregates/karte/FollowUp.mjs.map +1 -0
- package/dist/domain/aggregates/karte/Karte.cjs +94 -0
- package/dist/domain/aggregates/karte/Karte.cjs.map +1 -0
- package/dist/domain/aggregates/karte/Karte.d.cts +131 -0
- package/dist/domain/aggregates/karte/Karte.d.mts +131 -0
- package/dist/domain/aggregates/karte/Karte.mjs +94 -0
- package/dist/domain/aggregates/karte/Karte.mjs.map +1 -0
- package/dist/domain/aggregates/karte/KarteId.cjs +8 -0
- package/dist/domain/aggregates/karte/KarteId.cjs.map +1 -0
- package/dist/domain/aggregates/karte/KarteId.d.cts +9 -0
- package/dist/domain/aggregates/karte/KarteId.d.mts +9 -0
- package/dist/domain/aggregates/karte/KarteId.mjs +8 -0
- package/dist/domain/aggregates/karte/KarteId.mjs.map +1 -0
- package/dist/domain/aggregates/karte/KarteRepository.d.cts +12 -0
- package/dist/domain/aggregates/karte/KarteRepository.d.mts +12 -0
- package/dist/domain/aggregates/karte/Resolution.cjs +7 -0
- package/dist/domain/aggregates/karte/Resolution.cjs.map +1 -0
- package/dist/domain/aggregates/karte/Resolution.d.cts +21 -0
- package/dist/domain/aggregates/karte/Resolution.d.mts +21 -0
- package/dist/domain/aggregates/karte/Resolution.mjs +7 -0
- package/dist/domain/aggregates/karte/Resolution.mjs.map +1 -0
- package/dist/domain/aggregates/karte/SupportRecord.d.cts +22 -0
- package/dist/domain/aggregates/karte/SupportRecord.d.mts +22 -0
- package/dist/domain/aggregates/karte/WorkDuration.cjs +11 -0
- package/dist/domain/aggregates/karte/WorkDuration.cjs.map +1 -0
- package/dist/domain/aggregates/karte/WorkDuration.d.cts +10 -0
- package/dist/domain/aggregates/karte/WorkDuration.d.mts +10 -0
- package/dist/domain/aggregates/karte/WorkDuration.mjs +11 -0
- package/dist/domain/aggregates/karte/WorkDuration.mjs.map +1 -0
- package/dist/domain/aggregates/karte/index.cjs +9 -0
- package/dist/domain/aggregates/karte/index.mjs +10 -0
- package/dist/domain/aggregates/member/Email.cjs +12 -0
- package/dist/domain/aggregates/member/Email.cjs.map +1 -0
- package/dist/domain/aggregates/member/Email.d.cts +9 -0
- package/dist/domain/aggregates/member/Email.d.mts +9 -0
- package/dist/domain/aggregates/member/Email.mjs +12 -0
- package/dist/domain/aggregates/member/Email.mjs.map +1 -0
- package/dist/domain/aggregates/member/Member.cjs +247 -0
- package/dist/domain/aggregates/member/Member.cjs.map +1 -0
- package/dist/domain/aggregates/member/Member.d.cts +91 -0
- package/dist/domain/aggregates/member/Member.d.mts +91 -0
- package/dist/domain/aggregates/member/Member.mjs +245 -0
- package/dist/domain/aggregates/member/Member.mjs.map +1 -0
- package/dist/domain/aggregates/member/MemberEvent.cjs +20 -0
- package/dist/domain/aggregates/member/MemberEvent.cjs.map +1 -0
- package/dist/domain/aggregates/member/MemberEvent.d.cts +115 -0
- package/dist/domain/aggregates/member/MemberEvent.d.mts +115 -0
- package/dist/domain/aggregates/member/MemberEvent.mjs +20 -0
- package/dist/domain/aggregates/member/MemberEvent.mjs.map +1 -0
- package/dist/domain/aggregates/member/MemberId.cjs +8 -0
- package/dist/domain/aggregates/member/MemberId.cjs.map +1 -0
- package/dist/domain/aggregates/member/MemberId.d.cts +9 -0
- package/dist/domain/aggregates/member/MemberId.d.mts +9 -0
- package/dist/domain/aggregates/member/MemberId.mjs +8 -0
- package/dist/domain/aggregates/member/MemberId.mjs.map +1 -0
- package/dist/domain/aggregates/member/MemberRepository.d.cts +14 -0
- package/dist/domain/aggregates/member/MemberRepository.d.mts +14 -0
- package/dist/domain/aggregates/member/UniversityEmail.cjs +14 -0
- package/dist/domain/aggregates/member/UniversityEmail.cjs.map +1 -0
- package/dist/domain/aggregates/member/UniversityEmail.d.cts +9 -0
- package/dist/domain/aggregates/member/UniversityEmail.d.mts +9 -0
- package/dist/domain/aggregates/member/UniversityEmail.mjs +14 -0
- package/dist/domain/aggregates/member/UniversityEmail.mjs.map +1 -0
- package/dist/domain/aggregates/member/index.cjs +5 -0
- package/dist/domain/aggregates/member/index.mjs +6 -0
- package/dist/domain/base/DomainEvent.d.cts +9 -0
- package/dist/domain/base/DomainEvent.d.mts +9 -0
- package/dist/domain/base/NonEmptyArray.d.cts +10 -0
- package/dist/domain/base/NonEmptyArray.d.mts +10 -0
- package/dist/domain/base/NonEmptyString.cjs +12 -0
- package/dist/domain/base/NonEmptyString.cjs.map +1 -0
- package/dist/domain/base/NonEmptyString.d.cts +12 -0
- package/dist/domain/base/NonEmptyString.d.mts +12 -0
- package/dist/domain/base/NonEmptyString.mjs +12 -0
- package/dist/domain/base/NonEmptyString.mjs.map +1 -0
- package/dist/domain/base/ValueObject.cjs +21 -0
- package/dist/domain/base/ValueObject.cjs.map +1 -0
- package/dist/domain/base/ValueObject.d.cts +12 -0
- package/dist/domain/base/ValueObject.d.mts +12 -0
- package/dist/domain/base/ValueObject.mjs +21 -0
- package/dist/domain/base/ValueObject.mjs.map +1 -0
- package/dist/domain/exceptions/DomainExceptions.cjs +120 -0
- package/dist/domain/exceptions/DomainExceptions.cjs.map +1 -0
- package/dist/domain/exceptions/DomainExceptions.d.cts +55 -0
- package/dist/domain/exceptions/DomainExceptions.d.mts +55 -0
- package/dist/domain/exceptions/DomainExceptions.mjs +105 -0
- package/dist/domain/exceptions/DomainExceptions.mjs.map +1 -0
- package/dist/domain/index.cjs +32 -0
- package/dist/domain/index.mjs +33 -0
- package/dist/domain/shared/Recorded.cjs +17 -0
- package/dist/domain/shared/Recorded.cjs.map +1 -0
- package/dist/domain/shared/Recorded.d.cts +20 -0
- package/dist/domain/shared/Recorded.d.mts +20 -0
- package/dist/domain/shared/Recorded.mjs +16 -0
- package/dist/domain/shared/Recorded.mjs.map +1 -0
- package/dist/domain/shared/StudentId.cjs +35 -0
- package/dist/domain/shared/StudentId.cjs.map +1 -0
- package/dist/domain/shared/StudentId.d.cts +25 -0
- package/dist/domain/shared/StudentId.d.mts +25 -0
- package/dist/domain/shared/StudentId.mjs +35 -0
- package/dist/domain/shared/StudentId.mjs.map +1 -0
- package/dist/domain/shared/affiliation/Affiliation.cjs +12 -0
- package/dist/domain/shared/affiliation/Affiliation.cjs.map +1 -0
- package/dist/domain/shared/affiliation/Affiliation.d.cts +59 -0
- package/dist/domain/shared/affiliation/Affiliation.d.mts +59 -0
- package/dist/domain/shared/affiliation/Affiliation.mjs +12 -0
- package/dist/domain/shared/affiliation/Affiliation.mjs.map +1 -0
- package/dist/domain/shared/affiliation/index.cjs +2 -0
- package/dist/domain/shared/affiliation/index.mjs +3 -0
- package/dist/domain/shared/affiliation/universityStructure.cjs +444 -0
- package/dist/domain/shared/affiliation/universityStructure.cjs.map +1 -0
- package/dist/domain/shared/affiliation/universityStructure.d.cts +262 -0
- package/dist/domain/shared/affiliation/universityStructure.d.mts +262 -0
- package/dist/domain/shared/affiliation/universityStructure.mjs +439 -0
- package/dist/domain/shared/affiliation/universityStructure.mjs.map +1 -0
- package/dist/domain/shared/index.cjs +5 -0
- package/dist/domain/shared/index.mjs +6 -0
- package/dist/executable/event.cjs +63 -0
- package/dist/executable/event.cjs.map +1 -0
- package/dist/executable/event.d.cts +56 -0
- package/dist/executable/event.d.mts +56 -0
- package/dist/executable/event.mjs +63 -0
- package/dist/executable/event.mjs.map +1 -0
- package/dist/executable/eventService.cjs +146 -0
- package/dist/executable/eventService.cjs.map +1 -0
- package/dist/executable/eventService.d.cts +143 -0
- package/dist/executable/eventService.d.mts +143 -0
- package/dist/executable/eventService.mjs +146 -0
- package/dist/executable/eventService.mjs.map +1 -0
- package/dist/executable/index.cjs +6 -0
- package/dist/executable/index.mjs +7 -0
- package/dist/executable/karte.cjs +24 -0
- package/dist/executable/karte.cjs.map +1 -0
- package/dist/executable/karte.d.cts +19 -0
- package/dist/executable/karte.d.mts +19 -0
- package/dist/executable/karte.mjs +24 -0
- package/dist/executable/karte.mjs.map +1 -0
- package/dist/executable/karteService.cjs +79 -0
- package/dist/executable/karteService.cjs.map +1 -0
- package/dist/executable/karteService.d.cts +87 -0
- package/dist/executable/karteService.d.mts +87 -0
- package/dist/executable/karteService.mjs +79 -0
- package/dist/executable/karteService.mjs.map +1 -0
- package/dist/executable/member.cjs +32 -0
- package/dist/executable/member.cjs.map +1 -0
- package/dist/executable/member.d.cts +25 -0
- package/dist/executable/member.d.mts +25 -0
- package/dist/executable/member.mjs +32 -0
- package/dist/executable/member.mjs.map +1 -0
- package/dist/executable/memberService.cjs +63 -0
- package/dist/executable/memberService.cjs.map +1 -0
- package/dist/executable/memberService.d.cts +59 -0
- package/dist/executable/memberService.d.mts +59 -0
- package/dist/executable/memberService.mjs +63 -0
- package/dist/executable/memberService.mjs.map +1 -0
- package/dist/index.cjs +105 -1914
- package/dist/index.d.cts +46 -754
- package/dist/index.d.mts +46 -0
- package/dist/index.mjs +39 -0
- package/dist/infrastructure/drizzle/DrizzleDiscordAccountRepository.cjs +57 -0
- package/dist/infrastructure/drizzle/DrizzleDiscordAccountRepository.cjs.map +1 -0
- package/dist/infrastructure/drizzle/DrizzleDiscordAccountRepository.mjs +57 -0
- package/dist/infrastructure/drizzle/DrizzleDiscordAccountRepository.mjs.map +1 -0
- package/dist/infrastructure/drizzle/DrizzleEventRepository.cjs +196 -0
- package/dist/infrastructure/drizzle/DrizzleEventRepository.cjs.map +1 -0
- package/dist/infrastructure/drizzle/DrizzleEventRepository.mjs +196 -0
- package/dist/infrastructure/drizzle/DrizzleEventRepository.mjs.map +1 -0
- package/dist/infrastructure/drizzle/DrizzleKarteRepository.cjs +241 -0
- package/dist/infrastructure/drizzle/DrizzleKarteRepository.cjs.map +1 -0
- package/dist/infrastructure/drizzle/DrizzleKarteRepository.mjs +241 -0
- package/dist/infrastructure/drizzle/DrizzleKarteRepository.mjs.map +1 -0
- package/dist/infrastructure/drizzle/DrizzleMemberRepository.cjs +112 -0
- package/dist/infrastructure/drizzle/DrizzleMemberRepository.cjs.map +1 -0
- package/dist/infrastructure/drizzle/DrizzleMemberRepository.mjs +112 -0
- package/dist/infrastructure/drizzle/DrizzleMemberRepository.mjs.map +1 -0
- package/dist/infrastructure/drizzle/client.cjs +20 -0
- package/dist/infrastructure/drizzle/client.cjs.map +1 -0
- package/dist/infrastructure/drizzle/client.mjs +20 -0
- package/dist/infrastructure/drizzle/client.mjs.map +1 -0
- package/dist/infrastructure/drizzle/index.cjs +4 -0
- package/dist/infrastructure/drizzle/index.mjs +5 -0
- package/dist/infrastructure/drizzle/schema.cjs +353 -0
- package/dist/infrastructure/drizzle/schema.cjs.map +1 -0
- package/dist/infrastructure/drizzle/schema.mjs +337 -0
- package/dist/infrastructure/drizzle/schema.mjs.map +1 -0
- package/dist/infrastructure/drizzle/serializeDiscordAccountEvent.cjs +14 -0
- package/dist/infrastructure/drizzle/serializeDiscordAccountEvent.cjs.map +1 -0
- package/dist/infrastructure/drizzle/serializeDiscordAccountEvent.mjs +14 -0
- package/dist/infrastructure/drizzle/serializeDiscordAccountEvent.mjs.map +1 -0
- package/dist/infrastructure/drizzle/serializeMemberEvent.cjs +61 -0
- package/dist/infrastructure/drizzle/serializeMemberEvent.cjs.map +1 -0
- package/dist/infrastructure/drizzle/serializeMemberEvent.mjs +61 -0
- package/dist/infrastructure/drizzle/serializeMemberEvent.mjs.map +1 -0
- package/dist/infrastructure/index.cjs +5 -0
- package/dist/infrastructure/index.mjs +6 -0
- package/package.json +67 -60
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.ts +0 -754
- package/dist/index.js +0 -1875
- package/dist/index.js.map +0 -1
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { DomainEvent } from "./domain/base/DomainEvent.mjs";
|
|
2
|
+
import { NonEmptyArray } from "./domain/base/NonEmptyArray.mjs";
|
|
3
|
+
import { NonEmptyString, nonEmptyString } from "./domain/base/NonEmptyString.mjs";
|
|
4
|
+
import { ValueObject } from "./domain/base/ValueObject.mjs";
|
|
5
|
+
import { DomainException, EmptyStringException, ExhibitAlreadyExistsException, ExhibitHasMemberException, ExhibitNotFoundException, InvalidAffiliationOperationException, InvalidConsultedAtException, InvalidEmailFormatException, InvalidLightningTalkDurationException, InvalidStudentIdException, InvalidUniversityEmailException, InvalidUrlException, InvalidUrlProtocolException, InvalidWorkDurationException, LightningTalkExhibitIdMismatchException, LightningTalkNotFoundException } from "./domain/exceptions/DomainExceptions.mjs";
|
|
6
|
+
import { DiscordId, discordId } from "./domain/aggregates/discord-account/DiscordId.mjs";
|
|
7
|
+
import { DISCORD_ACCOUNT_EVENT_NAMES, DiscordAccount, DiscordAccountDomainEvent, DiscordAccountLinked, NickNameChanged } from "./domain/aggregates/discord-account/DiscordAccount.mjs";
|
|
8
|
+
import { DiscordAccountRepository } from "./domain/aggregates/discord-account/DiscordAccountRepository.mjs";
|
|
9
|
+
import { EventId, eventId } from "./domain/aggregates/event/EventId.mjs";
|
|
10
|
+
import { ExhibitId, exhibitId } from "./domain/aggregates/event/ExhibitId.mjs";
|
|
11
|
+
import { LightningTalkDuration } from "./domain/aggregates/event/LightningTalkDuration.mjs";
|
|
12
|
+
import { Url } from "./domain/aggregates/event/Url.mjs";
|
|
13
|
+
import { LightningTalk } from "./domain/aggregates/event/LightningTalk.mjs";
|
|
14
|
+
import { Exhibit } from "./domain/aggregates/event/Exhibit.mjs";
|
|
15
|
+
import { Event } from "./domain/aggregates/event/Event.mjs";
|
|
16
|
+
import { EventRepository } from "./domain/aggregates/event/EventRepository.mjs";
|
|
17
|
+
import { ASSIGNEE_TYPES, Assignee } from "./domain/aggregates/karte/Assignee.mjs";
|
|
18
|
+
import { CONSULTED_AT_PRECISIONS, ConsultedAt, DateOnly, DateTime, YearMonth, YearOnly, dateOnly, dateTime, parseConsultedAt, yearMonth, yearOnly } from "./domain/aggregates/karte/ConsultedAt.mjs";
|
|
19
|
+
import { AffiliationStep, CourseType, DoctoralAffiliationValue, DoctoralYear, MasterAffiliationValue, MasterYear, PartialDoctoralAffiliationValue, PartialMasterAffiliationValue, PartialProfessionalAffiliationValue, PartialUndergraduateAffiliationValue, ProfessionalAffiliationValue, ProfessionalYear, UNIVERSITY_STRUCTURE, UndergraduateAffiliationValue, UndergraduateYear, getAffiliationSteps, getCourseLabel, getInstitutions, getMaxYear, getSubdivisions } from "./domain/shared/affiliation/universityStructure.mjs";
|
|
20
|
+
import { Affiliation, CompleteAffiliation, CompleteDoctoralAffiliation, CompleteMasterAffiliation, CompleteProfessionalAffiliation, CompleteUndergraduateAffiliation, PartialAffiliation, PartialDoctoralAffiliation, PartialMasterAffiliation, PartialProfessionalAffiliation, PartialUndergraduateAffiliation, affiliationTypeNames } from "./domain/shared/affiliation/Affiliation.mjs";
|
|
21
|
+
import { Recorded, notRecorded, recorded } from "./domain/shared/Recorded.mjs";
|
|
22
|
+
import { StudentId } from "./domain/shared/StudentId.mjs";
|
|
23
|
+
import { CLIENT_TYPES, Client, ClientType, clientTypeNames } from "./domain/aggregates/karte/Client.mjs";
|
|
24
|
+
import { Consent } from "./domain/aggregates/karte/Consent.mjs";
|
|
25
|
+
import { CONSULTATION_CATEGORIES, ConsultationCategory, ConsultationCategoryId } from "./domain/aggregates/karte/ConsultationCategory.mjs";
|
|
26
|
+
import { Consultation } from "./domain/aggregates/karte/Consultation.mjs";
|
|
27
|
+
import { FOLLOW_UP_OPTIONS, FollowUp } from "./domain/aggregates/karte/FollowUp.mjs";
|
|
28
|
+
import { KarteId, karteId } from "./domain/aggregates/karte/KarteId.mjs";
|
|
29
|
+
import { RESOLUTION_TYPES, Resolution } from "./domain/aggregates/karte/Resolution.mjs";
|
|
30
|
+
import { WorkDuration, workDuration } from "./domain/aggregates/karte/WorkDuration.mjs";
|
|
31
|
+
import { SupportRecord } from "./domain/aggregates/karte/SupportRecord.mjs";
|
|
32
|
+
import { CompleteClient, CompleteResolution, Karte, KarteContentProps } from "./domain/aggregates/karte/Karte.mjs";
|
|
33
|
+
import { KarteRepository } from "./domain/aggregates/karte/KarteRepository.mjs";
|
|
34
|
+
import { Email } from "./domain/aggregates/member/Email.mjs";
|
|
35
|
+
import { MemberId, memberId } from "./domain/aggregates/member/MemberId.mjs";
|
|
36
|
+
import { UniversityEmail } from "./domain/aggregates/member/UniversityEmail.mjs";
|
|
37
|
+
import { DepartmentTransferred, FacultyTransferred, InternallyAdvanced, MEMBER_EVENT_NAMES, MajorTransferred, MemberConfirmed, MemberDomainEvent, MemberRegistered, MemberRemoved, MemberReregistered, MemberUnconfirmed, NameChanged, PersonalEmailChanged, RemovalReason, StudentIdChanged } from "./domain/aggregates/member/MemberEvent.mjs";
|
|
38
|
+
import { ActiveMember, FormerMember, Member, UnconfirmedMember } from "./domain/aggregates/member/Member.mjs";
|
|
39
|
+
import { MemberRepository } from "./domain/aggregates/member/MemberRepository.mjs";
|
|
40
|
+
import { MemberUseCases, createMemberUseCases } from "./executable/member.mjs";
|
|
41
|
+
import { EventUseCases, createEventUseCases } from "./executable/event.mjs";
|
|
42
|
+
import { KarteUseCases, createKarteUseCases } from "./executable/karte.mjs";
|
|
43
|
+
import { MemberService, MemberServiceDeps, createMemberService } from "./executable/memberService.mjs";
|
|
44
|
+
import { EventService, EventServiceDeps, createEventService } from "./executable/eventService.mjs";
|
|
45
|
+
import { KarteService, KarteServiceDeps, createKarteService } from "./executable/karteService.mjs";
|
|
46
|
+
export { ASSIGNEE_TYPES, ActiveMember, Affiliation, AffiliationStep, Assignee, CLIENT_TYPES, CONSULTATION_CATEGORIES, CONSULTED_AT_PRECISIONS, Client, ClientType, CompleteAffiliation, CompleteClient, CompleteDoctoralAffiliation, CompleteMasterAffiliation, CompleteProfessionalAffiliation, CompleteResolution, CompleteUndergraduateAffiliation, Consent, Consultation, ConsultationCategory, ConsultationCategoryId, ConsultedAt, CourseType, DISCORD_ACCOUNT_EVENT_NAMES, DateOnly, DateTime, DepartmentTransferred, DiscordAccount, DiscordAccountDomainEvent, DiscordAccountLinked, DiscordAccountRepository, DiscordId, DoctoralAffiliationValue, DoctoralYear, DomainEvent, DomainException, Email, EmptyStringException, Event, EventId, EventRepository, EventService, EventServiceDeps, EventUseCases, Exhibit, ExhibitAlreadyExistsException, ExhibitHasMemberException, ExhibitId, ExhibitNotFoundException, FOLLOW_UP_OPTIONS, FacultyTransferred, FollowUp, FormerMember, InternallyAdvanced, InvalidAffiliationOperationException, InvalidConsultedAtException, InvalidEmailFormatException, InvalidLightningTalkDurationException, InvalidStudentIdException, InvalidUniversityEmailException, InvalidUrlException, InvalidUrlProtocolException, InvalidWorkDurationException, Karte, KarteContentProps, KarteId, KarteRepository, KarteService, KarteServiceDeps, KarteUseCases, LightningTalk, LightningTalkDuration, LightningTalkExhibitIdMismatchException, LightningTalkNotFoundException, MEMBER_EVENT_NAMES, MajorTransferred, MasterAffiliationValue, MasterYear, Member, MemberConfirmed, MemberDomainEvent, MemberId, MemberRegistered, MemberRemoved, MemberRepository, MemberReregistered, MemberService, MemberServiceDeps, MemberUnconfirmed, MemberUseCases, NameChanged, NickNameChanged, NonEmptyArray, NonEmptyString, PartialAffiliation, PartialDoctoralAffiliation, PartialDoctoralAffiliationValue, PartialMasterAffiliation, PartialMasterAffiliationValue, PartialProfessionalAffiliation, PartialProfessionalAffiliationValue, PartialUndergraduateAffiliation, PartialUndergraduateAffiliationValue, PersonalEmailChanged, ProfessionalAffiliationValue, ProfessionalYear, RESOLUTION_TYPES, Recorded, RemovalReason, Resolution, StudentId, StudentIdChanged, SupportRecord, UNIVERSITY_STRUCTURE, UnconfirmedMember, UndergraduateAffiliationValue, UndergraduateYear, UniversityEmail, Url, ValueObject, WorkDuration, YearMonth, YearOnly, affiliationTypeNames, clientTypeNames, createEventService, createEventUseCases, createKarteService, createKarteUseCases, createMemberService, createMemberUseCases, dateOnly, dateTime, discordId, eventId, exhibitId, getAffiliationSteps, getCourseLabel, getInstitutions, getMaxYear, getSubdivisions, karteId, memberId, nonEmptyString, notRecorded, parseConsultedAt, recorded, workDuration, yearMonth, yearOnly };
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { DomainException, EmptyStringException, ExhibitAlreadyExistsException, ExhibitHasMemberException, ExhibitNotFoundException, InvalidAffiliationOperationException, InvalidConsultedAtException, InvalidEmailFormatException, InvalidLightningTalkDurationException, InvalidStudentIdException, InvalidUniversityEmailException, InvalidUrlException, InvalidUrlProtocolException, InvalidWorkDurationException, LightningTalkExhibitIdMismatchException, LightningTalkNotFoundException } from "./domain/exceptions/DomainExceptions.mjs";
|
|
2
|
+
import { nonEmptyString } from "./domain/base/NonEmptyString.mjs";
|
|
3
|
+
import { ValueObject } from "./domain/base/ValueObject.mjs";
|
|
4
|
+
import { DISCORD_ACCOUNT_EVENT_NAMES, DiscordAccount } from "./domain/aggregates/discord-account/DiscordAccount.mjs";
|
|
5
|
+
import { discordId } from "./domain/aggregates/discord-account/DiscordId.mjs";
|
|
6
|
+
import { Event } from "./domain/aggregates/event/Event.mjs";
|
|
7
|
+
import { eventId } from "./domain/aggregates/event/EventId.mjs";
|
|
8
|
+
import { Exhibit } from "./domain/aggregates/event/Exhibit.mjs";
|
|
9
|
+
import { exhibitId } from "./domain/aggregates/event/ExhibitId.mjs";
|
|
10
|
+
import { LightningTalk } from "./domain/aggregates/event/LightningTalk.mjs";
|
|
11
|
+
import { LightningTalkDuration } from "./domain/aggregates/event/LightningTalkDuration.mjs";
|
|
12
|
+
import { Url } from "./domain/aggregates/event/Url.mjs";
|
|
13
|
+
import { ASSIGNEE_TYPES } from "./domain/aggregates/karte/Assignee.mjs";
|
|
14
|
+
import { CONSULTED_AT_PRECISIONS, dateOnly, dateTime, parseConsultedAt, yearMonth, yearOnly } from "./domain/aggregates/karte/ConsultedAt.mjs";
|
|
15
|
+
import { affiliationTypeNames } from "./domain/shared/affiliation/Affiliation.mjs";
|
|
16
|
+
import { UNIVERSITY_STRUCTURE, getAffiliationSteps, getCourseLabel, getInstitutions, getMaxYear, getSubdivisions } from "./domain/shared/affiliation/universityStructure.mjs";
|
|
17
|
+
import { notRecorded, recorded } from "./domain/shared/Recorded.mjs";
|
|
18
|
+
import { StudentId } from "./domain/shared/StudentId.mjs";
|
|
19
|
+
import { Karte } from "./domain/aggregates/karte/Karte.mjs";
|
|
20
|
+
import { karteId } from "./domain/aggregates/karte/KarteId.mjs";
|
|
21
|
+
import { CLIENT_TYPES, clientTypeNames } from "./domain/aggregates/karte/Client.mjs";
|
|
22
|
+
import { CONSULTATION_CATEGORIES } from "./domain/aggregates/karte/ConsultationCategory.mjs";
|
|
23
|
+
import { FOLLOW_UP_OPTIONS } from "./domain/aggregates/karte/FollowUp.mjs";
|
|
24
|
+
import { RESOLUTION_TYPES } from "./domain/aggregates/karte/Resolution.mjs";
|
|
25
|
+
import { workDuration } from "./domain/aggregates/karte/WorkDuration.mjs";
|
|
26
|
+
import { ActiveMember, FormerMember, UnconfirmedMember } from "./domain/aggregates/member/Member.mjs";
|
|
27
|
+
import { MEMBER_EVENT_NAMES } from "./domain/aggregates/member/MemberEvent.mjs";
|
|
28
|
+
import { memberId } from "./domain/aggregates/member/MemberId.mjs";
|
|
29
|
+
import { Email } from "./domain/aggregates/member/Email.mjs";
|
|
30
|
+
import { UniversityEmail } from "./domain/aggregates/member/UniversityEmail.mjs";
|
|
31
|
+
import "./domain/index.mjs";
|
|
32
|
+
import { createMemberUseCases } from "./executable/member.mjs";
|
|
33
|
+
import { createEventUseCases } from "./executable/event.mjs";
|
|
34
|
+
import { createKarteUseCases } from "./executable/karte.mjs";
|
|
35
|
+
import { createMemberService } from "./executable/memberService.mjs";
|
|
36
|
+
import { createEventService } from "./executable/eventService.mjs";
|
|
37
|
+
import { createKarteService } from "./executable/karteService.mjs";
|
|
38
|
+
import "./executable/index.mjs";
|
|
39
|
+
export { ASSIGNEE_TYPES, ActiveMember, CLIENT_TYPES, CONSULTATION_CATEGORIES, CONSULTED_AT_PRECISIONS, DISCORD_ACCOUNT_EVENT_NAMES, DiscordAccount, DomainException, Email, EmptyStringException, Event, Exhibit, ExhibitAlreadyExistsException, ExhibitHasMemberException, ExhibitNotFoundException, FOLLOW_UP_OPTIONS, FormerMember, InvalidAffiliationOperationException, InvalidConsultedAtException, InvalidEmailFormatException, InvalidLightningTalkDurationException, InvalidStudentIdException, InvalidUniversityEmailException, InvalidUrlException, InvalidUrlProtocolException, InvalidWorkDurationException, Karte, LightningTalk, LightningTalkDuration, LightningTalkExhibitIdMismatchException, LightningTalkNotFoundException, MEMBER_EVENT_NAMES, RESOLUTION_TYPES, StudentId, UNIVERSITY_STRUCTURE, UnconfirmedMember, UniversityEmail, Url, ValueObject, affiliationTypeNames, clientTypeNames, createEventService, createEventUseCases, createKarteService, createKarteUseCases, createMemberService, createMemberUseCases, dateOnly, dateTime, discordId, eventId, exhibitId, getAffiliationSteps, getCourseLabel, getInstitutions, getMaxYear, getSubdivisions, karteId, memberId, nonEmptyString, notRecorded, parseConsultedAt, recorded, workDuration, yearMonth, yearOnly };
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
const require_DiscordAccount = require("../../domain/aggregates/discord-account/DiscordAccount.cjs");
|
|
2
|
+
const require_DiscordId = require("../../domain/aggregates/discord-account/DiscordId.cjs");
|
|
3
|
+
const require_MemberId = require("../../domain/aggregates/member/MemberId.cjs");
|
|
4
|
+
require("../../domain/index.cjs");
|
|
5
|
+
const require_schema = require("./schema.cjs");
|
|
6
|
+
const require_client = require("./client.cjs");
|
|
7
|
+
const require_serializeDiscordAccountEvent = require("./serializeDiscordAccountEvent.cjs");
|
|
8
|
+
let uuid = require("uuid");
|
|
9
|
+
let drizzle_orm = require("drizzle-orm");
|
|
10
|
+
//#region src/infrastructure/drizzle/DrizzleDiscordAccountRepository.ts
|
|
11
|
+
function toDomain(row) {
|
|
12
|
+
return require_DiscordAccount.DiscordAccount.reconstruct(require_DiscordId.discordId(row.discordId), require_MemberId.memberId(row.memberId), row.nickName);
|
|
13
|
+
}
|
|
14
|
+
var DrizzleDiscordAccountRepository = class {
|
|
15
|
+
async findByDiscordId(id) {
|
|
16
|
+
const row = await require_client.getDb().query.discordAccounts.findFirst({ where: (0, drizzle_orm.eq)(require_schema.discordAccounts.discordId, id) });
|
|
17
|
+
if (!row) return null;
|
|
18
|
+
return toDomain(row);
|
|
19
|
+
}
|
|
20
|
+
async findByMemberId(id) {
|
|
21
|
+
return (await require_client.getDb().query.discordAccounts.findMany({ where: (0, drizzle_orm.eq)(require_schema.discordAccounts.memberId, id) })).map(toDomain);
|
|
22
|
+
}
|
|
23
|
+
async save(account) {
|
|
24
|
+
const db = require_client.getDb();
|
|
25
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
26
|
+
const events = account.getDomainEvents();
|
|
27
|
+
await db.transaction(async (tx) => {
|
|
28
|
+
await tx.insert(require_schema.discordAccounts).values({
|
|
29
|
+
discordId: account.discordId,
|
|
30
|
+
nickName: account.nickName,
|
|
31
|
+
memberId: account.memberId,
|
|
32
|
+
updatedAt: now
|
|
33
|
+
}).onConflictDoUpdate({
|
|
34
|
+
target: require_schema.discordAccounts.discordId,
|
|
35
|
+
set: {
|
|
36
|
+
nickName: account.nickName,
|
|
37
|
+
updatedAt: now
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
if (events.length > 0) await tx.insert(require_schema.discordAccountDomainEvents).values(events.map((event) => ({
|
|
41
|
+
id: (0, uuid.v4)(),
|
|
42
|
+
discordId: event.discordId,
|
|
43
|
+
memberId: event.memberId,
|
|
44
|
+
eventName: event.eventName,
|
|
45
|
+
payload: require_serializeDiscordAccountEvent.serializeDiscordAccountEventPayload(event),
|
|
46
|
+
occurredAt: event.occurredAt.toISOString()
|
|
47
|
+
})));
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
async delete(id) {
|
|
51
|
+
await require_client.getDb().delete(require_schema.discordAccounts).where((0, drizzle_orm.eq)(require_schema.discordAccounts.discordId, id));
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
//#endregion
|
|
55
|
+
exports.DrizzleDiscordAccountRepository = DrizzleDiscordAccountRepository;
|
|
56
|
+
|
|
57
|
+
//# sourceMappingURL=DrizzleDiscordAccountRepository.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DrizzleDiscordAccountRepository.cjs","names":["DiscordAccount","discordId","memberId","getDb","discordAccounts","discordAccountDomainEvents","serializeDiscordAccountEventPayload"],"sources":["../../../src/infrastructure/drizzle/DrizzleDiscordAccountRepository.ts"],"sourcesContent":["import { v4 as uuid } from \"uuid\";\nimport { eq } from \"drizzle-orm\";\nimport {\n\tDiscordAccount,\n\ttype DiscordAccountRepository,\n\ttype DiscordId,\n\ttype MemberId,\n\tdiscordId,\n\tmemberId,\n} from \"#domain\";\nimport { getDb } from \"./client\";\nimport { discordAccountDomainEvents, discordAccounts } from \"./schema\";\nimport { serializeDiscordAccountEventPayload } from \"./serializeDiscordAccountEvent\";\n\ntype DiscordAccountRow = typeof discordAccounts.$inferSelect;\n\nfunction toDomain(row: DiscordAccountRow): DiscordAccount {\n\treturn DiscordAccount.reconstruct(discordId(row.discordId), memberId(row.memberId), row.nickName);\n}\n\nexport class DrizzleDiscordAccountRepository implements DiscordAccountRepository {\n\tasync findByDiscordId(id: DiscordId): Promise<DiscordAccount | null> {\n\t\tconst db = getDb();\n\t\tconst row = await db.query.discordAccounts.findFirst({\n\t\t\twhere: eq(discordAccounts.discordId, id as string),\n\t\t});\n\t\tif (!row) return null;\n\t\treturn toDomain(row);\n\t}\n\n\tasync findByMemberId(id: MemberId): Promise<DiscordAccount[]> {\n\t\tconst db = getDb();\n\t\tconst rows = await db.query.discordAccounts.findMany({\n\t\t\twhere: eq(discordAccounts.memberId, id as string),\n\t\t});\n\t\treturn rows.map(toDomain);\n\t}\n\n\tasync save(account: DiscordAccount): Promise<void> {\n\t\tconst db = getDb();\n\t\tconst now = new Date().toISOString();\n\t\tconst events = account.getDomainEvents();\n\n\t\tawait db.transaction(async (tx) => {\n\t\t\tawait tx\n\t\t\t\t.insert(discordAccounts)\n\t\t\t\t.values({\n\t\t\t\t\tdiscordId: account.discordId as string,\n\t\t\t\t\tnickName: account.nickName,\n\t\t\t\t\tmemberId: account.memberId as string,\n\t\t\t\t\tupdatedAt: now,\n\t\t\t\t})\n\t\t\t\t.onConflictDoUpdate({\n\t\t\t\t\ttarget: discordAccounts.discordId,\n\t\t\t\t\tset: {\n\t\t\t\t\t\tnickName: account.nickName,\n\t\t\t\t\t\tupdatedAt: now,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\tif (events.length > 0) {\n\t\t\t\tawait tx.insert(discordAccountDomainEvents).values(\n\t\t\t\t\tevents.map((event) => ({\n\t\t\t\t\t\tid: uuid(),\n\t\t\t\t\t\tdiscordId: event.discordId as string,\n\t\t\t\t\t\tmemberId: event.memberId as string,\n\t\t\t\t\t\teventName: event.eventName,\n\t\t\t\t\t\tpayload: serializeDiscordAccountEventPayload(event),\n\t\t\t\t\t\toccurredAt: event.occurredAt.toISOString(),\n\t\t\t\t\t})),\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n\n\tasync delete(id: DiscordId): Promise<void> {\n\t\tconst db = getDb();\n\t\tawait db.delete(discordAccounts).where(eq(discordAccounts.discordId, id as string));\n\t}\n}\n"],"mappings":";;;;;;;;;;AAgBA,SAAS,SAAS,KAAwC;AACzD,QAAOA,uBAAAA,eAAe,YAAYC,kBAAAA,UAAU,IAAI,UAAU,EAAEC,iBAAAA,SAAS,IAAI,SAAS,EAAE,IAAI,SAAS;;AAGlG,IAAa,kCAAb,MAAiF;CAChF,MAAM,gBAAgB,IAA+C;EAEpE,MAAM,MAAM,MADDC,eAAAA,OAAO,CACG,MAAM,gBAAgB,UAAU,EACpD,QAAA,GAAA,YAAA,IAAUC,eAAAA,gBAAgB,WAAW,GAAa,EAClD,CAAC;AACF,MAAI,CAAC,IAAK,QAAO;AACjB,SAAO,SAAS,IAAI;;CAGrB,MAAM,eAAe,IAAyC;AAK7D,UAHa,MADFD,eAAAA,OAAO,CACI,MAAM,gBAAgB,SAAS,EACpD,QAAA,GAAA,YAAA,IAAUC,eAAAA,gBAAgB,UAAU,GAAa,EACjD,CAAC,EACU,IAAI,SAAS;;CAG1B,MAAM,KAAK,SAAwC;EAClD,MAAM,KAAKD,eAAAA,OAAO;EAClB,MAAM,uBAAM,IAAI,MAAM,EAAC,aAAa;EACpC,MAAM,SAAS,QAAQ,iBAAiB;AAExC,QAAM,GAAG,YAAY,OAAO,OAAO;AAClC,SAAM,GACJ,OAAOC,eAAAA,gBAAgB,CACvB,OAAO;IACP,WAAW,QAAQ;IACnB,UAAU,QAAQ;IAClB,UAAU,QAAQ;IAClB,WAAW;IACX,CAAC,CACD,mBAAmB;IACnB,QAAQA,eAAAA,gBAAgB;IACxB,KAAK;KACJ,UAAU,QAAQ;KAClB,WAAW;KACX;IACD,CAAC;AAEH,OAAI,OAAO,SAAS,EACnB,OAAM,GAAG,OAAOC,eAAAA,2BAA2B,CAAC,OAC3C,OAAO,KAAK,WAAW;IACtB,KAAA,GAAA,KAAA,KAAU;IACV,WAAW,MAAM;IACjB,UAAU,MAAM;IAChB,WAAW,MAAM;IACjB,SAASC,qCAAAA,oCAAoC,MAAM;IACnD,YAAY,MAAM,WAAW,aAAa;IAC1C,EAAE,CACH;IAED;;CAGH,MAAM,OAAO,IAA8B;AAE1C,QADWH,eAAAA,OAAO,CACT,OAAOC,eAAAA,gBAAgB,CAAC,OAAA,GAAA,YAAA,IAASA,eAAAA,gBAAgB,WAAW,GAAa,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { DiscordAccount } from "../../domain/aggregates/discord-account/DiscordAccount.mjs";
|
|
2
|
+
import { discordId } from "../../domain/aggregates/discord-account/DiscordId.mjs";
|
|
3
|
+
import { memberId } from "../../domain/aggregates/member/MemberId.mjs";
|
|
4
|
+
import "../../domain/index.mjs";
|
|
5
|
+
import { discordAccountDomainEvents, discordAccounts } from "./schema.mjs";
|
|
6
|
+
import { getDb } from "./client.mjs";
|
|
7
|
+
import { serializeDiscordAccountEventPayload } from "./serializeDiscordAccountEvent.mjs";
|
|
8
|
+
import { v4 } from "uuid";
|
|
9
|
+
import { eq } from "drizzle-orm";
|
|
10
|
+
//#region src/infrastructure/drizzle/DrizzleDiscordAccountRepository.ts
|
|
11
|
+
function toDomain(row) {
|
|
12
|
+
return DiscordAccount.reconstruct(discordId(row.discordId), memberId(row.memberId), row.nickName);
|
|
13
|
+
}
|
|
14
|
+
var DrizzleDiscordAccountRepository = class {
|
|
15
|
+
async findByDiscordId(id) {
|
|
16
|
+
const row = await getDb().query.discordAccounts.findFirst({ where: eq(discordAccounts.discordId, id) });
|
|
17
|
+
if (!row) return null;
|
|
18
|
+
return toDomain(row);
|
|
19
|
+
}
|
|
20
|
+
async findByMemberId(id) {
|
|
21
|
+
return (await getDb().query.discordAccounts.findMany({ where: eq(discordAccounts.memberId, id) })).map(toDomain);
|
|
22
|
+
}
|
|
23
|
+
async save(account) {
|
|
24
|
+
const db = getDb();
|
|
25
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
26
|
+
const events = account.getDomainEvents();
|
|
27
|
+
await db.transaction(async (tx) => {
|
|
28
|
+
await tx.insert(discordAccounts).values({
|
|
29
|
+
discordId: account.discordId,
|
|
30
|
+
nickName: account.nickName,
|
|
31
|
+
memberId: account.memberId,
|
|
32
|
+
updatedAt: now
|
|
33
|
+
}).onConflictDoUpdate({
|
|
34
|
+
target: discordAccounts.discordId,
|
|
35
|
+
set: {
|
|
36
|
+
nickName: account.nickName,
|
|
37
|
+
updatedAt: now
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
if (events.length > 0) await tx.insert(discordAccountDomainEvents).values(events.map((event) => ({
|
|
41
|
+
id: v4(),
|
|
42
|
+
discordId: event.discordId,
|
|
43
|
+
memberId: event.memberId,
|
|
44
|
+
eventName: event.eventName,
|
|
45
|
+
payload: serializeDiscordAccountEventPayload(event),
|
|
46
|
+
occurredAt: event.occurredAt.toISOString()
|
|
47
|
+
})));
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
async delete(id) {
|
|
51
|
+
await getDb().delete(discordAccounts).where(eq(discordAccounts.discordId, id));
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
//#endregion
|
|
55
|
+
export { DrizzleDiscordAccountRepository };
|
|
56
|
+
|
|
57
|
+
//# sourceMappingURL=DrizzleDiscordAccountRepository.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DrizzleDiscordAccountRepository.mjs","names":["uuid"],"sources":["../../../src/infrastructure/drizzle/DrizzleDiscordAccountRepository.ts"],"sourcesContent":["import { v4 as uuid } from \"uuid\";\nimport { eq } from \"drizzle-orm\";\nimport {\n\tDiscordAccount,\n\ttype DiscordAccountRepository,\n\ttype DiscordId,\n\ttype MemberId,\n\tdiscordId,\n\tmemberId,\n} from \"#domain\";\nimport { getDb } from \"./client\";\nimport { discordAccountDomainEvents, discordAccounts } from \"./schema\";\nimport { serializeDiscordAccountEventPayload } from \"./serializeDiscordAccountEvent\";\n\ntype DiscordAccountRow = typeof discordAccounts.$inferSelect;\n\nfunction toDomain(row: DiscordAccountRow): DiscordAccount {\n\treturn DiscordAccount.reconstruct(discordId(row.discordId), memberId(row.memberId), row.nickName);\n}\n\nexport class DrizzleDiscordAccountRepository implements DiscordAccountRepository {\n\tasync findByDiscordId(id: DiscordId): Promise<DiscordAccount | null> {\n\t\tconst db = getDb();\n\t\tconst row = await db.query.discordAccounts.findFirst({\n\t\t\twhere: eq(discordAccounts.discordId, id as string),\n\t\t});\n\t\tif (!row) return null;\n\t\treturn toDomain(row);\n\t}\n\n\tasync findByMemberId(id: MemberId): Promise<DiscordAccount[]> {\n\t\tconst db = getDb();\n\t\tconst rows = await db.query.discordAccounts.findMany({\n\t\t\twhere: eq(discordAccounts.memberId, id as string),\n\t\t});\n\t\treturn rows.map(toDomain);\n\t}\n\n\tasync save(account: DiscordAccount): Promise<void> {\n\t\tconst db = getDb();\n\t\tconst now = new Date().toISOString();\n\t\tconst events = account.getDomainEvents();\n\n\t\tawait db.transaction(async (tx) => {\n\t\t\tawait tx\n\t\t\t\t.insert(discordAccounts)\n\t\t\t\t.values({\n\t\t\t\t\tdiscordId: account.discordId as string,\n\t\t\t\t\tnickName: account.nickName,\n\t\t\t\t\tmemberId: account.memberId as string,\n\t\t\t\t\tupdatedAt: now,\n\t\t\t\t})\n\t\t\t\t.onConflictDoUpdate({\n\t\t\t\t\ttarget: discordAccounts.discordId,\n\t\t\t\t\tset: {\n\t\t\t\t\t\tnickName: account.nickName,\n\t\t\t\t\t\tupdatedAt: now,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\tif (events.length > 0) {\n\t\t\t\tawait tx.insert(discordAccountDomainEvents).values(\n\t\t\t\t\tevents.map((event) => ({\n\t\t\t\t\t\tid: uuid(),\n\t\t\t\t\t\tdiscordId: event.discordId as string,\n\t\t\t\t\t\tmemberId: event.memberId as string,\n\t\t\t\t\t\teventName: event.eventName,\n\t\t\t\t\t\tpayload: serializeDiscordAccountEventPayload(event),\n\t\t\t\t\t\toccurredAt: event.occurredAt.toISOString(),\n\t\t\t\t\t})),\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n\n\tasync delete(id: DiscordId): Promise<void> {\n\t\tconst db = getDb();\n\t\tawait db.delete(discordAccounts).where(eq(discordAccounts.discordId, id as string));\n\t}\n}\n"],"mappings":";;;;;;;;;;AAgBA,SAAS,SAAS,KAAwC;AACzD,QAAO,eAAe,YAAY,UAAU,IAAI,UAAU,EAAE,SAAS,IAAI,SAAS,EAAE,IAAI,SAAS;;AAGlG,IAAa,kCAAb,MAAiF;CAChF,MAAM,gBAAgB,IAA+C;EAEpE,MAAM,MAAM,MADD,OAAO,CACG,MAAM,gBAAgB,UAAU,EACpD,OAAO,GAAG,gBAAgB,WAAW,GAAa,EAClD,CAAC;AACF,MAAI,CAAC,IAAK,QAAO;AACjB,SAAO,SAAS,IAAI;;CAGrB,MAAM,eAAe,IAAyC;AAK7D,UAHa,MADF,OAAO,CACI,MAAM,gBAAgB,SAAS,EACpD,OAAO,GAAG,gBAAgB,UAAU,GAAa,EACjD,CAAC,EACU,IAAI,SAAS;;CAG1B,MAAM,KAAK,SAAwC;EAClD,MAAM,KAAK,OAAO;EAClB,MAAM,uBAAM,IAAI,MAAM,EAAC,aAAa;EACpC,MAAM,SAAS,QAAQ,iBAAiB;AAExC,QAAM,GAAG,YAAY,OAAO,OAAO;AAClC,SAAM,GACJ,OAAO,gBAAgB,CACvB,OAAO;IACP,WAAW,QAAQ;IACnB,UAAU,QAAQ;IAClB,UAAU,QAAQ;IAClB,WAAW;IACX,CAAC,CACD,mBAAmB;IACnB,QAAQ,gBAAgB;IACxB,KAAK;KACJ,UAAU,QAAQ;KAClB,WAAW;KACX;IACD,CAAC;AAEH,OAAI,OAAO,SAAS,EACnB,OAAM,GAAG,OAAO,2BAA2B,CAAC,OAC3C,OAAO,KAAK,WAAW;IACtB,IAAIA,IAAM;IACV,WAAW,MAAM;IACjB,UAAU,MAAM;IAChB,WAAW,MAAM;IACjB,SAAS,oCAAoC,MAAM;IACnD,YAAY,MAAM,WAAW,aAAa;IAC1C,EAAE,CACH;IAED;;CAGH,MAAM,OAAO,IAA8B;AAE1C,QADW,OAAO,CACT,OAAO,gBAAgB,CAAC,MAAM,GAAG,gBAAgB,WAAW,GAAa,CAAC"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
const require_Event = require("../../domain/aggregates/event/Event.cjs");
|
|
2
|
+
const require_EventId = require("../../domain/aggregates/event/EventId.cjs");
|
|
3
|
+
const require_Exhibit = require("../../domain/aggregates/event/Exhibit.cjs");
|
|
4
|
+
const require_ExhibitId = require("../../domain/aggregates/event/ExhibitId.cjs");
|
|
5
|
+
const require_LightningTalk = require("../../domain/aggregates/event/LightningTalk.cjs");
|
|
6
|
+
const require_LightningTalkDuration = require("../../domain/aggregates/event/LightningTalkDuration.cjs");
|
|
7
|
+
const require_Url = require("../../domain/aggregates/event/Url.cjs");
|
|
8
|
+
const require_MemberId = require("../../domain/aggregates/member/MemberId.cjs");
|
|
9
|
+
require("../../domain/index.cjs");
|
|
10
|
+
const require_schema = require("./schema.cjs");
|
|
11
|
+
const require_client = require("./client.cjs");
|
|
12
|
+
let drizzle_orm = require("drizzle-orm");
|
|
13
|
+
let node_crypto = require("node:crypto");
|
|
14
|
+
//#region src/infrastructure/drizzle/DrizzleEventRepository.ts
|
|
15
|
+
var DrizzleEventRepository = class {
|
|
16
|
+
/**
|
|
17
|
+
* Converts a database record to a domain Event entity.
|
|
18
|
+
*/
|
|
19
|
+
toDomain(record) {
|
|
20
|
+
const event = new require_Event.Event(require_EventId.eventId(record.id), record.name, new Date(record.date));
|
|
21
|
+
for (const memberEvent of record.memberEvents) event.addMemberId(require_MemberId.memberId(memberEvent.memberId));
|
|
22
|
+
for (const exhibitRecord of record.exhibits) {
|
|
23
|
+
const exhibit = this.createExhibitFromRecord(exhibitRecord);
|
|
24
|
+
for (const memberExhibit of exhibitRecord.memberExhibits) exhibit.addMemberId(require_MemberId.memberId(memberExhibit.memberId));
|
|
25
|
+
event.addExhibit(exhibit);
|
|
26
|
+
}
|
|
27
|
+
return event;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Creates an Exhibit domain entity from a database record.
|
|
31
|
+
*/
|
|
32
|
+
createExhibitFromRecord(record) {
|
|
33
|
+
if (record.lightningTalk) {
|
|
34
|
+
const lt = record.lightningTalk;
|
|
35
|
+
const lightningTalk = new require_LightningTalk.LightningTalk(require_ExhibitId.exhibitId(lt.exhibitId), new Date(lt.startTime), new require_LightningTalkDuration.LightningTalkDuration(lt.duration), lt.slideUrl ? new require_Url.Url(lt.slideUrl) : void 0);
|
|
36
|
+
return require_Exhibit.Exhibit.createWithLightningTalk(require_ExhibitId.exhibitId(record.id), record.name, lightningTalk, record.description ?? void 0, record.markdownContent ?? void 0, record.url ? new require_Url.Url(record.url) : void 0);
|
|
37
|
+
}
|
|
38
|
+
return new require_Exhibit.Exhibit(require_ExhibitId.exhibitId(record.id), record.name, record.description ?? void 0, record.markdownContent ?? void 0, record.url ? new require_Url.Url(record.url) : void 0);
|
|
39
|
+
}
|
|
40
|
+
async persistEvent(event) {
|
|
41
|
+
const db = require_client.getDb();
|
|
42
|
+
const snapshot = event.toSnapshot();
|
|
43
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
44
|
+
const dateStr = snapshot.date instanceof Date ? snapshot.date.toISOString() : snapshot.date;
|
|
45
|
+
await db.insert(require_schema.events).values({
|
|
46
|
+
id: snapshot.id,
|
|
47
|
+
name: snapshot.name,
|
|
48
|
+
date: dateStr,
|
|
49
|
+
updatedAt: now
|
|
50
|
+
}).onConflictDoUpdate({
|
|
51
|
+
target: require_schema.events.id,
|
|
52
|
+
set: {
|
|
53
|
+
name: snapshot.name,
|
|
54
|
+
date: dateStr,
|
|
55
|
+
updatedAt: now
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
const snapshotExhibitIds = snapshot.exhibits.map((ex) => ex.id);
|
|
59
|
+
await this.deleteObsoleteExhibits(db, snapshot.id, snapshotExhibitIds);
|
|
60
|
+
for (const ex of snapshot.exhibits) await this.upsertExhibit(db, snapshot.id, ex);
|
|
61
|
+
await this.syncMemberEvents(db, snapshot.id, event.getMemberIds());
|
|
62
|
+
for (const exhibitDomain of event.getExhibits()) await this.syncMemberExhibits(db, exhibitDomain.id, exhibitDomain.getMemberIds());
|
|
63
|
+
}
|
|
64
|
+
async deleteObsoleteExhibits(db, eventId, keptExhibitIds) {
|
|
65
|
+
const existingExhibits = await db.select({ id: require_schema.exhibits.id }).from(require_schema.exhibits).where((0, drizzle_orm.eq)(require_schema.exhibits.eventId, eventId));
|
|
66
|
+
const existingIdSet = new Set(existingExhibits.map((r) => require_ExhibitId.exhibitId(r.id)));
|
|
67
|
+
const keptIdSet = new Set(keptExhibitIds);
|
|
68
|
+
const obsoleteIds = [...existingIdSet].filter((id) => !keptIdSet.has(id));
|
|
69
|
+
if (obsoleteIds.length > 0) {
|
|
70
|
+
await db.delete(require_schema.lightningTalks).where((0, drizzle_orm.inArray)(require_schema.lightningTalks.exhibitId, obsoleteIds));
|
|
71
|
+
await db.delete(require_schema.memberExhibits).where((0, drizzle_orm.inArray)(require_schema.memberExhibits.exhibitId, obsoleteIds));
|
|
72
|
+
await db.delete(require_schema.exhibits).where((0, drizzle_orm.inArray)(require_schema.exhibits.id, obsoleteIds));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
async upsertExhibit(db, eventId, ex) {
|
|
76
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
77
|
+
await db.insert(require_schema.exhibits).values({
|
|
78
|
+
id: ex.id,
|
|
79
|
+
name: ex.name,
|
|
80
|
+
description: ex.description ?? null,
|
|
81
|
+
markdownContent: ex.markdownContent ?? null,
|
|
82
|
+
url: ex.url?.getValue() ?? null,
|
|
83
|
+
eventId,
|
|
84
|
+
updatedAt: now
|
|
85
|
+
}).onConflictDoUpdate({
|
|
86
|
+
target: require_schema.exhibits.id,
|
|
87
|
+
set: {
|
|
88
|
+
name: ex.name,
|
|
89
|
+
description: ex.description ?? null,
|
|
90
|
+
markdownContent: ex.markdownContent ?? null,
|
|
91
|
+
url: ex.url?.getValue() ?? null,
|
|
92
|
+
updatedAt: now
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
if (ex.lightningTalk) {
|
|
96
|
+
const startTimeStr = ex.lightningTalk.startTime instanceof Date ? ex.lightningTalk.startTime.toISOString() : ex.lightningTalk.startTime;
|
|
97
|
+
await db.insert(require_schema.lightningTalks).values({
|
|
98
|
+
exhibitId: ex.id,
|
|
99
|
+
startTime: startTimeStr,
|
|
100
|
+
duration: ex.lightningTalk.durationMinutes.getValue(),
|
|
101
|
+
slideUrl: ex.lightningTalk.slideUrl?.getValue() ?? null,
|
|
102
|
+
updatedAt: now
|
|
103
|
+
}).onConflictDoUpdate({
|
|
104
|
+
target: require_schema.lightningTalks.exhibitId,
|
|
105
|
+
set: {
|
|
106
|
+
startTime: startTimeStr,
|
|
107
|
+
duration: ex.lightningTalk.durationMinutes.getValue(),
|
|
108
|
+
slideUrl: ex.lightningTalk.slideUrl?.getValue() ?? null,
|
|
109
|
+
updatedAt: now
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
} else await db.delete(require_schema.lightningTalks).where((0, drizzle_orm.eq)(require_schema.lightningTalks.exhibitId, ex.id));
|
|
113
|
+
}
|
|
114
|
+
async syncMemberEvents(db, eventId, memberIds) {
|
|
115
|
+
await db.delete(require_schema.memberEvents).where((0, drizzle_orm.eq)(require_schema.memberEvents.eventId, eventId));
|
|
116
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
117
|
+
for (const memberId of memberIds) await db.insert(require_schema.memberEvents).values({
|
|
118
|
+
id: (0, node_crypto.randomUUID)(),
|
|
119
|
+
memberId,
|
|
120
|
+
eventId,
|
|
121
|
+
updatedAt: now
|
|
122
|
+
}).onConflictDoNothing();
|
|
123
|
+
}
|
|
124
|
+
async syncMemberExhibits(db, exhibitId, memberIds) {
|
|
125
|
+
await db.delete(require_schema.memberExhibits).where((0, drizzle_orm.eq)(require_schema.memberExhibits.exhibitId, exhibitId));
|
|
126
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
127
|
+
for (const memberId of memberIds) await db.insert(require_schema.memberExhibits).values({
|
|
128
|
+
id: (0, node_crypto.randomUUID)(),
|
|
129
|
+
memberId,
|
|
130
|
+
exhibitId,
|
|
131
|
+
updatedAt: now
|
|
132
|
+
}).onConflictDoNothing();
|
|
133
|
+
}
|
|
134
|
+
async findById(id) {
|
|
135
|
+
const record = await require_client.getDb().query.events.findFirst({
|
|
136
|
+
where: (0, drizzle_orm.eq)(require_schema.events.id, id),
|
|
137
|
+
with: {
|
|
138
|
+
memberEvents: true,
|
|
139
|
+
exhibits: { with: {
|
|
140
|
+
lightningTalk: true,
|
|
141
|
+
memberExhibits: true
|
|
142
|
+
} }
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
if (!record) return null;
|
|
146
|
+
return this.toDomain(record);
|
|
147
|
+
}
|
|
148
|
+
async findByParticipantMemberId(memberId) {
|
|
149
|
+
const db = require_client.getDb();
|
|
150
|
+
const participations = await db.select({ eventId: require_schema.memberEvents.eventId }).from(require_schema.memberEvents).where((0, drizzle_orm.eq)(require_schema.memberEvents.memberId, memberId));
|
|
151
|
+
if (participations.length === 0) return [];
|
|
152
|
+
const eventIds = participations.map((p) => p.eventId);
|
|
153
|
+
return (await db.query.events.findMany({
|
|
154
|
+
where: (0, drizzle_orm.inArray)(require_schema.events.id, eventIds),
|
|
155
|
+
with: {
|
|
156
|
+
memberEvents: true,
|
|
157
|
+
exhibits: { with: {
|
|
158
|
+
lightningTalk: true,
|
|
159
|
+
memberExhibits: true
|
|
160
|
+
} }
|
|
161
|
+
}
|
|
162
|
+
})).map((r) => this.toDomain(r));
|
|
163
|
+
}
|
|
164
|
+
async findByExhibitId(exhibitId) {
|
|
165
|
+
const exhibit = await require_client.getDb().select({ eventId: require_schema.exhibits.eventId }).from(require_schema.exhibits).where((0, drizzle_orm.eq)(require_schema.exhibits.id, exhibitId)).limit(1);
|
|
166
|
+
if (exhibit.length === 0) return null;
|
|
167
|
+
return this.findById(require_EventId.eventId(exhibit[0].eventId));
|
|
168
|
+
}
|
|
169
|
+
async findAll() {
|
|
170
|
+
return (await require_client.getDb().query.events.findMany({ with: {
|
|
171
|
+
memberEvents: true,
|
|
172
|
+
exhibits: { with: {
|
|
173
|
+
lightningTalk: true,
|
|
174
|
+
memberExhibits: true
|
|
175
|
+
} }
|
|
176
|
+
} })).map((r) => this.toDomain(r));
|
|
177
|
+
}
|
|
178
|
+
async save(event) {
|
|
179
|
+
await this.persistEvent(event);
|
|
180
|
+
}
|
|
181
|
+
async delete(eventId) {
|
|
182
|
+
const db = require_client.getDb();
|
|
183
|
+
const exhibitIds = (await db.select({ id: require_schema.exhibits.id }).from(require_schema.exhibits).where((0, drizzle_orm.eq)(require_schema.exhibits.eventId, eventId))).map((ex) => ex.id);
|
|
184
|
+
if (exhibitIds.length > 0) {
|
|
185
|
+
await db.delete(require_schema.lightningTalks).where((0, drizzle_orm.inArray)(require_schema.lightningTalks.exhibitId, exhibitIds));
|
|
186
|
+
await db.delete(require_schema.memberExhibits).where((0, drizzle_orm.inArray)(require_schema.memberExhibits.exhibitId, exhibitIds));
|
|
187
|
+
}
|
|
188
|
+
await db.delete(require_schema.memberEvents).where((0, drizzle_orm.eq)(require_schema.memberEvents.eventId, eventId));
|
|
189
|
+
await db.delete(require_schema.exhibits).where((0, drizzle_orm.eq)(require_schema.exhibits.eventId, eventId));
|
|
190
|
+
await db.delete(require_schema.events).where((0, drizzle_orm.eq)(require_schema.events.id, eventId));
|
|
191
|
+
}
|
|
192
|
+
};
|
|
193
|
+
//#endregion
|
|
194
|
+
exports.DrizzleEventRepository = DrizzleEventRepository;
|
|
195
|
+
|
|
196
|
+
//# sourceMappingURL=DrizzleEventRepository.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DrizzleEventRepository.cjs","names":["Event","eventId","memberId","LightningTalk","exhibitId","LightningTalkDuration","Url","Exhibit","getDb","events","exhibits","lightningTalks","memberExhibits","memberEvents"],"sources":["../../../src/infrastructure/drizzle/DrizzleEventRepository.ts"],"sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { eq, inArray } from \"drizzle-orm\";\nimport {\n\tEvent,\n\ttype EventId,\n\ttype EventRepository,\n\tExhibit,\n\ttype ExhibitId,\n\tLightningTalk,\n\tLightningTalkDuration,\n\ttype MemberId,\n\tUrl,\n\teventId,\n\texhibitId,\n\tmemberId,\n} from \"#domain\";\nimport { type DrizzleDb, getDb } from \"./client\";\nimport { events, exhibits, lightningTalks, memberEvents, memberExhibits } from \"./schema\";\n\n// ============================================================================\n// Type Definitions - Using $inferSelect for schema-derived types\n// ============================================================================\n\n/** Exhibit with related data - matches Drizzle's relational query result */\ntype ExhibitWithRelations = typeof exhibits.$inferSelect & {\n\tlightningTalk: typeof lightningTalks.$inferSelect | null;\n\tmemberExhibits: (typeof memberExhibits.$inferSelect)[];\n};\n\n/** Event with all related data - matches Drizzle's relational query result */\ntype EventWithRelations = typeof events.$inferSelect & {\n\texhibits: ExhibitWithRelations[];\n\tmemberEvents: (typeof memberEvents.$inferSelect)[];\n};\n\n// ============================================================================\n// Repository Implementation\n// ============================================================================\n\nexport class DrizzleEventRepository implements EventRepository {\n\t/**\n\t * Converts a database record to a domain Event entity.\n\t */\n\tprivate toDomain(record: EventWithRelations): Event {\n\t\tconst event = new Event(eventId(record.id), record.name, new Date(record.date));\n\n\t\t// Load event member IDs\n\t\tfor (const memberEvent of record.memberEvents) {\n\t\t\tevent.addMemberId(memberId(memberEvent.memberId));\n\t\t}\n\n\t\t// Load exhibits\n\t\tfor (const exhibitRecord of record.exhibits) {\n\t\t\tconst exhibit = this.createExhibitFromRecord(exhibitRecord);\n\n\t\t\t// Load exhibit member IDs\n\t\t\tfor (const memberExhibit of exhibitRecord.memberExhibits) {\n\t\t\t\texhibit.addMemberId(memberId(memberExhibit.memberId));\n\t\t\t}\n\n\t\t\tevent.addExhibit(exhibit);\n\t\t}\n\n\t\treturn event;\n\t}\n\n\t/**\n\t * Creates an Exhibit domain entity from a database record.\n\t */\n\tprivate createExhibitFromRecord(record: ExhibitWithRelations): Exhibit {\n\t\tif (record.lightningTalk) {\n\t\t\tconst lt = record.lightningTalk;\n\t\t\tconst lightningTalk = new LightningTalk(\n\t\t\t\texhibitId(lt.exhibitId),\n\t\t\t\tnew Date(lt.startTime),\n\t\t\t\tnew LightningTalkDuration(lt.duration),\n\t\t\t\tlt.slideUrl ? new Url(lt.slideUrl) : undefined,\n\t\t\t);\n\n\t\t\treturn Exhibit.createWithLightningTalk(\n\t\t\t\texhibitId(record.id),\n\t\t\t\trecord.name,\n\t\t\t\tlightningTalk,\n\t\t\t\trecord.description ?? undefined,\n\t\t\t\trecord.markdownContent ?? undefined,\n\t\t\t\trecord.url ? new Url(record.url) : undefined,\n\t\t\t);\n\t\t}\n\n\t\treturn new Exhibit(\n\t\t\texhibitId(record.id),\n\t\t\trecord.name,\n\t\t\trecord.description ?? undefined,\n\t\t\trecord.markdownContent ?? undefined,\n\t\t\trecord.url ? new Url(record.url) : undefined,\n\t\t);\n\t}\n\n\t// ==========================================================================\n\t// Persistence Methods\n\t// ==========================================================================\n\n\tprivate async persistEvent(event: Event): Promise<void> {\n\t\tconst db = getDb();\n\t\tconst snapshot = event.toSnapshot();\n\t\tconst now = new Date().toISOString();\n\t\tconst dateStr = snapshot.date instanceof Date ? snapshot.date.toISOString() : snapshot.date;\n\n\t\t// 1) Event upsert\n\t\tawait db\n\t\t\t.insert(events)\n\t\t\t.values({\n\t\t\t\tid: snapshot.id,\n\t\t\t\tname: snapshot.name,\n\t\t\t\tdate: dateStr,\n\t\t\t\tupdatedAt: now,\n\t\t\t})\n\t\t\t.onConflictDoUpdate({\n\t\t\t\ttarget: events.id,\n\t\t\t\tset: {\n\t\t\t\t\tname: snapshot.name,\n\t\t\t\t\tdate: dateStr,\n\t\t\t\t\tupdatedAt: now,\n\t\t\t\t},\n\t\t\t});\n\n\t\t// 2) Find obsolete exhibits and clean up\n\t\tconst snapshotExhibitIds = snapshot.exhibits.map((ex) => ex.id);\n\t\tawait this.deleteObsoleteExhibits(db, snapshot.id, snapshotExhibitIds);\n\n\t\t// 3) Upsert exhibits\n\t\tfor (const ex of snapshot.exhibits) {\n\t\t\tawait this.upsertExhibit(db, snapshot.id, ex);\n\t\t}\n\n\t\t// 4) Sync member events\n\t\tawait this.syncMemberEvents(db, snapshot.id, event.getMemberIds());\n\n\t\t// 5) Sync member exhibits\n\t\tfor (const exhibitDomain of event.getExhibits()) {\n\t\t\tawait this.syncMemberExhibits(db, exhibitDomain.id, exhibitDomain.getMemberIds());\n\t\t}\n\t}\n\n\tprivate async deleteObsoleteExhibits(\n\t\tdb: DrizzleDb,\n\t\teventId: EventId,\n\t\tkeptExhibitIds: ExhibitId[],\n\t): Promise<void> {\n\t\tconst existingExhibits = await db\n\t\t\t.select({ id: exhibits.id })\n\t\t\t.from(exhibits)\n\t\t\t.where(eq(exhibits.eventId, eventId));\n\n\t\tconst existingIdSet = new Set(existingExhibits.map((r) => exhibitId(r.id)));\n\t\tconst keptIdSet = new Set(keptExhibitIds);\n\t\tconst obsoleteIds = [...existingIdSet].filter((id) => !keptIdSet.has(id));\n\n\t\tif (obsoleteIds.length > 0) {\n\t\t\tawait db.delete(lightningTalks).where(inArray(lightningTalks.exhibitId, obsoleteIds));\n\t\t\tawait db.delete(memberExhibits).where(inArray(memberExhibits.exhibitId, obsoleteIds));\n\t\t\tawait db.delete(exhibits).where(inArray(exhibits.id, obsoleteIds));\n\t\t}\n\t}\n\n\tprivate async upsertExhibit(\n\t\tdb: DrizzleDb,\n\t\teventId: EventId,\n\t\tex: ReturnType<Event[\"toSnapshot\"]>[\"exhibits\"][number],\n\t): Promise<void> {\n\t\tconst now = new Date().toISOString();\n\t\tawait db\n\t\t\t.insert(exhibits)\n\t\t\t.values({\n\t\t\t\tid: ex.id,\n\t\t\t\tname: ex.name,\n\t\t\t\tdescription: ex.description ?? null,\n\t\t\t\tmarkdownContent: ex.markdownContent ?? null,\n\t\t\t\turl: ex.url?.getValue() ?? null,\n\t\t\t\teventId: eventId,\n\t\t\t\tupdatedAt: now,\n\t\t\t})\n\t\t\t.onConflictDoUpdate({\n\t\t\t\ttarget: exhibits.id,\n\t\t\t\tset: {\n\t\t\t\t\tname: ex.name,\n\t\t\t\t\tdescription: ex.description ?? null,\n\t\t\t\t\tmarkdownContent: ex.markdownContent ?? null,\n\t\t\t\t\turl: ex.url?.getValue() ?? null,\n\t\t\t\t\tupdatedAt: now,\n\t\t\t\t},\n\t\t\t});\n\n\t\tif (ex.lightningTalk) {\n\t\t\tconst startTimeStr =\n\t\t\t\tex.lightningTalk.startTime instanceof Date\n\t\t\t\t\t? ex.lightningTalk.startTime.toISOString()\n\t\t\t\t\t: ex.lightningTalk.startTime;\n\t\t\tawait db\n\t\t\t\t.insert(lightningTalks)\n\t\t\t\t.values({\n\t\t\t\t\texhibitId: ex.id,\n\t\t\t\t\tstartTime: startTimeStr,\n\t\t\t\t\tduration: ex.lightningTalk.durationMinutes.getValue(),\n\t\t\t\t\tslideUrl: ex.lightningTalk.slideUrl?.getValue() ?? null,\n\t\t\t\t\tupdatedAt: now,\n\t\t\t\t})\n\t\t\t\t.onConflictDoUpdate({\n\t\t\t\t\ttarget: lightningTalks.exhibitId,\n\t\t\t\t\tset: {\n\t\t\t\t\t\tstartTime: startTimeStr,\n\t\t\t\t\t\tduration: ex.lightningTalk.durationMinutes.getValue(),\n\t\t\t\t\t\tslideUrl: ex.lightningTalk.slideUrl?.getValue() ?? null,\n\t\t\t\t\t\tupdatedAt: now,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t} else {\n\t\t\tawait db.delete(lightningTalks).where(eq(lightningTalks.exhibitId, ex.id));\n\t\t}\n\t}\n\n\tprivate async syncMemberEvents(\n\t\tdb: DrizzleDb,\n\t\teventId: EventId,\n\t\tmemberIds: MemberId[],\n\t): Promise<void> {\n\t\tawait db.delete(memberEvents).where(eq(memberEvents.eventId, eventId));\n\n\t\tconst now = new Date().toISOString();\n\t\tfor (const memberId of memberIds) {\n\t\t\tawait db\n\t\t\t\t.insert(memberEvents)\n\t\t\t\t.values({\n\t\t\t\t\tid: randomUUID(),\n\t\t\t\t\tmemberId,\n\t\t\t\t\teventId,\n\t\t\t\t\tupdatedAt: now,\n\t\t\t\t})\n\t\t\t\t.onConflictDoNothing();\n\t\t}\n\t}\n\n\tprivate async syncMemberExhibits(\n\t\tdb: DrizzleDb,\n\t\texhibitId: ExhibitId,\n\t\tmemberIds: MemberId[],\n\t): Promise<void> {\n\t\tawait db.delete(memberExhibits).where(eq(memberExhibits.exhibitId, exhibitId));\n\n\t\tconst now = new Date().toISOString();\n\t\tfor (const memberId of memberIds) {\n\t\t\tawait db\n\t\t\t\t.insert(memberExhibits)\n\t\t\t\t.values({\n\t\t\t\t\tid: randomUUID(),\n\t\t\t\t\tmemberId,\n\t\t\t\t\texhibitId,\n\t\t\t\t\tupdatedAt: now,\n\t\t\t\t})\n\t\t\t\t.onConflictDoNothing();\n\t\t}\n\t}\n\n\t// ==========================================================================\n\t// Query Methods\n\t// ==========================================================================\n\n\tasync findById(id: EventId): Promise<Event | null> {\n\t\tconst db = getDb();\n\t\tconst record = await db.query.events.findFirst({\n\t\t\twhere: eq(events.id, id),\n\t\t\twith: {\n\t\t\t\tmemberEvents: true,\n\t\t\t\texhibits: {\n\t\t\t\t\twith: {\n\t\t\t\t\t\tlightningTalk: true,\n\t\t\t\t\t\tmemberExhibits: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tif (!record) return null;\n\t\treturn this.toDomain(record);\n\t}\n\n\tasync findByParticipantMemberId(memberId: MemberId): Promise<Event[]> {\n\t\tconst db = getDb();\n\n\t\tconst participations = await db\n\t\t\t.select({ eventId: memberEvents.eventId })\n\t\t\t.from(memberEvents)\n\t\t\t.where(eq(memberEvents.memberId, memberId));\n\n\t\tif (participations.length === 0) return [];\n\n\t\tconst eventIds = participations.map((p) => p.eventId);\n\t\tconst records = await db.query.events.findMany({\n\t\t\twhere: inArray(events.id, eventIds),\n\t\t\twith: {\n\t\t\t\tmemberEvents: true,\n\t\t\t\texhibits: {\n\t\t\t\t\twith: {\n\t\t\t\t\t\tlightningTalk: true,\n\t\t\t\t\t\tmemberExhibits: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\treturn records.map((r) => this.toDomain(r));\n\t}\n\n\tasync findByExhibitId(exhibitId: ExhibitId): Promise<Event | null> {\n\t\tconst db = getDb();\n\n\t\tconst exhibit = await db\n\t\t\t.select({ eventId: exhibits.eventId })\n\t\t\t.from(exhibits)\n\t\t\t.where(eq(exhibits.id, exhibitId))\n\t\t\t.limit(1);\n\n\t\tif (exhibit.length === 0) return null;\n\t\treturn this.findById(eventId(exhibit[0].eventId));\n\t}\n\n\tasync findAll(): Promise<Event[]> {\n\t\tconst db = getDb();\n\t\tconst records = await db.query.events.findMany({\n\t\t\twith: {\n\t\t\t\tmemberEvents: true,\n\t\t\t\texhibits: {\n\t\t\t\t\twith: {\n\t\t\t\t\t\tlightningTalk: true,\n\t\t\t\t\t\tmemberExhibits: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\treturn records.map((r) => this.toDomain(r));\n\t}\n\n\tasync save(event: Event): Promise<void> {\n\t\tawait this.persistEvent(event);\n\t}\n\n\tasync delete(eventId: EventId): Promise<void> {\n\t\tconst db = getDb();\n\n\t\tconst exhibitRecords = await db\n\t\t\t.select({ id: exhibits.id })\n\t\t\t.from(exhibits)\n\t\t\t.where(eq(exhibits.eventId, eventId));\n\t\tconst exhibitIds = exhibitRecords.map((ex) => ex.id);\n\n\t\tif (exhibitIds.length > 0) {\n\t\t\tawait db.delete(lightningTalks).where(inArray(lightningTalks.exhibitId, exhibitIds));\n\t\t\tawait db.delete(memberExhibits).where(inArray(memberExhibits.exhibitId, exhibitIds));\n\t\t}\n\n\t\tawait db.delete(memberEvents).where(eq(memberEvents.eventId, eventId));\n\t\tawait db.delete(exhibits).where(eq(exhibits.eventId, eventId));\n\t\tawait db.delete(events).where(eq(events.id, eventId));\n\t}\n}\n"],"mappings":"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"}
|