@shizuoka-its/core 2.1.2 → 3.0.0-rc.1

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 +124 -0
  5. package/dist/application/exceptions/ApplicationExceptions.cjs.map +1 -0
  6. package/dist/application/exceptions/ApplicationExceptions.mjs +115 -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 +196 -0
  407. package/dist/domain/exceptions/DomainExceptions.cjs.map +1 -0
  408. package/dist/domain/exceptions/DomainExceptions.d.cts +192 -0
  409. package/dist/domain/exceptions/DomainExceptions.d.mts +192 -0
  410. package/dist/domain/exceptions/DomainExceptions.mjs +181 -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,245 @@
1
+ import { InvalidAffiliationOperationException } from "../../exceptions/DomainExceptions.mjs";
2
+ import { affiliationTypeNames } from "../../shared/affiliation/Affiliation.mjs";
3
+ import "../../shared/index.mjs";
4
+ //#region src/domain/aggregates/member/Member.ts
5
+ var ActiveMember = class ActiveMember {
6
+ status = "active";
7
+ constructor(id, email, name, personalEmail, studentId, affiliation, domainEvents = []) {
8
+ this.id = id;
9
+ this.email = email;
10
+ this.name = name;
11
+ this.personalEmail = personalEmail;
12
+ this.studentId = studentId;
13
+ this.affiliation = affiliation;
14
+ this.domainEvents = domainEvents;
15
+ }
16
+ static register(props) {
17
+ return new ActiveMember(props.id, props.email, props.name, props.personalEmail, props.studentId, props.affiliation, [{
18
+ eventName: "MemberRegistered",
19
+ id: props.id,
20
+ email: props.email,
21
+ name: props.name,
22
+ personalEmail: props.personalEmail,
23
+ studentId: props.studentId,
24
+ affiliation: props.affiliation,
25
+ occurredAt: /* @__PURE__ */ new Date()
26
+ }]);
27
+ }
28
+ static reconstruct(props) {
29
+ return new ActiveMember(props.id, props.email, props.name, props.personalEmail, props.studentId, props.affiliation);
30
+ }
31
+ remove(reason) {
32
+ return new FormerMember(this.id, this.email, this.name, this.personalEmail, [...this.domainEvents, {
33
+ eventName: "MemberRemoved",
34
+ id: this.id,
35
+ email: this.email,
36
+ reason,
37
+ occurredAt: /* @__PURE__ */ new Date()
38
+ }]);
39
+ }
40
+ unconfirm() {
41
+ return new UnconfirmedMember(this.id, this.email, this.name, this.personalEmail, [...this.domainEvents, {
42
+ eventName: "MemberUnconfirmed",
43
+ id: this.id,
44
+ email: this.email,
45
+ occurredAt: /* @__PURE__ */ new Date()
46
+ }]);
47
+ }
48
+ changeName(newName) {
49
+ return new ActiveMember(this.id, this.email, newName, this.personalEmail, this.studentId, this.affiliation, [...this.domainEvents, {
50
+ eventName: "NameChanged",
51
+ id: this.id,
52
+ email: this.email,
53
+ previousName: this.name,
54
+ newName,
55
+ occurredAt: /* @__PURE__ */ new Date()
56
+ }]);
57
+ }
58
+ changePersonalEmail(newEmail) {
59
+ return new ActiveMember(this.id, this.email, this.name, newEmail, this.studentId, this.affiliation, [...this.domainEvents, {
60
+ eventName: "PersonalEmailChanged",
61
+ id: this.id,
62
+ email: this.email,
63
+ previousPersonalEmail: this.personalEmail,
64
+ newPersonalEmail: newEmail,
65
+ occurredAt: /* @__PURE__ */ new Date()
66
+ }]);
67
+ }
68
+ changeStudentId(newStudentId) {
69
+ return new ActiveMember(this.id, this.email, this.name, this.personalEmail, newStudentId, this.affiliation, [...this.domainEvents, {
70
+ eventName: "StudentIdChanged",
71
+ id: this.id,
72
+ email: this.email,
73
+ previousStudentId: this.studentId,
74
+ newStudentId,
75
+ occurredAt: /* @__PURE__ */ new Date()
76
+ }]);
77
+ }
78
+ advanceInternally(newAffiliation, newStudentId) {
79
+ this.validateAdvancement(newAffiliation);
80
+ return new ActiveMember(this.id, this.email, this.name, this.personalEmail, newStudentId, newAffiliation, [...this.domainEvents, {
81
+ eventName: "InternallyAdvanced",
82
+ id: this.id,
83
+ email: this.email,
84
+ previousAffiliation: this.affiliation,
85
+ newAffiliation,
86
+ previousStudentId: this.studentId,
87
+ newStudentId,
88
+ occurredAt: /* @__PURE__ */ new Date()
89
+ }]);
90
+ }
91
+ transferFaculty(newAffiliation) {
92
+ if (this.affiliation.type !== "undergraduate") throw new InvalidAffiliationOperationException("転学部", affiliationTypeNames[this.affiliation.type], "学部生のみ可能です");
93
+ return new ActiveMember(this.id, this.email, this.name, this.personalEmail, this.studentId, newAffiliation, [...this.domainEvents, {
94
+ eventName: "FacultyTransferred",
95
+ id: this.id,
96
+ email: this.email,
97
+ previousAffiliation: this.affiliation,
98
+ newAffiliation,
99
+ occurredAt: /* @__PURE__ */ new Date()
100
+ }]);
101
+ }
102
+ transferDepartment(newAffiliation) {
103
+ if (this.affiliation.type !== "undergraduate") throw new InvalidAffiliationOperationException("転学科", affiliationTypeNames[this.affiliation.type], "学部生のみ可能です");
104
+ if (this.affiliation.value.faculty !== newAffiliation.value.faculty) throw new InvalidAffiliationOperationException("転学科", affiliationTypeNames[this.affiliation.type], `同一学部内でのみ可能です(現在: ${this.affiliation.value.faculty})`);
105
+ return new ActiveMember(this.id, this.email, this.name, this.personalEmail, this.studentId, newAffiliation, [...this.domainEvents, {
106
+ eventName: "DepartmentTransferred",
107
+ id: this.id,
108
+ email: this.email,
109
+ previousAffiliation: this.affiliation,
110
+ newAffiliation,
111
+ occurredAt: /* @__PURE__ */ new Date()
112
+ }]);
113
+ }
114
+ transferMajor(newAffiliation) {
115
+ if (this.affiliation.type === "undergraduate") throw new InvalidAffiliationOperationException("転専攻", affiliationTypeNames[this.affiliation.type], "大学院生のみ可能です");
116
+ if (this.affiliation.value.school !== newAffiliation.value.school) throw new InvalidAffiliationOperationException("転専攻", affiliationTypeNames[this.affiliation.type], `同一研究科内でのみ可能です(現在: ${this.affiliation.value.school})`);
117
+ return new ActiveMember(this.id, this.email, this.name, this.personalEmail, this.studentId, newAffiliation, [...this.domainEvents, {
118
+ eventName: "MajorTransferred",
119
+ id: this.id,
120
+ email: this.email,
121
+ previousAffiliation: this.affiliation,
122
+ newAffiliation,
123
+ occurredAt: /* @__PURE__ */ new Date()
124
+ }]);
125
+ }
126
+ getDomainEvents() {
127
+ return [...this.domainEvents];
128
+ }
129
+ validateAdvancement(newAffiliation) {
130
+ if (this.affiliation.type === "undergraduate") {
131
+ if (newAffiliation.type !== "master") throw new InvalidAffiliationOperationException("内部進学", affiliationTypeNames[this.affiliation.type], "学部生からは修士課程のみ可能です");
132
+ return;
133
+ }
134
+ if (this.affiliation.type === "master") {
135
+ if (newAffiliation.type !== "doctoral") throw new InvalidAffiliationOperationException("内部進学", affiliationTypeNames[this.affiliation.type], "修士からは博士課程のみ可能です");
136
+ return;
137
+ }
138
+ throw new InvalidAffiliationOperationException("内部進学", affiliationTypeNames[this.affiliation.type], "この課程からの内部進学はできません");
139
+ }
140
+ };
141
+ var UnconfirmedMember = class UnconfirmedMember {
142
+ status = "unconfirmed";
143
+ constructor(id, email, name, personalEmail, domainEvents = []) {
144
+ this.id = id;
145
+ this.email = email;
146
+ this.name = name;
147
+ this.personalEmail = personalEmail;
148
+ this.domainEvents = domainEvents;
149
+ }
150
+ static reconstruct(props) {
151
+ return new UnconfirmedMember(props.id, props.email, props.name, props.personalEmail);
152
+ }
153
+ confirm(studentId, affiliation) {
154
+ return new ActiveMember(this.id, this.email, this.name, this.personalEmail, studentId, affiliation, [...this.domainEvents, {
155
+ eventName: "MemberConfirmed",
156
+ id: this.id,
157
+ email: this.email,
158
+ studentId,
159
+ affiliation,
160
+ occurredAt: /* @__PURE__ */ new Date()
161
+ }]);
162
+ }
163
+ remove(reason) {
164
+ return new FormerMember(this.id, this.email, this.name, this.personalEmail, [...this.domainEvents, {
165
+ eventName: "MemberRemoved",
166
+ id: this.id,
167
+ email: this.email,
168
+ reason,
169
+ occurredAt: /* @__PURE__ */ new Date()
170
+ }]);
171
+ }
172
+ changeName(newName) {
173
+ return new UnconfirmedMember(this.id, this.email, newName, this.personalEmail, [...this.domainEvents, {
174
+ eventName: "NameChanged",
175
+ id: this.id,
176
+ email: this.email,
177
+ previousName: this.name,
178
+ newName,
179
+ occurredAt: /* @__PURE__ */ new Date()
180
+ }]);
181
+ }
182
+ changePersonalEmail(newEmail) {
183
+ return new UnconfirmedMember(this.id, this.email, this.name, newEmail, [...this.domainEvents, {
184
+ eventName: "PersonalEmailChanged",
185
+ id: this.id,
186
+ email: this.email,
187
+ previousPersonalEmail: this.personalEmail,
188
+ newPersonalEmail: newEmail,
189
+ occurredAt: /* @__PURE__ */ new Date()
190
+ }]);
191
+ }
192
+ getDomainEvents() {
193
+ return [...this.domainEvents];
194
+ }
195
+ };
196
+ var FormerMember = class FormerMember {
197
+ status = "former";
198
+ constructor(id, email, name, personalEmail, domainEvents = []) {
199
+ this.id = id;
200
+ this.email = email;
201
+ this.name = name;
202
+ this.personalEmail = personalEmail;
203
+ this.domainEvents = domainEvents;
204
+ }
205
+ static reconstruct(props) {
206
+ return new FormerMember(props.id, props.email, props.name, props.personalEmail);
207
+ }
208
+ reregister(studentId, affiliation) {
209
+ return new ActiveMember(this.id, this.email, this.name, this.personalEmail, studentId, affiliation, [...this.domainEvents, {
210
+ eventName: "MemberReregistered",
211
+ id: this.id,
212
+ email: this.email,
213
+ studentId,
214
+ affiliation,
215
+ occurredAt: /* @__PURE__ */ new Date()
216
+ }]);
217
+ }
218
+ changeName(newName) {
219
+ return new FormerMember(this.id, this.email, newName, this.personalEmail, [...this.domainEvents, {
220
+ eventName: "NameChanged",
221
+ id: this.id,
222
+ email: this.email,
223
+ previousName: this.name,
224
+ newName,
225
+ occurredAt: /* @__PURE__ */ new Date()
226
+ }]);
227
+ }
228
+ changePersonalEmail(newEmail) {
229
+ return new FormerMember(this.id, this.email, this.name, newEmail, [...this.domainEvents, {
230
+ eventName: "PersonalEmailChanged",
231
+ id: this.id,
232
+ email: this.email,
233
+ previousPersonalEmail: this.personalEmail,
234
+ newPersonalEmail: newEmail,
235
+ occurredAt: /* @__PURE__ */ new Date()
236
+ }]);
237
+ }
238
+ getDomainEvents() {
239
+ return [...this.domainEvents];
240
+ }
241
+ };
242
+ //#endregion
243
+ export { ActiveMember, FormerMember, UnconfirmedMember };
244
+
245
+ //# sourceMappingURL=Member.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Member.mjs","names":[],"sources":["../../../../src/domain/aggregates/member/Member.ts"],"sourcesContent":["import { InvalidAffiliationOperationException } from \"../../exceptions\";\nimport type { Recorded } from \"../../shared\";\nimport type { StudentId } from \"../../shared\";\nimport {\n\ttype CompleteAffiliation,\n\ttype CompleteDoctoralAffiliation,\n\ttype CompleteMasterAffiliation,\n\ttype CompleteProfessionalAffiliation,\n\ttype CompleteUndergraduateAffiliation,\n\taffiliationTypeNames,\n} from \"../../shared\";\nimport type { Email } from \"./Email\";\nimport type { MemberDomainEvent, RemovalReason } from \"./MemberEvent\";\nimport type { MemberId } from \"./MemberId\";\nimport type { UniversityEmail } from \"./UniversityEmail\";\n\n// ── ActiveMember(室員) ──\n\nexport class ActiveMember {\n\treadonly status = \"active\" as const;\n\n\tconstructor(\n\t\treadonly id: MemberId,\n\t\treadonly email: UniversityEmail,\n\t\treadonly name: string,\n\t\treadonly personalEmail: Recorded<Email>,\n\t\treadonly studentId: StudentId,\n\t\treadonly affiliation: CompleteAffiliation,\n\t\tprivate readonly domainEvents: readonly MemberDomainEvent[] = [],\n\t) {}\n\n\tstatic register(props: {\n\t\tid: MemberId;\n\t\temail: UniversityEmail;\n\t\tname: string;\n\t\tpersonalEmail: Recorded<Email>;\n\t\tstudentId: StudentId;\n\t\taffiliation: CompleteAffiliation;\n\t}): ActiveMember {\n\t\treturn new ActiveMember(\n\t\t\tprops.id,\n\t\t\tprops.email,\n\t\t\tprops.name,\n\t\t\tprops.personalEmail,\n\t\t\tprops.studentId,\n\t\t\tprops.affiliation,\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\teventName: \"MemberRegistered\",\n\t\t\t\t\tid: props.id,\n\t\t\t\t\temail: props.email,\n\t\t\t\t\tname: props.name,\n\t\t\t\t\tpersonalEmail: props.personalEmail,\n\t\t\t\t\tstudentId: props.studentId,\n\t\t\t\t\taffiliation: props.affiliation,\n\t\t\t\t\toccurredAt: new Date(),\n\t\t\t\t},\n\t\t\t],\n\t\t);\n\t}\n\n\tstatic reconstruct(props: {\n\t\tid: MemberId;\n\t\temail: UniversityEmail;\n\t\tname: string;\n\t\tpersonalEmail: Recorded<Email>;\n\t\tstudentId: StudentId;\n\t\taffiliation: CompleteAffiliation;\n\t}): ActiveMember {\n\t\treturn new ActiveMember(\n\t\t\tprops.id,\n\t\t\tprops.email,\n\t\t\tprops.name,\n\t\t\tprops.personalEmail,\n\t\t\tprops.studentId,\n\t\t\tprops.affiliation,\n\t\t);\n\t}\n\n\tremove(reason: RemovalReason): FormerMember {\n\t\treturn new FormerMember(this.id, this.email, this.name, this.personalEmail, [\n\t\t\t...this.domainEvents,\n\t\t\t{\n\t\t\t\teventName: \"MemberRemoved\",\n\t\t\t\tid: this.id,\n\t\t\t\temail: this.email,\n\t\t\t\treason,\n\t\t\t\toccurredAt: new Date(),\n\t\t\t},\n\t\t]);\n\t}\n\n\tunconfirm(): UnconfirmedMember {\n\t\treturn new UnconfirmedMember(this.id, this.email, this.name, this.personalEmail, [\n\t\t\t...this.domainEvents,\n\t\t\t{\n\t\t\t\teventName: \"MemberUnconfirmed\",\n\t\t\t\tid: this.id,\n\t\t\t\temail: this.email,\n\t\t\t\toccurredAt: new Date(),\n\t\t\t},\n\t\t]);\n\t}\n\n\tchangeName(newName: string): ActiveMember {\n\t\treturn new ActiveMember(\n\t\t\tthis.id,\n\t\t\tthis.email,\n\t\t\tnewName,\n\t\t\tthis.personalEmail,\n\t\t\tthis.studentId,\n\t\t\tthis.affiliation,\n\t\t\t[\n\t\t\t\t...this.domainEvents,\n\t\t\t\t{\n\t\t\t\t\teventName: \"NameChanged\",\n\t\t\t\t\tid: this.id,\n\t\t\t\t\temail: this.email,\n\t\t\t\t\tpreviousName: this.name,\n\t\t\t\t\tnewName,\n\t\t\t\t\toccurredAt: new Date(),\n\t\t\t\t},\n\t\t\t],\n\t\t);\n\t}\n\n\tchangePersonalEmail(newEmail: Recorded<Email>): ActiveMember {\n\t\treturn new ActiveMember(\n\t\t\tthis.id,\n\t\t\tthis.email,\n\t\t\tthis.name,\n\t\t\tnewEmail,\n\t\t\tthis.studentId,\n\t\t\tthis.affiliation,\n\t\t\t[\n\t\t\t\t...this.domainEvents,\n\t\t\t\t{\n\t\t\t\t\teventName: \"PersonalEmailChanged\",\n\t\t\t\t\tid: this.id,\n\t\t\t\t\temail: this.email,\n\t\t\t\t\tpreviousPersonalEmail: this.personalEmail,\n\t\t\t\t\tnewPersonalEmail: newEmail,\n\t\t\t\t\toccurredAt: new Date(),\n\t\t\t\t},\n\t\t\t],\n\t\t);\n\t}\n\n\tchangeStudentId(newStudentId: StudentId): ActiveMember {\n\t\treturn new ActiveMember(\n\t\t\tthis.id,\n\t\t\tthis.email,\n\t\t\tthis.name,\n\t\t\tthis.personalEmail,\n\t\t\tnewStudentId,\n\t\t\tthis.affiliation,\n\t\t\t[\n\t\t\t\t...this.domainEvents,\n\t\t\t\t{\n\t\t\t\t\teventName: \"StudentIdChanged\",\n\t\t\t\t\tid: this.id,\n\t\t\t\t\temail: this.email,\n\t\t\t\t\tpreviousStudentId: this.studentId,\n\t\t\t\t\tnewStudentId,\n\t\t\t\t\toccurredAt: new Date(),\n\t\t\t\t},\n\t\t\t],\n\t\t);\n\t}\n\n\tadvanceInternally(\n\t\tnewAffiliation: CompleteMasterAffiliation | CompleteDoctoralAffiliation,\n\t\tnewStudentId: StudentId,\n\t): ActiveMember {\n\t\tthis.validateAdvancement(newAffiliation);\n\n\t\treturn new ActiveMember(\n\t\t\tthis.id,\n\t\t\tthis.email,\n\t\t\tthis.name,\n\t\t\tthis.personalEmail,\n\t\t\tnewStudentId,\n\t\t\tnewAffiliation,\n\t\t\t[\n\t\t\t\t...this.domainEvents,\n\t\t\t\t{\n\t\t\t\t\teventName: \"InternallyAdvanced\",\n\t\t\t\t\tid: this.id,\n\t\t\t\t\temail: this.email,\n\t\t\t\t\tpreviousAffiliation: this.affiliation,\n\t\t\t\t\tnewAffiliation,\n\t\t\t\t\tpreviousStudentId: this.studentId,\n\t\t\t\t\tnewStudentId,\n\t\t\t\t\toccurredAt: new Date(),\n\t\t\t\t},\n\t\t\t],\n\t\t);\n\t}\n\n\ttransferFaculty(newAffiliation: CompleteUndergraduateAffiliation): ActiveMember {\n\t\tif (this.affiliation.type !== \"undergraduate\") {\n\t\t\tthrow new InvalidAffiliationOperationException(\n\t\t\t\t\"転学部\",\n\t\t\t\taffiliationTypeNames[this.affiliation.type],\n\t\t\t\t\"学部生のみ可能です\",\n\t\t\t);\n\t\t}\n\n\t\treturn new ActiveMember(\n\t\t\tthis.id,\n\t\t\tthis.email,\n\t\t\tthis.name,\n\t\t\tthis.personalEmail,\n\t\t\tthis.studentId,\n\t\t\tnewAffiliation,\n\t\t\t[\n\t\t\t\t...this.domainEvents,\n\t\t\t\t{\n\t\t\t\t\teventName: \"FacultyTransferred\",\n\t\t\t\t\tid: this.id,\n\t\t\t\t\temail: this.email,\n\t\t\t\t\tpreviousAffiliation: this.affiliation,\n\t\t\t\t\tnewAffiliation,\n\t\t\t\t\toccurredAt: new Date(),\n\t\t\t\t},\n\t\t\t],\n\t\t);\n\t}\n\n\ttransferDepartment(newAffiliation: CompleteUndergraduateAffiliation): ActiveMember {\n\t\tif (this.affiliation.type !== \"undergraduate\") {\n\t\t\tthrow new InvalidAffiliationOperationException(\n\t\t\t\t\"転学科\",\n\t\t\t\taffiliationTypeNames[this.affiliation.type],\n\t\t\t\t\"学部生のみ可能です\",\n\t\t\t);\n\t\t}\n\n\t\tif (this.affiliation.value.faculty !== newAffiliation.value.faculty) {\n\t\t\tthrow new InvalidAffiliationOperationException(\n\t\t\t\t\"転学科\",\n\t\t\t\taffiliationTypeNames[this.affiliation.type],\n\t\t\t\t`同一学部内でのみ可能です(現在: ${this.affiliation.value.faculty})`,\n\t\t\t);\n\t\t}\n\n\t\treturn new ActiveMember(\n\t\t\tthis.id,\n\t\t\tthis.email,\n\t\t\tthis.name,\n\t\t\tthis.personalEmail,\n\t\t\tthis.studentId,\n\t\t\tnewAffiliation,\n\t\t\t[\n\t\t\t\t...this.domainEvents,\n\t\t\t\t{\n\t\t\t\t\teventName: \"DepartmentTransferred\",\n\t\t\t\t\tid: this.id,\n\t\t\t\t\temail: this.email,\n\t\t\t\t\tpreviousAffiliation: this.affiliation,\n\t\t\t\t\tnewAffiliation,\n\t\t\t\t\toccurredAt: new Date(),\n\t\t\t\t},\n\t\t\t],\n\t\t);\n\t}\n\n\ttransferMajor(\n\t\tnewAffiliation:\n\t\t\t| CompleteMasterAffiliation\n\t\t\t| CompleteDoctoralAffiliation\n\t\t\t| CompleteProfessionalAffiliation,\n\t): ActiveMember {\n\t\tif (this.affiliation.type === \"undergraduate\") {\n\t\t\tthrow new InvalidAffiliationOperationException(\n\t\t\t\t\"転専攻\",\n\t\t\t\taffiliationTypeNames[this.affiliation.type],\n\t\t\t\t\"大学院生のみ可能です\",\n\t\t\t);\n\t\t}\n\n\t\tif (this.affiliation.value.school !== newAffiliation.value.school) {\n\t\t\tthrow new InvalidAffiliationOperationException(\n\t\t\t\t\"転専攻\",\n\t\t\t\taffiliationTypeNames[this.affiliation.type],\n\t\t\t\t`同一研究科内でのみ可能です(現在: ${this.affiliation.value.school})`,\n\t\t\t);\n\t\t}\n\n\t\treturn new ActiveMember(\n\t\t\tthis.id,\n\t\t\tthis.email,\n\t\t\tthis.name,\n\t\t\tthis.personalEmail,\n\t\t\tthis.studentId,\n\t\t\tnewAffiliation,\n\t\t\t[\n\t\t\t\t...this.domainEvents,\n\t\t\t\t{\n\t\t\t\t\teventName: \"MajorTransferred\",\n\t\t\t\t\tid: this.id,\n\t\t\t\t\temail: this.email,\n\t\t\t\t\tpreviousAffiliation: this.affiliation,\n\t\t\t\t\tnewAffiliation,\n\t\t\t\t\toccurredAt: new Date(),\n\t\t\t\t},\n\t\t\t],\n\t\t);\n\t}\n\n\tgetDomainEvents(): readonly MemberDomainEvent[] {\n\t\treturn [...this.domainEvents];\n\t}\n\n\tprivate validateAdvancement(\n\t\tnewAffiliation: CompleteMasterAffiliation | CompleteDoctoralAffiliation,\n\t): void {\n\t\tif (this.affiliation.type === \"undergraduate\") {\n\t\t\tif (newAffiliation.type !== \"master\") {\n\t\t\t\tthrow new InvalidAffiliationOperationException(\n\t\t\t\t\t\"内部進学\",\n\t\t\t\t\taffiliationTypeNames[this.affiliation.type],\n\t\t\t\t\t\"学部生からは修士課程のみ可能です\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.affiliation.type === \"master\") {\n\t\t\tif (newAffiliation.type !== \"doctoral\") {\n\t\t\t\tthrow new InvalidAffiliationOperationException(\n\t\t\t\t\t\"内部進学\",\n\t\t\t\t\taffiliationTypeNames[this.affiliation.type],\n\t\t\t\t\t\"修士からは博士課程のみ可能です\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tthrow new InvalidAffiliationOperationException(\n\t\t\t\"内部進学\",\n\t\t\taffiliationTypeNames[this.affiliation.type],\n\t\t\t\"この課程からの内部進学はできません\",\n\t\t);\n\t}\n}\n\n// ── UnconfirmedMember(未確認) ──\n\nexport class UnconfirmedMember {\n\treadonly status = \"unconfirmed\" as const;\n\n\tconstructor(\n\t\treadonly id: MemberId,\n\t\treadonly email: UniversityEmail,\n\t\treadonly name: string,\n\t\treadonly personalEmail: Recorded<Email>,\n\t\tprivate readonly domainEvents: readonly MemberDomainEvent[] = [],\n\t) {}\n\n\tstatic reconstruct(props: {\n\t\tid: MemberId;\n\t\temail: UniversityEmail;\n\t\tname: string;\n\t\tpersonalEmail: Recorded<Email>;\n\t}): UnconfirmedMember {\n\t\treturn new UnconfirmedMember(props.id, props.email, props.name, props.personalEmail);\n\t}\n\n\tconfirm(studentId: StudentId, affiliation: CompleteAffiliation): ActiveMember {\n\t\treturn new ActiveMember(\n\t\t\tthis.id,\n\t\t\tthis.email,\n\t\t\tthis.name,\n\t\t\tthis.personalEmail,\n\t\t\tstudentId,\n\t\t\taffiliation,\n\t\t\t[\n\t\t\t\t...this.domainEvents,\n\t\t\t\t{\n\t\t\t\t\teventName: \"MemberConfirmed\",\n\t\t\t\t\tid: this.id,\n\t\t\t\t\temail: this.email,\n\t\t\t\t\tstudentId,\n\t\t\t\t\taffiliation,\n\t\t\t\t\toccurredAt: new Date(),\n\t\t\t\t},\n\t\t\t],\n\t\t);\n\t}\n\n\tremove(reason: RemovalReason): FormerMember {\n\t\treturn new FormerMember(this.id, this.email, this.name, this.personalEmail, [\n\t\t\t...this.domainEvents,\n\t\t\t{\n\t\t\t\teventName: \"MemberRemoved\",\n\t\t\t\tid: this.id,\n\t\t\t\temail: this.email,\n\t\t\t\treason,\n\t\t\t\toccurredAt: new Date(),\n\t\t\t},\n\t\t]);\n\t}\n\n\tchangeName(newName: string): UnconfirmedMember {\n\t\treturn new UnconfirmedMember(this.id, this.email, newName, this.personalEmail, [\n\t\t\t...this.domainEvents,\n\t\t\t{\n\t\t\t\teventName: \"NameChanged\",\n\t\t\t\tid: this.id,\n\t\t\t\temail: this.email,\n\t\t\t\tpreviousName: this.name,\n\t\t\t\tnewName,\n\t\t\t\toccurredAt: new Date(),\n\t\t\t},\n\t\t]);\n\t}\n\n\tchangePersonalEmail(newEmail: Recorded<Email>): UnconfirmedMember {\n\t\treturn new UnconfirmedMember(this.id, this.email, this.name, newEmail, [\n\t\t\t...this.domainEvents,\n\t\t\t{\n\t\t\t\teventName: \"PersonalEmailChanged\",\n\t\t\t\tid: this.id,\n\t\t\t\temail: this.email,\n\t\t\t\tpreviousPersonalEmail: this.personalEmail,\n\t\t\t\tnewPersonalEmail: newEmail,\n\t\t\t\toccurredAt: new Date(),\n\t\t\t},\n\t\t]);\n\t}\n\n\tgetDomainEvents(): readonly MemberDomainEvent[] {\n\t\treturn [...this.domainEvents];\n\t}\n}\n\n// ── FormerMember(元室員) ──\n\nexport class FormerMember {\n\treadonly status = \"former\" as const;\n\n\tconstructor(\n\t\treadonly id: MemberId,\n\t\treadonly email: UniversityEmail,\n\t\treadonly name: string,\n\t\treadonly personalEmail: Recorded<Email>,\n\t\tprivate readonly domainEvents: readonly MemberDomainEvent[] = [],\n\t) {}\n\n\tstatic reconstruct(props: {\n\t\tid: MemberId;\n\t\temail: UniversityEmail;\n\t\tname: string;\n\t\tpersonalEmail: Recorded<Email>;\n\t}): FormerMember {\n\t\treturn new FormerMember(props.id, props.email, props.name, props.personalEmail);\n\t}\n\n\treregister(studentId: StudentId, affiliation: CompleteAffiliation): ActiveMember {\n\t\treturn new ActiveMember(\n\t\t\tthis.id,\n\t\t\tthis.email,\n\t\t\tthis.name,\n\t\t\tthis.personalEmail,\n\t\t\tstudentId,\n\t\t\taffiliation,\n\t\t\t[\n\t\t\t\t...this.domainEvents,\n\t\t\t\t{\n\t\t\t\t\teventName: \"MemberReregistered\",\n\t\t\t\t\tid: this.id,\n\t\t\t\t\temail: this.email,\n\t\t\t\t\tstudentId,\n\t\t\t\t\taffiliation,\n\t\t\t\t\toccurredAt: new Date(),\n\t\t\t\t},\n\t\t\t],\n\t\t);\n\t}\n\n\tchangeName(newName: string): FormerMember {\n\t\treturn new FormerMember(this.id, this.email, newName, this.personalEmail, [\n\t\t\t...this.domainEvents,\n\t\t\t{\n\t\t\t\teventName: \"NameChanged\",\n\t\t\t\tid: this.id,\n\t\t\t\temail: this.email,\n\t\t\t\tpreviousName: this.name,\n\t\t\t\tnewName,\n\t\t\t\toccurredAt: new Date(),\n\t\t\t},\n\t\t]);\n\t}\n\n\tchangePersonalEmail(newEmail: Recorded<Email>): FormerMember {\n\t\treturn new FormerMember(this.id, this.email, this.name, newEmail, [\n\t\t\t...this.domainEvents,\n\t\t\t{\n\t\t\t\teventName: \"PersonalEmailChanged\",\n\t\t\t\tid: this.id,\n\t\t\t\temail: this.email,\n\t\t\t\tpreviousPersonalEmail: this.personalEmail,\n\t\t\t\tnewPersonalEmail: newEmail,\n\t\t\t\toccurredAt: new Date(),\n\t\t\t},\n\t\t]);\n\t}\n\n\tgetDomainEvents(): readonly MemberDomainEvent[] {\n\t\treturn [...this.domainEvents];\n\t}\n}\n\n/** Member集約 — 室員・未確認・元室員のいずれかの状態を取る */\nexport type Member = ActiveMember | UnconfirmedMember | FormerMember;\n"],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ //#region src/domain/aggregates/member/MemberEvent.ts
2
+ /** Memberイベント名の選択肢一覧 */
3
+ const MEMBER_EVENT_NAMES = [
4
+ "MemberRegistered",
5
+ "MemberRemoved",
6
+ "MemberReregistered",
7
+ "MemberUnconfirmed",
8
+ "MemberConfirmed",
9
+ "InternallyAdvanced",
10
+ "FacultyTransferred",
11
+ "DepartmentTransferred",
12
+ "MajorTransferred",
13
+ "StudentIdChanged",
14
+ "NameChanged",
15
+ "PersonalEmailChanged"
16
+ ];
17
+ //#endregion
18
+ exports.MEMBER_EVENT_NAMES = MEMBER_EVENT_NAMES;
19
+
20
+ //# sourceMappingURL=MemberEvent.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemberEvent.cjs","names":[],"sources":["../../../../src/domain/aggregates/member/MemberEvent.ts"],"sourcesContent":["import type { DomainEvent } from \"../../base\";\nimport type { Recorded } from \"../../shared\";\nimport type { StudentId } from \"../../shared\";\nimport type {\n\tCompleteAffiliation,\n\tCompleteDoctoralAffiliation,\n\tCompleteMasterAffiliation,\n\tCompleteProfessionalAffiliation,\n\tCompleteUndergraduateAffiliation,\n} from \"../../shared\";\nimport type { Email } from \"./Email\";\nimport type { MemberId } from \"./MemberId\";\nimport type { UniversityEmail } from \"./UniversityEmail\";\n\n/** 除籍理由 */\nexport type RemovalReason = \"graduation\" | \"externalAdvancement\" | \"noResponse\" | \"voluntaryLeave\";\n\n/** 室員登録 */\nexport type MemberRegistered = DomainEvent & {\n\treadonly eventName: \"MemberRegistered\";\n\treadonly id: MemberId;\n\treadonly email: UniversityEmail;\n\treadonly name: string;\n\treadonly personalEmail: Recorded<Email>;\n\treadonly studentId: StudentId;\n\treadonly affiliation: CompleteAffiliation;\n};\n\n/** 除籍 */\nexport type MemberRemoved = DomainEvent & {\n\treadonly eventName: \"MemberRemoved\";\n\treadonly id: MemberId;\n\treadonly email: UniversityEmail;\n\treadonly reason: RemovalReason;\n};\n\n/** 再登録 */\nexport type MemberReregistered = DomainEvent & {\n\treadonly eventName: \"MemberReregistered\";\n\treadonly id: MemberId;\n\treadonly email: UniversityEmail;\n\treadonly studentId: StudentId;\n\treadonly affiliation: CompleteAffiliation;\n};\n\n/** 年次確認未返答による未確認状態への移行 */\nexport type MemberUnconfirmed = DomainEvent & {\n\treadonly eventName: \"MemberUnconfirmed\";\n\treadonly id: MemberId;\n\treadonly email: UniversityEmail;\n};\n\n/** 未確認状態からの復帰 */\nexport type MemberConfirmed = DomainEvent & {\n\treadonly eventName: \"MemberConfirmed\";\n\treadonly id: MemberId;\n\treadonly email: UniversityEmail;\n\treadonly studentId: StudentId;\n\treadonly affiliation: CompleteAffiliation;\n};\n\n/** 内部進学 */\nexport type InternallyAdvanced = DomainEvent & {\n\treadonly eventName: \"InternallyAdvanced\";\n\treadonly id: MemberId;\n\treadonly email: UniversityEmail;\n\treadonly previousAffiliation: CompleteAffiliation;\n\treadonly newAffiliation: CompleteMasterAffiliation | CompleteDoctoralAffiliation;\n\treadonly previousStudentId: StudentId;\n\treadonly newStudentId: StudentId;\n};\n\n/** 転学部 */\nexport type FacultyTransferred = DomainEvent & {\n\treadonly eventName: \"FacultyTransferred\";\n\treadonly id: MemberId;\n\treadonly email: UniversityEmail;\n\treadonly previousAffiliation: CompleteUndergraduateAffiliation;\n\treadonly newAffiliation: CompleteUndergraduateAffiliation;\n};\n\n/** 転学科 */\nexport type DepartmentTransferred = DomainEvent & {\n\treadonly eventName: \"DepartmentTransferred\";\n\treadonly id: MemberId;\n\treadonly email: UniversityEmail;\n\treadonly previousAffiliation: CompleteUndergraduateAffiliation;\n\treadonly newAffiliation: CompleteUndergraduateAffiliation;\n};\n\n/** 転専攻 */\nexport type MajorTransferred = DomainEvent & {\n\treadonly eventName: \"MajorTransferred\";\n\treadonly id: MemberId;\n\treadonly email: UniversityEmail;\n\treadonly previousAffiliation:\n\t\t| CompleteMasterAffiliation\n\t\t| CompleteDoctoralAffiliation\n\t\t| CompleteProfessionalAffiliation;\n\treadonly newAffiliation:\n\t\t| CompleteMasterAffiliation\n\t\t| CompleteDoctoralAffiliation\n\t\t| CompleteProfessionalAffiliation;\n};\n\n/** 学籍番号変更 */\nexport type StudentIdChanged = DomainEvent & {\n\treadonly eventName: \"StudentIdChanged\";\n\treadonly id: MemberId;\n\treadonly email: UniversityEmail;\n\treadonly previousStudentId: StudentId;\n\treadonly newStudentId: StudentId;\n};\n\n/** 名前変更 */\nexport type NameChanged = DomainEvent & {\n\treadonly eventName: \"NameChanged\";\n\treadonly id: MemberId;\n\treadonly email: UniversityEmail;\n\treadonly previousName: string;\n\treadonly newName: string;\n};\n\n/** 個人メールアドレス変更 */\nexport type PersonalEmailChanged = DomainEvent & {\n\treadonly eventName: \"PersonalEmailChanged\";\n\treadonly id: MemberId;\n\treadonly email: UniversityEmail;\n\treadonly previousPersonalEmail: Recorded<Email>;\n\treadonly newPersonalEmail: Recorded<Email>;\n};\n\n/** Member集約で発生しうるすべてのドメインイベント */\nexport type MemberDomainEvent =\n\t| MemberRegistered\n\t| MemberRemoved\n\t| MemberReregistered\n\t| MemberUnconfirmed\n\t| MemberConfirmed\n\t| InternallyAdvanced\n\t| FacultyTransferred\n\t| DepartmentTransferred\n\t| MajorTransferred\n\t| StudentIdChanged\n\t| NameChanged\n\t| PersonalEmailChanged;\n\n/** Memberイベント名の選択肢一覧 */\nexport const MEMBER_EVENT_NAMES = [\n\t\"MemberRegistered\",\n\t\"MemberRemoved\",\n\t\"MemberReregistered\",\n\t\"MemberUnconfirmed\",\n\t\"MemberConfirmed\",\n\t\"InternallyAdvanced\",\n\t\"FacultyTransferred\",\n\t\"DepartmentTransferred\",\n\t\"MajorTransferred\",\n\t\"StudentIdChanged\",\n\t\"NameChanged\",\n\t\"PersonalEmailChanged\",\n] as const satisfies readonly MemberDomainEvent[\"eventName\"][];\n"],"mappings":";;AAoJA,MAAa,qBAAqB;CACjC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA"}
@@ -0,0 +1,115 @@
1
+ import { DomainEvent } from "../../base/DomainEvent.cjs";
2
+ import { CompleteAffiliation, CompleteDoctoralAffiliation, CompleteMasterAffiliation, CompleteProfessionalAffiliation, CompleteUndergraduateAffiliation } from "../../shared/affiliation/Affiliation.cjs";
3
+ import { Recorded } from "../../shared/Recorded.cjs";
4
+ import { StudentId } from "../../shared/StudentId.cjs";
5
+ import { Email } from "./Email.cjs";
6
+ import { MemberId } from "./MemberId.cjs";
7
+ import { UniversityEmail } from "./UniversityEmail.cjs";
8
+
9
+ //#region src/domain/aggregates/member/MemberEvent.d.ts
10
+ /** 除籍理由 */
11
+ type RemovalReason = "graduation" | "externalAdvancement" | "noResponse" | "voluntaryLeave";
12
+ /** 室員登録 */
13
+ type MemberRegistered = DomainEvent & {
14
+ readonly eventName: "MemberRegistered";
15
+ readonly id: MemberId;
16
+ readonly email: UniversityEmail;
17
+ readonly name: string;
18
+ readonly personalEmail: Recorded<Email>;
19
+ readonly studentId: StudentId;
20
+ readonly affiliation: CompleteAffiliation;
21
+ };
22
+ /** 除籍 */
23
+ type MemberRemoved = DomainEvent & {
24
+ readonly eventName: "MemberRemoved";
25
+ readonly id: MemberId;
26
+ readonly email: UniversityEmail;
27
+ readonly reason: RemovalReason;
28
+ };
29
+ /** 再登録 */
30
+ type MemberReregistered = DomainEvent & {
31
+ readonly eventName: "MemberReregistered";
32
+ readonly id: MemberId;
33
+ readonly email: UniversityEmail;
34
+ readonly studentId: StudentId;
35
+ readonly affiliation: CompleteAffiliation;
36
+ };
37
+ /** 年次確認未返答による未確認状態への移行 */
38
+ type MemberUnconfirmed = DomainEvent & {
39
+ readonly eventName: "MemberUnconfirmed";
40
+ readonly id: MemberId;
41
+ readonly email: UniversityEmail;
42
+ };
43
+ /** 未確認状態からの復帰 */
44
+ type MemberConfirmed = DomainEvent & {
45
+ readonly eventName: "MemberConfirmed";
46
+ readonly id: MemberId;
47
+ readonly email: UniversityEmail;
48
+ readonly studentId: StudentId;
49
+ readonly affiliation: CompleteAffiliation;
50
+ };
51
+ /** 内部進学 */
52
+ type InternallyAdvanced = DomainEvent & {
53
+ readonly eventName: "InternallyAdvanced";
54
+ readonly id: MemberId;
55
+ readonly email: UniversityEmail;
56
+ readonly previousAffiliation: CompleteAffiliation;
57
+ readonly newAffiliation: CompleteMasterAffiliation | CompleteDoctoralAffiliation;
58
+ readonly previousStudentId: StudentId;
59
+ readonly newStudentId: StudentId;
60
+ };
61
+ /** 転学部 */
62
+ type FacultyTransferred = DomainEvent & {
63
+ readonly eventName: "FacultyTransferred";
64
+ readonly id: MemberId;
65
+ readonly email: UniversityEmail;
66
+ readonly previousAffiliation: CompleteUndergraduateAffiliation;
67
+ readonly newAffiliation: CompleteUndergraduateAffiliation;
68
+ };
69
+ /** 転学科 */
70
+ type DepartmentTransferred = DomainEvent & {
71
+ readonly eventName: "DepartmentTransferred";
72
+ readonly id: MemberId;
73
+ readonly email: UniversityEmail;
74
+ readonly previousAffiliation: CompleteUndergraduateAffiliation;
75
+ readonly newAffiliation: CompleteUndergraduateAffiliation;
76
+ };
77
+ /** 転専攻 */
78
+ type MajorTransferred = DomainEvent & {
79
+ readonly eventName: "MajorTransferred";
80
+ readonly id: MemberId;
81
+ readonly email: UniversityEmail;
82
+ readonly previousAffiliation: CompleteMasterAffiliation | CompleteDoctoralAffiliation | CompleteProfessionalAffiliation;
83
+ readonly newAffiliation: CompleteMasterAffiliation | CompleteDoctoralAffiliation | CompleteProfessionalAffiliation;
84
+ };
85
+ /** 学籍番号変更 */
86
+ type StudentIdChanged = DomainEvent & {
87
+ readonly eventName: "StudentIdChanged";
88
+ readonly id: MemberId;
89
+ readonly email: UniversityEmail;
90
+ readonly previousStudentId: StudentId;
91
+ readonly newStudentId: StudentId;
92
+ };
93
+ /** 名前変更 */
94
+ type NameChanged = DomainEvent & {
95
+ readonly eventName: "NameChanged";
96
+ readonly id: MemberId;
97
+ readonly email: UniversityEmail;
98
+ readonly previousName: string;
99
+ readonly newName: string;
100
+ };
101
+ /** 個人メールアドレス変更 */
102
+ type PersonalEmailChanged = DomainEvent & {
103
+ readonly eventName: "PersonalEmailChanged";
104
+ readonly id: MemberId;
105
+ readonly email: UniversityEmail;
106
+ readonly previousPersonalEmail: Recorded<Email>;
107
+ readonly newPersonalEmail: Recorded<Email>;
108
+ };
109
+ /** Member集約で発生しうるすべてのドメインイベント */
110
+ type MemberDomainEvent = MemberRegistered | MemberRemoved | MemberReregistered | MemberUnconfirmed | MemberConfirmed | InternallyAdvanced | FacultyTransferred | DepartmentTransferred | MajorTransferred | StudentIdChanged | NameChanged | PersonalEmailChanged;
111
+ /** Memberイベント名の選択肢一覧 */
112
+ declare const MEMBER_EVENT_NAMES: readonly ["MemberRegistered", "MemberRemoved", "MemberReregistered", "MemberUnconfirmed", "MemberConfirmed", "InternallyAdvanced", "FacultyTransferred", "DepartmentTransferred", "MajorTransferred", "StudentIdChanged", "NameChanged", "PersonalEmailChanged"];
113
+ //#endregion
114
+ export { DepartmentTransferred, FacultyTransferred, InternallyAdvanced, MEMBER_EVENT_NAMES, MajorTransferred, MemberConfirmed, MemberDomainEvent, MemberRegistered, MemberRemoved, MemberReregistered, MemberUnconfirmed, NameChanged, PersonalEmailChanged, RemovalReason, StudentIdChanged };
115
+ //# sourceMappingURL=MemberEvent.d.cts.map
@@ -0,0 +1,115 @@
1
+ import { DomainEvent } from "../../base/DomainEvent.mjs";
2
+ import { CompleteAffiliation, CompleteDoctoralAffiliation, CompleteMasterAffiliation, CompleteProfessionalAffiliation, CompleteUndergraduateAffiliation } from "../../shared/affiliation/Affiliation.mjs";
3
+ import { Recorded } from "../../shared/Recorded.mjs";
4
+ import { StudentId } from "../../shared/StudentId.mjs";
5
+ import { Email } from "./Email.mjs";
6
+ import { MemberId } from "./MemberId.mjs";
7
+ import { UniversityEmail } from "./UniversityEmail.mjs";
8
+
9
+ //#region src/domain/aggregates/member/MemberEvent.d.ts
10
+ /** 除籍理由 */
11
+ type RemovalReason = "graduation" | "externalAdvancement" | "noResponse" | "voluntaryLeave";
12
+ /** 室員登録 */
13
+ type MemberRegistered = DomainEvent & {
14
+ readonly eventName: "MemberRegistered";
15
+ readonly id: MemberId;
16
+ readonly email: UniversityEmail;
17
+ readonly name: string;
18
+ readonly personalEmail: Recorded<Email>;
19
+ readonly studentId: StudentId;
20
+ readonly affiliation: CompleteAffiliation;
21
+ };
22
+ /** 除籍 */
23
+ type MemberRemoved = DomainEvent & {
24
+ readonly eventName: "MemberRemoved";
25
+ readonly id: MemberId;
26
+ readonly email: UniversityEmail;
27
+ readonly reason: RemovalReason;
28
+ };
29
+ /** 再登録 */
30
+ type MemberReregistered = DomainEvent & {
31
+ readonly eventName: "MemberReregistered";
32
+ readonly id: MemberId;
33
+ readonly email: UniversityEmail;
34
+ readonly studentId: StudentId;
35
+ readonly affiliation: CompleteAffiliation;
36
+ };
37
+ /** 年次確認未返答による未確認状態への移行 */
38
+ type MemberUnconfirmed = DomainEvent & {
39
+ readonly eventName: "MemberUnconfirmed";
40
+ readonly id: MemberId;
41
+ readonly email: UniversityEmail;
42
+ };
43
+ /** 未確認状態からの復帰 */
44
+ type MemberConfirmed = DomainEvent & {
45
+ readonly eventName: "MemberConfirmed";
46
+ readonly id: MemberId;
47
+ readonly email: UniversityEmail;
48
+ readonly studentId: StudentId;
49
+ readonly affiliation: CompleteAffiliation;
50
+ };
51
+ /** 内部進学 */
52
+ type InternallyAdvanced = DomainEvent & {
53
+ readonly eventName: "InternallyAdvanced";
54
+ readonly id: MemberId;
55
+ readonly email: UniversityEmail;
56
+ readonly previousAffiliation: CompleteAffiliation;
57
+ readonly newAffiliation: CompleteMasterAffiliation | CompleteDoctoralAffiliation;
58
+ readonly previousStudentId: StudentId;
59
+ readonly newStudentId: StudentId;
60
+ };
61
+ /** 転学部 */
62
+ type FacultyTransferred = DomainEvent & {
63
+ readonly eventName: "FacultyTransferred";
64
+ readonly id: MemberId;
65
+ readonly email: UniversityEmail;
66
+ readonly previousAffiliation: CompleteUndergraduateAffiliation;
67
+ readonly newAffiliation: CompleteUndergraduateAffiliation;
68
+ };
69
+ /** 転学科 */
70
+ type DepartmentTransferred = DomainEvent & {
71
+ readonly eventName: "DepartmentTransferred";
72
+ readonly id: MemberId;
73
+ readonly email: UniversityEmail;
74
+ readonly previousAffiliation: CompleteUndergraduateAffiliation;
75
+ readonly newAffiliation: CompleteUndergraduateAffiliation;
76
+ };
77
+ /** 転専攻 */
78
+ type MajorTransferred = DomainEvent & {
79
+ readonly eventName: "MajorTransferred";
80
+ readonly id: MemberId;
81
+ readonly email: UniversityEmail;
82
+ readonly previousAffiliation: CompleteMasterAffiliation | CompleteDoctoralAffiliation | CompleteProfessionalAffiliation;
83
+ readonly newAffiliation: CompleteMasterAffiliation | CompleteDoctoralAffiliation | CompleteProfessionalAffiliation;
84
+ };
85
+ /** 学籍番号変更 */
86
+ type StudentIdChanged = DomainEvent & {
87
+ readonly eventName: "StudentIdChanged";
88
+ readonly id: MemberId;
89
+ readonly email: UniversityEmail;
90
+ readonly previousStudentId: StudentId;
91
+ readonly newStudentId: StudentId;
92
+ };
93
+ /** 名前変更 */
94
+ type NameChanged = DomainEvent & {
95
+ readonly eventName: "NameChanged";
96
+ readonly id: MemberId;
97
+ readonly email: UniversityEmail;
98
+ readonly previousName: string;
99
+ readonly newName: string;
100
+ };
101
+ /** 個人メールアドレス変更 */
102
+ type PersonalEmailChanged = DomainEvent & {
103
+ readonly eventName: "PersonalEmailChanged";
104
+ readonly id: MemberId;
105
+ readonly email: UniversityEmail;
106
+ readonly previousPersonalEmail: Recorded<Email>;
107
+ readonly newPersonalEmail: Recorded<Email>;
108
+ };
109
+ /** Member集約で発生しうるすべてのドメインイベント */
110
+ type MemberDomainEvent = MemberRegistered | MemberRemoved | MemberReregistered | MemberUnconfirmed | MemberConfirmed | InternallyAdvanced | FacultyTransferred | DepartmentTransferred | MajorTransferred | StudentIdChanged | NameChanged | PersonalEmailChanged;
111
+ /** Memberイベント名の選択肢一覧 */
112
+ declare const MEMBER_EVENT_NAMES: readonly ["MemberRegistered", "MemberRemoved", "MemberReregistered", "MemberUnconfirmed", "MemberConfirmed", "InternallyAdvanced", "FacultyTransferred", "DepartmentTransferred", "MajorTransferred", "StudentIdChanged", "NameChanged", "PersonalEmailChanged"];
113
+ //#endregion
114
+ export { DepartmentTransferred, FacultyTransferred, InternallyAdvanced, MEMBER_EVENT_NAMES, MajorTransferred, MemberConfirmed, MemberDomainEvent, MemberRegistered, MemberRemoved, MemberReregistered, MemberUnconfirmed, NameChanged, PersonalEmailChanged, RemovalReason, StudentIdChanged };
115
+ //# sourceMappingURL=MemberEvent.d.mts.map
@@ -0,0 +1,20 @@
1
+ //#region src/domain/aggregates/member/MemberEvent.ts
2
+ /** Memberイベント名の選択肢一覧 */
3
+ const MEMBER_EVENT_NAMES = [
4
+ "MemberRegistered",
5
+ "MemberRemoved",
6
+ "MemberReregistered",
7
+ "MemberUnconfirmed",
8
+ "MemberConfirmed",
9
+ "InternallyAdvanced",
10
+ "FacultyTransferred",
11
+ "DepartmentTransferred",
12
+ "MajorTransferred",
13
+ "StudentIdChanged",
14
+ "NameChanged",
15
+ "PersonalEmailChanged"
16
+ ];
17
+ //#endregion
18
+ export { MEMBER_EVENT_NAMES };
19
+
20
+ //# sourceMappingURL=MemberEvent.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemberEvent.mjs","names":[],"sources":["../../../../src/domain/aggregates/member/MemberEvent.ts"],"sourcesContent":["import type { DomainEvent } from \"../../base\";\nimport type { Recorded } from \"../../shared\";\nimport type { StudentId } from \"../../shared\";\nimport type {\n\tCompleteAffiliation,\n\tCompleteDoctoralAffiliation,\n\tCompleteMasterAffiliation,\n\tCompleteProfessionalAffiliation,\n\tCompleteUndergraduateAffiliation,\n} from \"../../shared\";\nimport type { Email } from \"./Email\";\nimport type { MemberId } from \"./MemberId\";\nimport type { UniversityEmail } from \"./UniversityEmail\";\n\n/** 除籍理由 */\nexport type RemovalReason = \"graduation\" | \"externalAdvancement\" | \"noResponse\" | \"voluntaryLeave\";\n\n/** 室員登録 */\nexport type MemberRegistered = DomainEvent & {\n\treadonly eventName: \"MemberRegistered\";\n\treadonly id: MemberId;\n\treadonly email: UniversityEmail;\n\treadonly name: string;\n\treadonly personalEmail: Recorded<Email>;\n\treadonly studentId: StudentId;\n\treadonly affiliation: CompleteAffiliation;\n};\n\n/** 除籍 */\nexport type MemberRemoved = DomainEvent & {\n\treadonly eventName: \"MemberRemoved\";\n\treadonly id: MemberId;\n\treadonly email: UniversityEmail;\n\treadonly reason: RemovalReason;\n};\n\n/** 再登録 */\nexport type MemberReregistered = DomainEvent & {\n\treadonly eventName: \"MemberReregistered\";\n\treadonly id: MemberId;\n\treadonly email: UniversityEmail;\n\treadonly studentId: StudentId;\n\treadonly affiliation: CompleteAffiliation;\n};\n\n/** 年次確認未返答による未確認状態への移行 */\nexport type MemberUnconfirmed = DomainEvent & {\n\treadonly eventName: \"MemberUnconfirmed\";\n\treadonly id: MemberId;\n\treadonly email: UniversityEmail;\n};\n\n/** 未確認状態からの復帰 */\nexport type MemberConfirmed = DomainEvent & {\n\treadonly eventName: \"MemberConfirmed\";\n\treadonly id: MemberId;\n\treadonly email: UniversityEmail;\n\treadonly studentId: StudentId;\n\treadonly affiliation: CompleteAffiliation;\n};\n\n/** 内部進学 */\nexport type InternallyAdvanced = DomainEvent & {\n\treadonly eventName: \"InternallyAdvanced\";\n\treadonly id: MemberId;\n\treadonly email: UniversityEmail;\n\treadonly previousAffiliation: CompleteAffiliation;\n\treadonly newAffiliation: CompleteMasterAffiliation | CompleteDoctoralAffiliation;\n\treadonly previousStudentId: StudentId;\n\treadonly newStudentId: StudentId;\n};\n\n/** 転学部 */\nexport type FacultyTransferred = DomainEvent & {\n\treadonly eventName: \"FacultyTransferred\";\n\treadonly id: MemberId;\n\treadonly email: UniversityEmail;\n\treadonly previousAffiliation: CompleteUndergraduateAffiliation;\n\treadonly newAffiliation: CompleteUndergraduateAffiliation;\n};\n\n/** 転学科 */\nexport type DepartmentTransferred = DomainEvent & {\n\treadonly eventName: \"DepartmentTransferred\";\n\treadonly id: MemberId;\n\treadonly email: UniversityEmail;\n\treadonly previousAffiliation: CompleteUndergraduateAffiliation;\n\treadonly newAffiliation: CompleteUndergraduateAffiliation;\n};\n\n/** 転専攻 */\nexport type MajorTransferred = DomainEvent & {\n\treadonly eventName: \"MajorTransferred\";\n\treadonly id: MemberId;\n\treadonly email: UniversityEmail;\n\treadonly previousAffiliation:\n\t\t| CompleteMasterAffiliation\n\t\t| CompleteDoctoralAffiliation\n\t\t| CompleteProfessionalAffiliation;\n\treadonly newAffiliation:\n\t\t| CompleteMasterAffiliation\n\t\t| CompleteDoctoralAffiliation\n\t\t| CompleteProfessionalAffiliation;\n};\n\n/** 学籍番号変更 */\nexport type StudentIdChanged = DomainEvent & {\n\treadonly eventName: \"StudentIdChanged\";\n\treadonly id: MemberId;\n\treadonly email: UniversityEmail;\n\treadonly previousStudentId: StudentId;\n\treadonly newStudentId: StudentId;\n};\n\n/** 名前変更 */\nexport type NameChanged = DomainEvent & {\n\treadonly eventName: \"NameChanged\";\n\treadonly id: MemberId;\n\treadonly email: UniversityEmail;\n\treadonly previousName: string;\n\treadonly newName: string;\n};\n\n/** 個人メールアドレス変更 */\nexport type PersonalEmailChanged = DomainEvent & {\n\treadonly eventName: \"PersonalEmailChanged\";\n\treadonly id: MemberId;\n\treadonly email: UniversityEmail;\n\treadonly previousPersonalEmail: Recorded<Email>;\n\treadonly newPersonalEmail: Recorded<Email>;\n};\n\n/** Member集約で発生しうるすべてのドメインイベント */\nexport type MemberDomainEvent =\n\t| MemberRegistered\n\t| MemberRemoved\n\t| MemberReregistered\n\t| MemberUnconfirmed\n\t| MemberConfirmed\n\t| InternallyAdvanced\n\t| FacultyTransferred\n\t| DepartmentTransferred\n\t| MajorTransferred\n\t| StudentIdChanged\n\t| NameChanged\n\t| PersonalEmailChanged;\n\n/** Memberイベント名の選択肢一覧 */\nexport const MEMBER_EVENT_NAMES = [\n\t\"MemberRegistered\",\n\t\"MemberRemoved\",\n\t\"MemberReregistered\",\n\t\"MemberUnconfirmed\",\n\t\"MemberConfirmed\",\n\t\"InternallyAdvanced\",\n\t\"FacultyTransferred\",\n\t\"DepartmentTransferred\",\n\t\"MajorTransferred\",\n\t\"StudentIdChanged\",\n\t\"NameChanged\",\n\t\"PersonalEmailChanged\",\n] as const satisfies readonly MemberDomainEvent[\"eventName\"][];\n"],"mappings":";;AAoJA,MAAa,qBAAqB;CACjC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA"}
@@ -0,0 +1,8 @@
1
+ //#region src/domain/aggregates/member/MemberId.ts
2
+ function memberId(value) {
3
+ return value;
4
+ }
5
+ //#endregion
6
+ exports.memberId = memberId;
7
+
8
+ //# sourceMappingURL=MemberId.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemberId.cjs","names":[],"sources":["../../../../src/domain/aggregates/member/MemberId.ts"],"sourcesContent":["/** 室員ID — Member集約ルートを一意に識別するブランド型 */\nexport type MemberId = string & { readonly __brand: unique symbol };\n\nexport function memberId(value: string): MemberId {\n\treturn value as MemberId;\n}\n"],"mappings":";AAGA,SAAgB,SAAS,OAAyB;AACjD,QAAO"}
@@ -0,0 +1,9 @@
1
+ //#region src/domain/aggregates/member/MemberId.d.ts
2
+ /** 室員ID — Member集約ルートを一意に識別するブランド型 */
3
+ type MemberId = string & {
4
+ readonly __brand: unique symbol;
5
+ };
6
+ declare function memberId(value: string): MemberId;
7
+ //#endregion
8
+ export { MemberId, memberId };
9
+ //# sourceMappingURL=MemberId.d.cts.map
@@ -0,0 +1,9 @@
1
+ //#region src/domain/aggregates/member/MemberId.d.ts
2
+ /** 室員ID — Member集約ルートを一意に識別するブランド型 */
3
+ type MemberId = string & {
4
+ readonly __brand: unique symbol;
5
+ };
6
+ declare function memberId(value: string): MemberId;
7
+ //#endregion
8
+ export { MemberId, memberId };
9
+ //# sourceMappingURL=MemberId.d.mts.map
@@ -0,0 +1,8 @@
1
+ //#region src/domain/aggregates/member/MemberId.ts
2
+ function memberId(value) {
3
+ return value;
4
+ }
5
+ //#endregion
6
+ export { memberId };
7
+
8
+ //# sourceMappingURL=MemberId.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemberId.mjs","names":[],"sources":["../../../../src/domain/aggregates/member/MemberId.ts"],"sourcesContent":["/** 室員ID — Member集約ルートを一意に識別するブランド型 */\nexport type MemberId = string & { readonly __brand: unique symbol };\n\nexport function memberId(value: string): MemberId {\n\treturn value as MemberId;\n}\n"],"mappings":";AAGA,SAAgB,SAAS,OAAyB;AACjD,QAAO"}
@@ -0,0 +1,14 @@
1
+ import { MemberId } from "./MemberId.cjs";
2
+ import { UniversityEmail } from "./UniversityEmail.cjs";
3
+ import { Member } from "./Member.cjs";
4
+
5
+ //#region src/domain/aggregates/member/MemberRepository.d.ts
6
+ interface MemberRepository {
7
+ findById(id: MemberId): Promise<Member | null>;
8
+ findByEmail(email: UniversityEmail): Promise<Member | null>;
9
+ findAll(): Promise<Member[]>;
10
+ save(member: Member): Promise<void>;
11
+ }
12
+ //#endregion
13
+ export { MemberRepository };
14
+ //# sourceMappingURL=MemberRepository.d.cts.map