@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.
Files changed (524) hide show
  1. package/README.md +45 -25
  2. package/dist/_virtual/_rolldown/runtime.cjs +13 -0
  3. package/dist/_virtual/_rolldown/runtime.mjs +13 -0
  4. package/dist/application/exceptions/ApplicationExceptions.cjs +79 -0
  5. package/dist/application/exceptions/ApplicationExceptions.cjs.map +1 -0
  6. package/dist/application/exceptions/ApplicationExceptions.mjs +70 -0
  7. package/dist/application/exceptions/ApplicationExceptions.mjs.map +1 -0
  8. package/dist/application/index.cjs +39 -0
  9. package/dist/application/index.mjs +40 -0
  10. package/dist/application/usecase/base.cjs +11 -0
  11. package/dist/application/usecase/base.cjs.map +1 -0
  12. package/dist/application/usecase/base.d.cts +12 -0
  13. package/dist/application/usecase/base.d.mts +12 -0
  14. package/dist/application/usecase/base.mjs +11 -0
  15. package/dist/application/usecase/base.mjs.map +1 -0
  16. package/dist/application/usecase/event/AddExhibitToEvent.cjs +27 -0
  17. package/dist/application/usecase/event/AddExhibitToEvent.cjs.map +1 -0
  18. package/dist/application/usecase/event/AddExhibitToEvent.d.cts +32 -0
  19. package/dist/application/usecase/event/AddExhibitToEvent.d.mts +32 -0
  20. package/dist/application/usecase/event/AddExhibitToEvent.mjs +27 -0
  21. package/dist/application/usecase/event/AddExhibitToEvent.mjs.map +1 -0
  22. package/dist/application/usecase/event/ChangeExhibitDescription.cjs +23 -0
  23. package/dist/application/usecase/event/ChangeExhibitDescription.cjs.map +1 -0
  24. package/dist/application/usecase/event/ChangeExhibitDescription.d.cts +26 -0
  25. package/dist/application/usecase/event/ChangeExhibitDescription.d.mts +26 -0
  26. package/dist/application/usecase/event/ChangeExhibitDescription.mjs +23 -0
  27. package/dist/application/usecase/event/ChangeExhibitDescription.mjs.map +1 -0
  28. package/dist/application/usecase/event/ChangeExhibitMarkdownContent.cjs +23 -0
  29. package/dist/application/usecase/event/ChangeExhibitMarkdownContent.cjs.map +1 -0
  30. package/dist/application/usecase/event/ChangeExhibitMarkdownContent.d.cts +26 -0
  31. package/dist/application/usecase/event/ChangeExhibitMarkdownContent.d.mts +26 -0
  32. package/dist/application/usecase/event/ChangeExhibitMarkdownContent.mjs +23 -0
  33. package/dist/application/usecase/event/ChangeExhibitMarkdownContent.mjs.map +1 -0
  34. package/dist/application/usecase/event/ChangeExhibitName.cjs +23 -0
  35. package/dist/application/usecase/event/ChangeExhibitName.cjs.map +1 -0
  36. package/dist/application/usecase/event/ChangeExhibitName.d.cts +26 -0
  37. package/dist/application/usecase/event/ChangeExhibitName.d.mts +26 -0
  38. package/dist/application/usecase/event/ChangeExhibitName.mjs +23 -0
  39. package/dist/application/usecase/event/ChangeExhibitName.mjs.map +1 -0
  40. package/dist/application/usecase/event/ChangeExhibitUrl.cjs +23 -0
  41. package/dist/application/usecase/event/ChangeExhibitUrl.cjs.map +1 -0
  42. package/dist/application/usecase/event/ChangeExhibitUrl.d.cts +27 -0
  43. package/dist/application/usecase/event/ChangeExhibitUrl.d.mts +27 -0
  44. package/dist/application/usecase/event/ChangeExhibitUrl.mjs +23 -0
  45. package/dist/application/usecase/event/ChangeExhibitUrl.mjs.map +1 -0
  46. package/dist/application/usecase/event/ChangeLightningTalkDuration.cjs +23 -0
  47. package/dist/application/usecase/event/ChangeLightningTalkDuration.cjs.map +1 -0
  48. package/dist/application/usecase/event/ChangeLightningTalkDuration.d.cts +27 -0
  49. package/dist/application/usecase/event/ChangeLightningTalkDuration.d.mts +27 -0
  50. package/dist/application/usecase/event/ChangeLightningTalkDuration.mjs +23 -0
  51. package/dist/application/usecase/event/ChangeLightningTalkDuration.mjs.map +1 -0
  52. package/dist/application/usecase/event/ChangeLightningTalkSlideUrl.cjs +23 -0
  53. package/dist/application/usecase/event/ChangeLightningTalkSlideUrl.cjs.map +1 -0
  54. package/dist/application/usecase/event/ChangeLightningTalkSlideUrl.d.cts +27 -0
  55. package/dist/application/usecase/event/ChangeLightningTalkSlideUrl.d.mts +27 -0
  56. package/dist/application/usecase/event/ChangeLightningTalkSlideUrl.mjs +23 -0
  57. package/dist/application/usecase/event/ChangeLightningTalkSlideUrl.mjs.map +1 -0
  58. package/dist/application/usecase/event/ChangeLightningTalkStartTime.cjs +23 -0
  59. package/dist/application/usecase/event/ChangeLightningTalkStartTime.cjs.map +1 -0
  60. package/dist/application/usecase/event/ChangeLightningTalkStartTime.d.cts +26 -0
  61. package/dist/application/usecase/event/ChangeLightningTalkStartTime.d.mts +26 -0
  62. package/dist/application/usecase/event/ChangeLightningTalkStartTime.mjs +23 -0
  63. package/dist/application/usecase/event/ChangeLightningTalkStartTime.mjs.map +1 -0
  64. package/dist/application/usecase/event/CreateEvent.cjs +23 -0
  65. package/dist/application/usecase/event/CreateEvent.cjs.map +1 -0
  66. package/dist/application/usecase/event/CreateEvent.d.cts +25 -0
  67. package/dist/application/usecase/event/CreateEvent.d.mts +25 -0
  68. package/dist/application/usecase/event/CreateEvent.mjs +23 -0
  69. package/dist/application/usecase/event/CreateEvent.mjs.map +1 -0
  70. package/dist/application/usecase/event/DeleteEvent.cjs +22 -0
  71. package/dist/application/usecase/event/DeleteEvent.cjs.map +1 -0
  72. package/dist/application/usecase/event/DeleteEvent.d.cts +23 -0
  73. package/dist/application/usecase/event/DeleteEvent.d.mts +23 -0
  74. package/dist/application/usecase/event/DeleteEvent.mjs +22 -0
  75. package/dist/application/usecase/event/DeleteEvent.mjs.map +1 -0
  76. package/dist/application/usecase/event/GetEvent.cjs +18 -0
  77. package/dist/application/usecase/event/GetEvent.cjs.map +1 -0
  78. package/dist/application/usecase/event/GetEvent.d.cts +23 -0
  79. package/dist/application/usecase/event/GetEvent.d.mts +23 -0
  80. package/dist/application/usecase/event/GetEvent.mjs +18 -0
  81. package/dist/application/usecase/event/GetEvent.mjs.map +1 -0
  82. package/dist/application/usecase/event/GetEventList.cjs +15 -0
  83. package/dist/application/usecase/event/GetEventList.cjs.map +1 -0
  84. package/dist/application/usecase/event/GetEventList.d.cts +17 -0
  85. package/dist/application/usecase/event/GetEventList.d.mts +17 -0
  86. package/dist/application/usecase/event/GetEventList.mjs +15 -0
  87. package/dist/application/usecase/event/GetEventList.mjs.map +1 -0
  88. package/dist/application/usecase/event/RemoveExhibitFromEvent.cjs +23 -0
  89. package/dist/application/usecase/event/RemoveExhibitFromEvent.cjs.map +1 -0
  90. package/dist/application/usecase/event/RemoveExhibitFromEvent.d.cts +25 -0
  91. package/dist/application/usecase/event/RemoveExhibitFromEvent.d.mts +25 -0
  92. package/dist/application/usecase/event/RemoveExhibitFromEvent.mjs +23 -0
  93. package/dist/application/usecase/event/RemoveExhibitFromEvent.mjs.map +1 -0
  94. package/dist/application/usecase/event/UpdateEvent.cjs +21 -0
  95. package/dist/application/usecase/event/UpdateEvent.cjs.map +1 -0
  96. package/dist/application/usecase/event/UpdateEvent.d.cts +22 -0
  97. package/dist/application/usecase/event/UpdateEvent.d.mts +22 -0
  98. package/dist/application/usecase/event/UpdateEvent.mjs +21 -0
  99. package/dist/application/usecase/event/UpdateEvent.mjs.map +1 -0
  100. package/dist/application/usecase/event/index.cjs +14 -0
  101. package/dist/application/usecase/event/index.mjs +15 -0
  102. package/dist/application/usecase/eventParticipation/GetEventsByMember.cjs +15 -0
  103. package/dist/application/usecase/eventParticipation/GetEventsByMember.cjs.map +1 -0
  104. package/dist/application/usecase/eventParticipation/GetEventsByMember.d.cts +20 -0
  105. package/dist/application/usecase/eventParticipation/GetEventsByMember.d.mts +20 -0
  106. package/dist/application/usecase/eventParticipation/GetEventsByMember.mjs +15 -0
  107. package/dist/application/usecase/eventParticipation/GetEventsByMember.mjs.map +1 -0
  108. package/dist/application/usecase/eventParticipation/GetExhibitsByMember.cjs +18 -0
  109. package/dist/application/usecase/eventParticipation/GetExhibitsByMember.cjs.map +1 -0
  110. package/dist/application/usecase/eventParticipation/GetExhibitsByMember.d.cts +20 -0
  111. package/dist/application/usecase/eventParticipation/GetExhibitsByMember.d.mts +20 -0
  112. package/dist/application/usecase/eventParticipation/GetExhibitsByMember.mjs +18 -0
  113. package/dist/application/usecase/eventParticipation/GetExhibitsByMember.mjs.map +1 -0
  114. package/dist/application/usecase/eventParticipation/GetMembersByEvent.cjs +19 -0
  115. package/dist/application/usecase/eventParticipation/GetMembersByEvent.cjs.map +1 -0
  116. package/dist/application/usecase/eventParticipation/GetMembersByEvent.d.cts +22 -0
  117. package/dist/application/usecase/eventParticipation/GetMembersByEvent.d.mts +22 -0
  118. package/dist/application/usecase/eventParticipation/GetMembersByEvent.mjs +19 -0
  119. package/dist/application/usecase/eventParticipation/GetMembersByEvent.mjs.map +1 -0
  120. package/dist/application/usecase/eventParticipation/GetMembersByExhibit.cjs +19 -0
  121. package/dist/application/usecase/eventParticipation/GetMembersByExhibit.cjs.map +1 -0
  122. package/dist/application/usecase/eventParticipation/GetMembersByExhibit.d.cts +22 -0
  123. package/dist/application/usecase/eventParticipation/GetMembersByExhibit.d.mts +22 -0
  124. package/dist/application/usecase/eventParticipation/GetMembersByExhibit.mjs +19 -0
  125. package/dist/application/usecase/eventParticipation/GetMembersByExhibit.mjs.map +1 -0
  126. package/dist/application/usecase/eventParticipation/RegisterMemberToEvent.cjs +22 -0
  127. package/dist/application/usecase/eventParticipation/RegisterMemberToEvent.cjs.map +1 -0
  128. package/dist/application/usecase/eventParticipation/RegisterMemberToEvent.d.cts +24 -0
  129. package/dist/application/usecase/eventParticipation/RegisterMemberToEvent.d.mts +24 -0
  130. package/dist/application/usecase/eventParticipation/RegisterMemberToEvent.mjs +22 -0
  131. package/dist/application/usecase/eventParticipation/RegisterMemberToEvent.mjs.map +1 -0
  132. package/dist/application/usecase/eventParticipation/RegisterMemberToExhibit.cjs +22 -0
  133. package/dist/application/usecase/eventParticipation/RegisterMemberToExhibit.cjs.map +1 -0
  134. package/dist/application/usecase/eventParticipation/RegisterMemberToExhibit.d.cts +24 -0
  135. package/dist/application/usecase/eventParticipation/RegisterMemberToExhibit.d.mts +24 -0
  136. package/dist/application/usecase/eventParticipation/RegisterMemberToExhibit.mjs +22 -0
  137. package/dist/application/usecase/eventParticipation/RegisterMemberToExhibit.mjs.map +1 -0
  138. package/dist/application/usecase/eventParticipation/RemoveMemberFromEvent.cjs +21 -0
  139. package/dist/application/usecase/eventParticipation/RemoveMemberFromEvent.cjs.map +1 -0
  140. package/dist/application/usecase/eventParticipation/RemoveMemberFromEvent.d.cts +24 -0
  141. package/dist/application/usecase/eventParticipation/RemoveMemberFromEvent.d.mts +24 -0
  142. package/dist/application/usecase/eventParticipation/RemoveMemberFromEvent.mjs +21 -0
  143. package/dist/application/usecase/eventParticipation/RemoveMemberFromEvent.mjs.map +1 -0
  144. package/dist/application/usecase/eventParticipation/RemoveMemberFromExhibit.cjs +21 -0
  145. package/dist/application/usecase/eventParticipation/RemoveMemberFromExhibit.cjs.map +1 -0
  146. package/dist/application/usecase/eventParticipation/RemoveMemberFromExhibit.d.cts +24 -0
  147. package/dist/application/usecase/eventParticipation/RemoveMemberFromExhibit.d.mts +24 -0
  148. package/dist/application/usecase/eventParticipation/RemoveMemberFromExhibit.mjs +21 -0
  149. package/dist/application/usecase/eventParticipation/RemoveMemberFromExhibit.mjs.map +1 -0
  150. package/dist/application/usecase/karte/CorrectKarte.cjs +20 -0
  151. package/dist/application/usecase/karte/CorrectKarte.cjs.map +1 -0
  152. package/dist/application/usecase/karte/CorrectKarte.d.cts +20 -0
  153. package/dist/application/usecase/karte/CorrectKarte.d.mts +20 -0
  154. package/dist/application/usecase/karte/CorrectKarte.mjs +20 -0
  155. package/dist/application/usecase/karte/CorrectKarte.mjs.map +1 -0
  156. package/dist/application/usecase/karte/CreateKarte.cjs +19 -0
  157. package/dist/application/usecase/karte/CreateKarte.cjs.map +1 -0
  158. package/dist/application/usecase/karte/CreateKarte.d.cts +20 -0
  159. package/dist/application/usecase/karte/CreateKarte.d.mts +20 -0
  160. package/dist/application/usecase/karte/CreateKarte.mjs +19 -0
  161. package/dist/application/usecase/karte/CreateKarte.mjs.map +1 -0
  162. package/dist/application/usecase/karte/GetKarte.cjs +18 -0
  163. package/dist/application/usecase/karte/GetKarte.cjs.map +1 -0
  164. package/dist/application/usecase/karte/GetKarte.d.cts +20 -0
  165. package/dist/application/usecase/karte/GetKarte.d.mts +20 -0
  166. package/dist/application/usecase/karte/GetKarte.mjs +18 -0
  167. package/dist/application/usecase/karte/GetKarte.mjs.map +1 -0
  168. package/dist/application/usecase/karte/ImportKarte.cjs +19 -0
  169. package/dist/application/usecase/karte/ImportKarte.cjs.map +1 -0
  170. package/dist/application/usecase/karte/ImportKarte.d.cts +39 -0
  171. package/dist/application/usecase/karte/ImportKarte.d.mts +39 -0
  172. package/dist/application/usecase/karte/ImportKarte.mjs +19 -0
  173. package/dist/application/usecase/karte/ImportKarte.mjs.map +1 -0
  174. package/dist/application/usecase/karte/ListKartes.cjs +15 -0
  175. package/dist/application/usecase/karte/ListKartes.cjs.map +1 -0
  176. package/dist/application/usecase/karte/ListKartes.d.cts +17 -0
  177. package/dist/application/usecase/karte/ListKartes.d.mts +17 -0
  178. package/dist/application/usecase/karte/ListKartes.mjs +15 -0
  179. package/dist/application/usecase/karte/ListKartes.mjs.map +1 -0
  180. package/dist/application/usecase/karte/index.cjs +5 -0
  181. package/dist/application/usecase/karte/index.mjs +6 -0
  182. package/dist/application/usecase/member/ChangeDiscordNickName.cjs +20 -0
  183. package/dist/application/usecase/member/ChangeDiscordNickName.cjs.map +1 -0
  184. package/dist/application/usecase/member/ChangeDiscordNickName.d.cts +21 -0
  185. package/dist/application/usecase/member/ChangeDiscordNickName.d.mts +21 -0
  186. package/dist/application/usecase/member/ChangeDiscordNickName.mjs +20 -0
  187. package/dist/application/usecase/member/ChangeDiscordNickName.mjs.map +1 -0
  188. package/dist/application/usecase/member/ConnectDiscordAccount.cjs +27 -0
  189. package/dist/application/usecase/member/ConnectDiscordAccount.cjs.map +1 -0
  190. package/dist/application/usecase/member/ConnectDiscordAccount.d.cts +25 -0
  191. package/dist/application/usecase/member/ConnectDiscordAccount.d.mts +25 -0
  192. package/dist/application/usecase/member/ConnectDiscordAccount.mjs +27 -0
  193. package/dist/application/usecase/member/ConnectDiscordAccount.mjs.map +1 -0
  194. package/dist/application/usecase/member/GetMember.cjs +15 -0
  195. package/dist/application/usecase/member/GetMember.cjs.map +1 -0
  196. package/dist/application/usecase/member/GetMember.d.cts +20 -0
  197. package/dist/application/usecase/member/GetMember.d.mts +20 -0
  198. package/dist/application/usecase/member/GetMember.mjs +15 -0
  199. package/dist/application/usecase/member/GetMember.mjs.map +1 -0
  200. package/dist/application/usecase/member/GetMemberByDiscordId.cjs +18 -0
  201. package/dist/application/usecase/member/GetMemberByDiscordId.cjs.map +1 -0
  202. package/dist/application/usecase/member/GetMemberByDiscordId.d.cts +22 -0
  203. package/dist/application/usecase/member/GetMemberByDiscordId.d.mts +22 -0
  204. package/dist/application/usecase/member/GetMemberByDiscordId.mjs +18 -0
  205. package/dist/application/usecase/member/GetMemberByDiscordId.mjs.map +1 -0
  206. package/dist/application/usecase/member/GetMemberByEmail.cjs +15 -0
  207. package/dist/application/usecase/member/GetMemberByEmail.cjs.map +1 -0
  208. package/dist/application/usecase/member/GetMemberByEmail.d.cts +20 -0
  209. package/dist/application/usecase/member/GetMemberByEmail.d.mts +20 -0
  210. package/dist/application/usecase/member/GetMemberByEmail.mjs +15 -0
  211. package/dist/application/usecase/member/GetMemberByEmail.mjs.map +1 -0
  212. package/dist/application/usecase/member/GetMemberList.cjs +15 -0
  213. package/dist/application/usecase/member/GetMemberList.cjs.map +1 -0
  214. package/dist/application/usecase/member/GetMemberList.d.cts +17 -0
  215. package/dist/application/usecase/member/GetMemberList.d.mts +17 -0
  216. package/dist/application/usecase/member/GetMemberList.mjs +15 -0
  217. package/dist/application/usecase/member/GetMemberList.mjs.map +1 -0
  218. package/dist/application/usecase/member/RegisterMember.cjs +30 -0
  219. package/dist/application/usecase/member/RegisterMember.cjs.map +1 -0
  220. package/dist/application/usecase/member/RegisterMember.d.cts +28 -0
  221. package/dist/application/usecase/member/RegisterMember.d.mts +28 -0
  222. package/dist/application/usecase/member/RegisterMember.mjs +30 -0
  223. package/dist/application/usecase/member/RegisterMember.mjs.map +1 -0
  224. package/dist/application/usecase/member/UpdateMember.cjs +24 -0
  225. package/dist/application/usecase/member/UpdateMember.cjs.map +1 -0
  226. package/dist/application/usecase/member/UpdateMember.d.cts +26 -0
  227. package/dist/application/usecase/member/UpdateMember.d.mts +26 -0
  228. package/dist/application/usecase/member/UpdateMember.mjs +24 -0
  229. package/dist/application/usecase/member/UpdateMember.mjs.map +1 -0
  230. package/dist/application/usecase/member/index.cjs +8 -0
  231. package/dist/application/usecase/member/index.mjs +9 -0
  232. package/dist/domain/aggregates/discord-account/DiscordAccount.cjs +47 -0
  233. package/dist/domain/aggregates/discord-account/DiscordAccount.cjs.map +1 -0
  234. package/dist/domain/aggregates/discord-account/DiscordAccount.d.cts +43 -0
  235. package/dist/domain/aggregates/discord-account/DiscordAccount.d.mts +43 -0
  236. package/dist/domain/aggregates/discord-account/DiscordAccount.mjs +46 -0
  237. package/dist/domain/aggregates/discord-account/DiscordAccount.mjs.map +1 -0
  238. package/dist/domain/aggregates/discord-account/DiscordAccountRepository.d.cts +14 -0
  239. package/dist/domain/aggregates/discord-account/DiscordAccountRepository.d.mts +14 -0
  240. package/dist/domain/aggregates/discord-account/DiscordId.cjs +8 -0
  241. package/dist/domain/aggregates/discord-account/DiscordId.cjs.map +1 -0
  242. package/dist/domain/aggregates/discord-account/DiscordId.d.cts +9 -0
  243. package/dist/domain/aggregates/discord-account/DiscordId.d.mts +9 -0
  244. package/dist/domain/aggregates/discord-account/DiscordId.mjs +8 -0
  245. package/dist/domain/aggregates/discord-account/DiscordId.mjs.map +1 -0
  246. package/dist/domain/aggregates/event/Event.cjs +91 -0
  247. package/dist/domain/aggregates/event/Event.cjs.map +1 -0
  248. package/dist/domain/aggregates/event/Event.d.cts +59 -0
  249. package/dist/domain/aggregates/event/Event.d.mts +59 -0
  250. package/dist/domain/aggregates/event/Event.mjs +91 -0
  251. package/dist/domain/aggregates/event/Event.mjs.map +1 -0
  252. package/dist/domain/aggregates/event/EventId.cjs +8 -0
  253. package/dist/domain/aggregates/event/EventId.cjs.map +1 -0
  254. package/dist/domain/aggregates/event/EventId.d.cts +9 -0
  255. package/dist/domain/aggregates/event/EventId.d.mts +9 -0
  256. package/dist/domain/aggregates/event/EventId.mjs +8 -0
  257. package/dist/domain/aggregates/event/EventId.mjs.map +1 -0
  258. package/dist/domain/aggregates/event/EventRepository.d.cts +17 -0
  259. package/dist/domain/aggregates/event/EventRepository.d.mts +17 -0
  260. package/dist/domain/aggregates/event/Exhibit.cjs +86 -0
  261. package/dist/domain/aggregates/event/Exhibit.cjs.map +1 -0
  262. package/dist/domain/aggregates/event/Exhibit.d.cts +52 -0
  263. package/dist/domain/aggregates/event/Exhibit.d.mts +52 -0
  264. package/dist/domain/aggregates/event/Exhibit.mjs +86 -0
  265. package/dist/domain/aggregates/event/Exhibit.mjs.map +1 -0
  266. package/dist/domain/aggregates/event/ExhibitId.cjs +8 -0
  267. package/dist/domain/aggregates/event/ExhibitId.cjs.map +1 -0
  268. package/dist/domain/aggregates/event/ExhibitId.d.cts +9 -0
  269. package/dist/domain/aggregates/event/ExhibitId.d.mts +9 -0
  270. package/dist/domain/aggregates/event/ExhibitId.mjs +8 -0
  271. package/dist/domain/aggregates/event/ExhibitId.mjs.map +1 -0
  272. package/dist/domain/aggregates/event/LightningTalk.cjs +39 -0
  273. package/dist/domain/aggregates/event/LightningTalk.cjs.map +1 -0
  274. package/dist/domain/aggregates/event/LightningTalk.d.cts +27 -0
  275. package/dist/domain/aggregates/event/LightningTalk.d.mts +27 -0
  276. package/dist/domain/aggregates/event/LightningTalk.mjs +39 -0
  277. package/dist/domain/aggregates/event/LightningTalk.mjs.map +1 -0
  278. package/dist/domain/aggregates/event/LightningTalkDuration.cjs +12 -0
  279. package/dist/domain/aggregates/event/LightningTalkDuration.cjs.map +1 -0
  280. package/dist/domain/aggregates/event/LightningTalkDuration.d.cts +9 -0
  281. package/dist/domain/aggregates/event/LightningTalkDuration.d.mts +9 -0
  282. package/dist/domain/aggregates/event/LightningTalkDuration.mjs +12 -0
  283. package/dist/domain/aggregates/event/LightningTalkDuration.mjs.map +1 -0
  284. package/dist/domain/aggregates/event/Url.cjs +19 -0
  285. package/dist/domain/aggregates/event/Url.cjs.map +1 -0
  286. package/dist/domain/aggregates/event/Url.d.cts +9 -0
  287. package/dist/domain/aggregates/event/Url.d.mts +9 -0
  288. package/dist/domain/aggregates/event/Url.mjs +19 -0
  289. package/dist/domain/aggregates/event/Url.mjs.map +1 -0
  290. package/dist/domain/aggregates/index.cjs +25 -0
  291. package/dist/domain/aggregates/index.mjs +26 -0
  292. package/dist/domain/aggregates/karte/Assignee.cjs +7 -0
  293. package/dist/domain/aggregates/karte/Assignee.cjs.map +1 -0
  294. package/dist/domain/aggregates/karte/Assignee.d.cts +20 -0
  295. package/dist/domain/aggregates/karte/Assignee.d.mts +20 -0
  296. package/dist/domain/aggregates/karte/Assignee.mjs +7 -0
  297. package/dist/domain/aggregates/karte/Assignee.mjs.map +1 -0
  298. package/dist/domain/aggregates/karte/Client.cjs +20 -0
  299. package/dist/domain/aggregates/karte/Client.cjs.map +1 -0
  300. package/dist/domain/aggregates/karte/Client.d.cts +42 -0
  301. package/dist/domain/aggregates/karte/Client.d.mts +42 -0
  302. package/dist/domain/aggregates/karte/Client.mjs +19 -0
  303. package/dist/domain/aggregates/karte/Client.mjs.map +1 -0
  304. package/dist/domain/aggregates/karte/Consent.d.cts +14 -0
  305. package/dist/domain/aggregates/karte/Consent.d.mts +14 -0
  306. package/dist/domain/aggregates/karte/Consultation.d.cts +19 -0
  307. package/dist/domain/aggregates/karte/Consultation.d.mts +19 -0
  308. package/dist/domain/aggregates/karte/ConsultationCategory.cjs +89 -0
  309. package/dist/domain/aggregates/karte/ConsultationCategory.cjs.map +1 -0
  310. package/dist/domain/aggregates/karte/ConsultationCategory.d.cts +75 -0
  311. package/dist/domain/aggregates/karte/ConsultationCategory.d.mts +75 -0
  312. package/dist/domain/aggregates/karte/ConsultationCategory.mjs +89 -0
  313. package/dist/domain/aggregates/karte/ConsultationCategory.mjs.map +1 -0
  314. package/dist/domain/aggregates/karte/ConsultedAt.cjs +90 -0
  315. package/dist/domain/aggregates/karte/ConsultedAt.cjs.map +1 -0
  316. package/dist/domain/aggregates/karte/ConsultedAt.d.cts +49 -0
  317. package/dist/domain/aggregates/karte/ConsultedAt.d.mts +49 -0
  318. package/dist/domain/aggregates/karte/ConsultedAt.mjs +85 -0
  319. package/dist/domain/aggregates/karte/ConsultedAt.mjs.map +1 -0
  320. package/dist/domain/aggregates/karte/FollowUp.cjs +13 -0
  321. package/dist/domain/aggregates/karte/FollowUp.cjs.map +1 -0
  322. package/dist/domain/aggregates/karte/FollowUp.d.cts +8 -0
  323. package/dist/domain/aggregates/karte/FollowUp.d.mts +8 -0
  324. package/dist/domain/aggregates/karte/FollowUp.mjs +13 -0
  325. package/dist/domain/aggregates/karte/FollowUp.mjs.map +1 -0
  326. package/dist/domain/aggregates/karte/Karte.cjs +94 -0
  327. package/dist/domain/aggregates/karte/Karte.cjs.map +1 -0
  328. package/dist/domain/aggregates/karte/Karte.d.cts +131 -0
  329. package/dist/domain/aggregates/karte/Karte.d.mts +131 -0
  330. package/dist/domain/aggregates/karte/Karte.mjs +94 -0
  331. package/dist/domain/aggregates/karte/Karte.mjs.map +1 -0
  332. package/dist/domain/aggregates/karte/KarteId.cjs +8 -0
  333. package/dist/domain/aggregates/karte/KarteId.cjs.map +1 -0
  334. package/dist/domain/aggregates/karte/KarteId.d.cts +9 -0
  335. package/dist/domain/aggregates/karte/KarteId.d.mts +9 -0
  336. package/dist/domain/aggregates/karte/KarteId.mjs +8 -0
  337. package/dist/domain/aggregates/karte/KarteId.mjs.map +1 -0
  338. package/dist/domain/aggregates/karte/KarteRepository.d.cts +12 -0
  339. package/dist/domain/aggregates/karte/KarteRepository.d.mts +12 -0
  340. package/dist/domain/aggregates/karte/Resolution.cjs +7 -0
  341. package/dist/domain/aggregates/karte/Resolution.cjs.map +1 -0
  342. package/dist/domain/aggregates/karte/Resolution.d.cts +21 -0
  343. package/dist/domain/aggregates/karte/Resolution.d.mts +21 -0
  344. package/dist/domain/aggregates/karte/Resolution.mjs +7 -0
  345. package/dist/domain/aggregates/karte/Resolution.mjs.map +1 -0
  346. package/dist/domain/aggregates/karte/SupportRecord.d.cts +22 -0
  347. package/dist/domain/aggregates/karte/SupportRecord.d.mts +22 -0
  348. package/dist/domain/aggregates/karte/WorkDuration.cjs +11 -0
  349. package/dist/domain/aggregates/karte/WorkDuration.cjs.map +1 -0
  350. package/dist/domain/aggregates/karte/WorkDuration.d.cts +10 -0
  351. package/dist/domain/aggregates/karte/WorkDuration.d.mts +10 -0
  352. package/dist/domain/aggregates/karte/WorkDuration.mjs +11 -0
  353. package/dist/domain/aggregates/karte/WorkDuration.mjs.map +1 -0
  354. package/dist/domain/aggregates/karte/index.cjs +9 -0
  355. package/dist/domain/aggregates/karte/index.mjs +10 -0
  356. package/dist/domain/aggregates/member/Email.cjs +12 -0
  357. package/dist/domain/aggregates/member/Email.cjs.map +1 -0
  358. package/dist/domain/aggregates/member/Email.d.cts +9 -0
  359. package/dist/domain/aggregates/member/Email.d.mts +9 -0
  360. package/dist/domain/aggregates/member/Email.mjs +12 -0
  361. package/dist/domain/aggregates/member/Email.mjs.map +1 -0
  362. package/dist/domain/aggregates/member/Member.cjs +247 -0
  363. package/dist/domain/aggregates/member/Member.cjs.map +1 -0
  364. package/dist/domain/aggregates/member/Member.d.cts +91 -0
  365. package/dist/domain/aggregates/member/Member.d.mts +91 -0
  366. package/dist/domain/aggregates/member/Member.mjs +245 -0
  367. package/dist/domain/aggregates/member/Member.mjs.map +1 -0
  368. package/dist/domain/aggregates/member/MemberEvent.cjs +20 -0
  369. package/dist/domain/aggregates/member/MemberEvent.cjs.map +1 -0
  370. package/dist/domain/aggregates/member/MemberEvent.d.cts +115 -0
  371. package/dist/domain/aggregates/member/MemberEvent.d.mts +115 -0
  372. package/dist/domain/aggregates/member/MemberEvent.mjs +20 -0
  373. package/dist/domain/aggregates/member/MemberEvent.mjs.map +1 -0
  374. package/dist/domain/aggregates/member/MemberId.cjs +8 -0
  375. package/dist/domain/aggregates/member/MemberId.cjs.map +1 -0
  376. package/dist/domain/aggregates/member/MemberId.d.cts +9 -0
  377. package/dist/domain/aggregates/member/MemberId.d.mts +9 -0
  378. package/dist/domain/aggregates/member/MemberId.mjs +8 -0
  379. package/dist/domain/aggregates/member/MemberId.mjs.map +1 -0
  380. package/dist/domain/aggregates/member/MemberRepository.d.cts +14 -0
  381. package/dist/domain/aggregates/member/MemberRepository.d.mts +14 -0
  382. package/dist/domain/aggregates/member/UniversityEmail.cjs +14 -0
  383. package/dist/domain/aggregates/member/UniversityEmail.cjs.map +1 -0
  384. package/dist/domain/aggregates/member/UniversityEmail.d.cts +9 -0
  385. package/dist/domain/aggregates/member/UniversityEmail.d.mts +9 -0
  386. package/dist/domain/aggregates/member/UniversityEmail.mjs +14 -0
  387. package/dist/domain/aggregates/member/UniversityEmail.mjs.map +1 -0
  388. package/dist/domain/aggregates/member/index.cjs +5 -0
  389. package/dist/domain/aggregates/member/index.mjs +6 -0
  390. package/dist/domain/base/DomainEvent.d.cts +9 -0
  391. package/dist/domain/base/DomainEvent.d.mts +9 -0
  392. package/dist/domain/base/NonEmptyArray.d.cts +10 -0
  393. package/dist/domain/base/NonEmptyArray.d.mts +10 -0
  394. package/dist/domain/base/NonEmptyString.cjs +12 -0
  395. package/dist/domain/base/NonEmptyString.cjs.map +1 -0
  396. package/dist/domain/base/NonEmptyString.d.cts +12 -0
  397. package/dist/domain/base/NonEmptyString.d.mts +12 -0
  398. package/dist/domain/base/NonEmptyString.mjs +12 -0
  399. package/dist/domain/base/NonEmptyString.mjs.map +1 -0
  400. package/dist/domain/base/ValueObject.cjs +21 -0
  401. package/dist/domain/base/ValueObject.cjs.map +1 -0
  402. package/dist/domain/base/ValueObject.d.cts +12 -0
  403. package/dist/domain/base/ValueObject.d.mts +12 -0
  404. package/dist/domain/base/ValueObject.mjs +21 -0
  405. package/dist/domain/base/ValueObject.mjs.map +1 -0
  406. package/dist/domain/exceptions/DomainExceptions.cjs +120 -0
  407. package/dist/domain/exceptions/DomainExceptions.cjs.map +1 -0
  408. package/dist/domain/exceptions/DomainExceptions.d.cts +55 -0
  409. package/dist/domain/exceptions/DomainExceptions.d.mts +55 -0
  410. package/dist/domain/exceptions/DomainExceptions.mjs +105 -0
  411. package/dist/domain/exceptions/DomainExceptions.mjs.map +1 -0
  412. package/dist/domain/index.cjs +32 -0
  413. package/dist/domain/index.mjs +33 -0
  414. package/dist/domain/shared/Recorded.cjs +17 -0
  415. package/dist/domain/shared/Recorded.cjs.map +1 -0
  416. package/dist/domain/shared/Recorded.d.cts +20 -0
  417. package/dist/domain/shared/Recorded.d.mts +20 -0
  418. package/dist/domain/shared/Recorded.mjs +16 -0
  419. package/dist/domain/shared/Recorded.mjs.map +1 -0
  420. package/dist/domain/shared/StudentId.cjs +35 -0
  421. package/dist/domain/shared/StudentId.cjs.map +1 -0
  422. package/dist/domain/shared/StudentId.d.cts +25 -0
  423. package/dist/domain/shared/StudentId.d.mts +25 -0
  424. package/dist/domain/shared/StudentId.mjs +35 -0
  425. package/dist/domain/shared/StudentId.mjs.map +1 -0
  426. package/dist/domain/shared/affiliation/Affiliation.cjs +12 -0
  427. package/dist/domain/shared/affiliation/Affiliation.cjs.map +1 -0
  428. package/dist/domain/shared/affiliation/Affiliation.d.cts +59 -0
  429. package/dist/domain/shared/affiliation/Affiliation.d.mts +59 -0
  430. package/dist/domain/shared/affiliation/Affiliation.mjs +12 -0
  431. package/dist/domain/shared/affiliation/Affiliation.mjs.map +1 -0
  432. package/dist/domain/shared/affiliation/index.cjs +2 -0
  433. package/dist/domain/shared/affiliation/index.mjs +3 -0
  434. package/dist/domain/shared/affiliation/universityStructure.cjs +444 -0
  435. package/dist/domain/shared/affiliation/universityStructure.cjs.map +1 -0
  436. package/dist/domain/shared/affiliation/universityStructure.d.cts +262 -0
  437. package/dist/domain/shared/affiliation/universityStructure.d.mts +262 -0
  438. package/dist/domain/shared/affiliation/universityStructure.mjs +439 -0
  439. package/dist/domain/shared/affiliation/universityStructure.mjs.map +1 -0
  440. package/dist/domain/shared/index.cjs +5 -0
  441. package/dist/domain/shared/index.mjs +6 -0
  442. package/dist/executable/event.cjs +63 -0
  443. package/dist/executable/event.cjs.map +1 -0
  444. package/dist/executable/event.d.cts +56 -0
  445. package/dist/executable/event.d.mts +56 -0
  446. package/dist/executable/event.mjs +63 -0
  447. package/dist/executable/event.mjs.map +1 -0
  448. package/dist/executable/eventService.cjs +146 -0
  449. package/dist/executable/eventService.cjs.map +1 -0
  450. package/dist/executable/eventService.d.cts +143 -0
  451. package/dist/executable/eventService.d.mts +143 -0
  452. package/dist/executable/eventService.mjs +146 -0
  453. package/dist/executable/eventService.mjs.map +1 -0
  454. package/dist/executable/index.cjs +6 -0
  455. package/dist/executable/index.mjs +7 -0
  456. package/dist/executable/karte.cjs +24 -0
  457. package/dist/executable/karte.cjs.map +1 -0
  458. package/dist/executable/karte.d.cts +19 -0
  459. package/dist/executable/karte.d.mts +19 -0
  460. package/dist/executable/karte.mjs +24 -0
  461. package/dist/executable/karte.mjs.map +1 -0
  462. package/dist/executable/karteService.cjs +79 -0
  463. package/dist/executable/karteService.cjs.map +1 -0
  464. package/dist/executable/karteService.d.cts +87 -0
  465. package/dist/executable/karteService.d.mts +87 -0
  466. package/dist/executable/karteService.mjs +79 -0
  467. package/dist/executable/karteService.mjs.map +1 -0
  468. package/dist/executable/member.cjs +32 -0
  469. package/dist/executable/member.cjs.map +1 -0
  470. package/dist/executable/member.d.cts +25 -0
  471. package/dist/executable/member.d.mts +25 -0
  472. package/dist/executable/member.mjs +32 -0
  473. package/dist/executable/member.mjs.map +1 -0
  474. package/dist/executable/memberService.cjs +63 -0
  475. package/dist/executable/memberService.cjs.map +1 -0
  476. package/dist/executable/memberService.d.cts +59 -0
  477. package/dist/executable/memberService.d.mts +59 -0
  478. package/dist/executable/memberService.mjs +63 -0
  479. package/dist/executable/memberService.mjs.map +1 -0
  480. package/dist/index.cjs +105 -1914
  481. package/dist/index.d.cts +46 -754
  482. package/dist/index.d.mts +46 -0
  483. package/dist/index.mjs +39 -0
  484. package/dist/infrastructure/drizzle/DrizzleDiscordAccountRepository.cjs +57 -0
  485. package/dist/infrastructure/drizzle/DrizzleDiscordAccountRepository.cjs.map +1 -0
  486. package/dist/infrastructure/drizzle/DrizzleDiscordAccountRepository.mjs +57 -0
  487. package/dist/infrastructure/drizzle/DrizzleDiscordAccountRepository.mjs.map +1 -0
  488. package/dist/infrastructure/drizzle/DrizzleEventRepository.cjs +196 -0
  489. package/dist/infrastructure/drizzle/DrizzleEventRepository.cjs.map +1 -0
  490. package/dist/infrastructure/drizzle/DrizzleEventRepository.mjs +196 -0
  491. package/dist/infrastructure/drizzle/DrizzleEventRepository.mjs.map +1 -0
  492. package/dist/infrastructure/drizzle/DrizzleKarteRepository.cjs +241 -0
  493. package/dist/infrastructure/drizzle/DrizzleKarteRepository.cjs.map +1 -0
  494. package/dist/infrastructure/drizzle/DrizzleKarteRepository.mjs +241 -0
  495. package/dist/infrastructure/drizzle/DrizzleKarteRepository.mjs.map +1 -0
  496. package/dist/infrastructure/drizzle/DrizzleMemberRepository.cjs +112 -0
  497. package/dist/infrastructure/drizzle/DrizzleMemberRepository.cjs.map +1 -0
  498. package/dist/infrastructure/drizzle/DrizzleMemberRepository.mjs +112 -0
  499. package/dist/infrastructure/drizzle/DrizzleMemberRepository.mjs.map +1 -0
  500. package/dist/infrastructure/drizzle/client.cjs +20 -0
  501. package/dist/infrastructure/drizzle/client.cjs.map +1 -0
  502. package/dist/infrastructure/drizzle/client.mjs +20 -0
  503. package/dist/infrastructure/drizzle/client.mjs.map +1 -0
  504. package/dist/infrastructure/drizzle/index.cjs +4 -0
  505. package/dist/infrastructure/drizzle/index.mjs +5 -0
  506. package/dist/infrastructure/drizzle/schema.cjs +353 -0
  507. package/dist/infrastructure/drizzle/schema.cjs.map +1 -0
  508. package/dist/infrastructure/drizzle/schema.mjs +337 -0
  509. package/dist/infrastructure/drizzle/schema.mjs.map +1 -0
  510. package/dist/infrastructure/drizzle/serializeDiscordAccountEvent.cjs +14 -0
  511. package/dist/infrastructure/drizzle/serializeDiscordAccountEvent.cjs.map +1 -0
  512. package/dist/infrastructure/drizzle/serializeDiscordAccountEvent.mjs +14 -0
  513. package/dist/infrastructure/drizzle/serializeDiscordAccountEvent.mjs.map +1 -0
  514. package/dist/infrastructure/drizzle/serializeMemberEvent.cjs +61 -0
  515. package/dist/infrastructure/drizzle/serializeMemberEvent.cjs.map +1 -0
  516. package/dist/infrastructure/drizzle/serializeMemberEvent.mjs +61 -0
  517. package/dist/infrastructure/drizzle/serializeMemberEvent.mjs.map +1 -0
  518. package/dist/infrastructure/index.cjs +5 -0
  519. package/dist/infrastructure/index.mjs +6 -0
  520. package/package.json +67 -60
  521. package/dist/index.cjs.map +0 -1
  522. package/dist/index.d.ts +0 -754
  523. package/dist/index.js +0 -1875
  524. package/dist/index.js.map +0 -1
@@ -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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"}