@sideline/domain 0.9.0 → 0.10.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 (191) hide show
  1. package/dist/cjs/api/AgeThresholdApi.js +7 -1
  2. package/dist/cjs/api/AgeThresholdApi.js.map +1 -1
  3. package/dist/cjs/api/Auth.js +9 -8
  4. package/dist/cjs/api/Auth.js.map +1 -1
  5. package/dist/cjs/api/EventApi.js +26 -23
  6. package/dist/cjs/api/EventApi.js.map +1 -1
  7. package/dist/cjs/api/EventRsvpApi.js +8 -8
  8. package/dist/cjs/api/EventRsvpApi.js.map +1 -1
  9. package/dist/cjs/api/EventSeriesApi.js +27 -24
  10. package/dist/cjs/api/EventSeriesApi.js.map +1 -1
  11. package/dist/cjs/api/GroupApi.js +22 -14
  12. package/dist/cjs/api/GroupApi.js.map +1 -1
  13. package/dist/cjs/api/ICalApi.js +25 -0
  14. package/dist/cjs/api/ICalApi.js.map +1 -0
  15. package/dist/cjs/api/RoleApi.js +11 -3
  16. package/dist/cjs/api/RoleApi.js.map +1 -1
  17. package/dist/cjs/api/Roster.js +10 -10
  18. package/dist/cjs/api/Roster.js.map +1 -1
  19. package/dist/cjs/api/TeamSettingsApi.js +13 -12
  20. package/dist/cjs/api/TeamSettingsApi.js.map +1 -1
  21. package/dist/cjs/api/TrainingTypeApi.js +17 -8
  22. package/dist/cjs/api/TrainingTypeApi.js.map +1 -1
  23. package/dist/cjs/index.js +5 -1
  24. package/dist/cjs/models/AgeThresholdRule.js +2 -2
  25. package/dist/cjs/models/AgeThresholdRule.js.map +1 -1
  26. package/dist/cjs/models/ChannelSyncEvent.js +5 -5
  27. package/dist/cjs/models/ChannelSyncEvent.js.map +1 -1
  28. package/dist/cjs/models/Event.js +5 -5
  29. package/dist/cjs/models/Event.js.map +1 -1
  30. package/dist/cjs/models/EventRsvp.js +1 -1
  31. package/dist/cjs/models/EventRsvp.js.map +1 -1
  32. package/dist/cjs/models/EventSeries.js +5 -5
  33. package/dist/cjs/models/EventSeries.js.map +1 -1
  34. package/dist/cjs/models/GroupModel.js +2 -2
  35. package/dist/cjs/models/GroupModel.js.map +1 -1
  36. package/dist/cjs/models/ICalToken.js +17 -0
  37. package/dist/cjs/models/ICalToken.js.map +1 -0
  38. package/dist/cjs/models/OAuthConnection.js +1 -1
  39. package/dist/cjs/models/OAuthConnection.js.map +1 -1
  40. package/dist/cjs/models/RoleSyncEvent.js +5 -5
  41. package/dist/cjs/models/RoleSyncEvent.js.map +1 -1
  42. package/dist/cjs/models/TeamInvite.js +1 -1
  43. package/dist/cjs/models/TeamInvite.js.map +1 -1
  44. package/dist/cjs/models/TeamMember.js +1 -1
  45. package/dist/cjs/models/TeamMember.js.map +1 -1
  46. package/dist/cjs/models/TrainingType.js +1 -1
  47. package/dist/cjs/models/TrainingType.js.map +1 -1
  48. package/dist/cjs/models/User.js +5 -4
  49. package/dist/cjs/models/User.js.map +1 -1
  50. package/dist/cjs/rpc/event/EventRpcEvents.js +14 -12
  51. package/dist/cjs/rpc/event/EventRpcEvents.js.map +1 -1
  52. package/dist/cjs/rpc/event/EventRpcGroup.js +15 -7
  53. package/dist/cjs/rpc/event/EventRpcGroup.js.map +1 -1
  54. package/dist/cjs/rpc/event/EventRpcModels.js +39 -16
  55. package/dist/cjs/rpc/event/EventRpcModels.js.map +1 -1
  56. package/dist/cjs/rpc/guild/GuildRpcGroup.js +3 -3
  57. package/dist/cjs/rpc/guild/GuildRpcGroup.js.map +1 -1
  58. package/dist/dts/api/AgeThresholdApi.d.ts +6 -1
  59. package/dist/dts/api/AgeThresholdApi.d.ts.map +1 -1
  60. package/dist/dts/api/Auth.d.ts +22 -21
  61. package/dist/dts/api/Auth.d.ts.map +1 -1
  62. package/dist/dts/api/EventApi.d.ts +69 -69
  63. package/dist/dts/api/EventApi.d.ts.map +1 -1
  64. package/dist/dts/api/EventRsvpApi.d.ts +24 -24
  65. package/dist/dts/api/EventSeriesApi.d.ts +72 -72
  66. package/dist/dts/api/EventSeriesApi.d.ts.map +1 -1
  67. package/dist/dts/api/GroupApi.d.ts +49 -44
  68. package/dist/dts/api/GroupApi.d.ts.map +1 -1
  69. package/dist/dts/api/ICalApi.d.ts +28 -0
  70. package/dist/dts/api/ICalApi.d.ts.map +1 -0
  71. package/dist/dts/api/RoleApi.d.ts +13 -8
  72. package/dist/dts/api/RoleApi.d.ts.map +1 -1
  73. package/dist/dts/api/Roster.d.ts +32 -32
  74. package/dist/dts/api/TeamSettingsApi.d.ts +36 -36
  75. package/dist/dts/api/TeamSettingsApi.d.ts.map +1 -1
  76. package/dist/dts/api/TrainingTypeApi.d.ts +28 -23
  77. package/dist/dts/api/TrainingTypeApi.d.ts.map +1 -1
  78. package/dist/dts/index.d.ts +2 -0
  79. package/dist/dts/index.d.ts.map +1 -1
  80. package/dist/dts/models/AgeThresholdRule.d.ts +22 -22
  81. package/dist/dts/models/ChannelSyncEvent.d.ts +55 -55
  82. package/dist/dts/models/Event.d.ts +55 -55
  83. package/dist/dts/models/EventRsvp.d.ts +11 -11
  84. package/dist/dts/models/EventSeries.d.ts +55 -55
  85. package/dist/dts/models/GroupModel.d.ts +22 -22
  86. package/dist/dts/models/ICalToken.d.ts +69 -0
  87. package/dist/dts/models/ICalToken.d.ts.map +1 -0
  88. package/dist/dts/models/OAuthConnection.d.ts +8 -8
  89. package/dist/dts/models/RoleSyncEvent.d.ts +55 -55
  90. package/dist/dts/models/TeamInvite.d.ts +11 -11
  91. package/dist/dts/models/TeamMember.d.ts +22 -22
  92. package/dist/dts/models/TrainingType.d.ts +11 -11
  93. package/dist/dts/models/User.d.ts +44 -44
  94. package/dist/dts/models/User.d.ts.map +1 -1
  95. package/dist/dts/rpc/SyncRpcs.d.ts +15 -11
  96. package/dist/dts/rpc/SyncRpcs.d.ts.map +1 -1
  97. package/dist/dts/rpc/event/EventRpcEvents.d.ts +12 -12
  98. package/dist/dts/rpc/event/EventRpcEvents.d.ts.map +1 -1
  99. package/dist/dts/rpc/event/EventRpcGroup.d.ts +13 -9
  100. package/dist/dts/rpc/event/EventRpcGroup.d.ts.map +1 -1
  101. package/dist/dts/rpc/event/EventRpcModels.d.ts +108 -45
  102. package/dist/dts/rpc/event/EventRpcModels.d.ts.map +1 -1
  103. package/dist/dts/rpc/guild/GuildRpcGroup.d.ts +3 -3
  104. package/dist/esm/api/AgeThresholdApi.js +5 -0
  105. package/dist/esm/api/AgeThresholdApi.js.map +1 -1
  106. package/dist/esm/api/Auth.js +8 -7
  107. package/dist/esm/api/Auth.js.map +1 -1
  108. package/dist/esm/api/EventApi.js +25 -23
  109. package/dist/esm/api/EventApi.js.map +1 -1
  110. package/dist/esm/api/EventRsvpApi.js +8 -8
  111. package/dist/esm/api/EventRsvpApi.js.map +1 -1
  112. package/dist/esm/api/EventSeriesApi.js +26 -24
  113. package/dist/esm/api/EventSeriesApi.js.map +1 -1
  114. package/dist/esm/api/GroupApi.js +20 -13
  115. package/dist/esm/api/GroupApi.js.map +1 -1
  116. package/dist/esm/api/ICalApi.js +16 -0
  117. package/dist/esm/api/ICalApi.js.map +1 -0
  118. package/dist/esm/api/RoleApi.js +9 -2
  119. package/dist/esm/api/RoleApi.js.map +1 -1
  120. package/dist/esm/api/Roster.js +10 -10
  121. package/dist/esm/api/Roster.js.map +1 -1
  122. package/dist/esm/api/TeamSettingsApi.js +13 -12
  123. package/dist/esm/api/TeamSettingsApi.js.map +1 -1
  124. package/dist/esm/api/TrainingTypeApi.js +15 -7
  125. package/dist/esm/api/TrainingTypeApi.js.map +1 -1
  126. package/dist/esm/index.js +2 -0
  127. package/dist/esm/index.js.map +1 -1
  128. package/dist/esm/models/AgeThresholdRule.js +2 -2
  129. package/dist/esm/models/AgeThresholdRule.js.map +1 -1
  130. package/dist/esm/models/ChannelSyncEvent.js +5 -5
  131. package/dist/esm/models/ChannelSyncEvent.js.map +1 -1
  132. package/dist/esm/models/Event.js +5 -5
  133. package/dist/esm/models/Event.js.map +1 -1
  134. package/dist/esm/models/EventRsvp.js +1 -1
  135. package/dist/esm/models/EventRsvp.js.map +1 -1
  136. package/dist/esm/models/EventSeries.js +5 -5
  137. package/dist/esm/models/EventSeries.js.map +1 -1
  138. package/dist/esm/models/GroupModel.js +2 -2
  139. package/dist/esm/models/GroupModel.js.map +1 -1
  140. package/dist/esm/models/ICalToken.js +10 -0
  141. package/dist/esm/models/ICalToken.js.map +1 -0
  142. package/dist/esm/models/OAuthConnection.js +1 -1
  143. package/dist/esm/models/OAuthConnection.js.map +1 -1
  144. package/dist/esm/models/RoleSyncEvent.js +5 -5
  145. package/dist/esm/models/RoleSyncEvent.js.map +1 -1
  146. package/dist/esm/models/TeamInvite.js +1 -1
  147. package/dist/esm/models/TeamInvite.js.map +1 -1
  148. package/dist/esm/models/TeamMember.js +1 -1
  149. package/dist/esm/models/TeamMember.js.map +1 -1
  150. package/dist/esm/models/TrainingType.js +1 -1
  151. package/dist/esm/models/TrainingType.js.map +1 -1
  152. package/dist/esm/models/User.js +5 -4
  153. package/dist/esm/models/User.js.map +1 -1
  154. package/dist/esm/rpc/event/EventRpcEvents.js +13 -12
  155. package/dist/esm/rpc/event/EventRpcEvents.js.map +1 -1
  156. package/dist/esm/rpc/event/EventRpcGroup.js +16 -8
  157. package/dist/esm/rpc/event/EventRpcGroup.js.map +1 -1
  158. package/dist/esm/rpc/event/EventRpcModels.js +34 -15
  159. package/dist/esm/rpc/event/EventRpcModels.js.map +1 -1
  160. package/dist/esm/rpc/guild/GuildRpcGroup.js +3 -3
  161. package/dist/esm/rpc/guild/GuildRpcGroup.js.map +1 -1
  162. package/package.json +2 -2
  163. package/src/api/AgeThresholdApi.ts +7 -0
  164. package/src/api/Auth.ts +8 -7
  165. package/src/api/EventApi.ts +27 -23
  166. package/src/api/EventRsvpApi.ts +8 -8
  167. package/src/api/EventSeriesApi.ts +28 -24
  168. package/src/api/GroupApi.ts +21 -13
  169. package/src/api/ICalApi.ts +32 -0
  170. package/src/api/RoleApi.ts +10 -2
  171. package/src/api/Roster.ts +10 -10
  172. package/src/api/TeamSettingsApi.ts +13 -12
  173. package/src/api/TrainingTypeApi.ts +16 -7
  174. package/src/index.ts +4 -0
  175. package/src/models/AgeThresholdRule.ts +2 -2
  176. package/src/models/ChannelSyncEvent.ts +5 -5
  177. package/src/models/Event.ts +5 -5
  178. package/src/models/EventRsvp.ts +1 -1
  179. package/src/models/EventSeries.ts +5 -5
  180. package/src/models/GroupModel.ts +2 -2
  181. package/src/models/ICalToken.ts +10 -0
  182. package/src/models/OAuthConnection.ts +1 -1
  183. package/src/models/RoleSyncEvent.ts +5 -5
  184. package/src/models/TeamInvite.ts +1 -1
  185. package/src/models/TeamMember.ts +1 -1
  186. package/src/models/TrainingType.ts +1 -1
  187. package/src/models/User.ts +5 -4
  188. package/src/rpc/event/EventRpcEvents.ts +13 -12
  189. package/src/rpc/event/EventRpcGroup.ts +18 -7
  190. package/src/rpc/event/EventRpcModels.ts +39 -15
  191. package/src/rpc/guild/GuildRpcGroup.ts +3 -3
@@ -2,7 +2,7 @@ import { Rpc, RpcGroup } from '@effect/rpc';
2
2
  import { Schema } from 'effect';
3
3
  import { Discord, Event, EventRsvp, Team } from '../../index.js';
4
4
  import { UnprocessedEventSyncEvent } from './EventRpcEvents.js';
5
- import { ChannelEventEntry, CreateEventForbidden, CreateEventInvalidDate, CreateEventNotMember, CreateEventResult, EventDiscordMessage, EventEmbedInfo, RsvpAttendeesResult, RsvpCountsResult, RsvpDeadlinePassed, RsvpEventNotFound, RsvpMemberNotFound, RsvpReminderSummary } from './EventRpcModels.js';
5
+ import { ChannelEventEntry, CreateEventForbidden, CreateEventInvalidDate, CreateEventNotMember, CreateEventResult, EventDiscordMessage, EventEmbedInfo, GuildEventListResult, GuildNotFound, RsvpAttendeesResult, RsvpCountsResult, RsvpDeadlinePassed, RsvpEventNotFound, RsvpMemberNotFound, RsvpReminderSummary } from './EventRpcModels.js';
6
6
  export const EventRpcGroup = /*#__PURE__*/RpcGroup.make(Rpc.make('GetUnprocessedEvents', {
7
7
  payload: {
8
8
  limit: Schema.Number
@@ -20,8 +20,8 @@ export const EventRpcGroup = /*#__PURE__*/RpcGroup.make(Rpc.make('GetUnprocessed
20
20
  }), Rpc.make('SaveDiscordMessageId', {
21
21
  payload: {
22
22
  event_id: Event.EventId,
23
- discord_channel_id: Schema.String,
24
- discord_message_id: Schema.String
23
+ discord_channel_id: Discord.Snowflake,
24
+ discord_message_id: Discord.Snowflake
25
25
  }
26
26
  }), Rpc.make('GetDiscordMessageId', {
27
27
  payload: {
@@ -34,7 +34,7 @@ export const EventRpcGroup = /*#__PURE__*/RpcGroup.make(Rpc.make('GetUnprocessed
34
34
  team_id: Team.TeamId,
35
35
  discord_user_id: Discord.Snowflake,
36
36
  response: EventRsvp.RsvpResponse,
37
- message: Schema.NullOr(Schema.String)
37
+ message: Schema.OptionFromNullOr(Schema.String)
38
38
  },
39
39
  success: RsvpCountsResult,
40
40
  error: Schema.Union(RsvpMemberNotFound, RsvpDeadlinePassed, RsvpEventNotFound)
@@ -50,7 +50,7 @@ export const EventRpcGroup = /*#__PURE__*/RpcGroup.make(Rpc.make('GetUnprocessed
50
50
  success: Schema.OptionFromNullOr(EventEmbedInfo)
51
51
  }), Rpc.make('GetChannelEvents', {
52
52
  payload: {
53
- discord_channel_id: Schema.String
53
+ discord_channel_id: Discord.Snowflake
54
54
  },
55
55
  success: Schema.Array(ChannelEventEntry)
56
56
  }), Rpc.make('GetRsvpAttendees', {
@@ -65,6 +65,14 @@ export const EventRpcGroup = /*#__PURE__*/RpcGroup.make(Rpc.make('GetUnprocessed
65
65
  event_id: Event.EventId
66
66
  },
67
67
  success: RsvpReminderSummary
68
+ }), Rpc.make('GetUpcomingGuildEvents', {
69
+ payload: {
70
+ guild_id: Discord.Snowflake,
71
+ offset: Schema.Number,
72
+ limit: Schema.Number
73
+ },
74
+ success: GuildEventListResult,
75
+ error: GuildNotFound
68
76
  }), Rpc.make('CreateEvent', {
69
77
  payload: {
70
78
  guild_id: Discord.Snowflake,
@@ -72,9 +80,9 @@ export const EventRpcGroup = /*#__PURE__*/RpcGroup.make(Rpc.make('GetUnprocessed
72
80
  event_type: Event.EventType,
73
81
  title: Schema.String,
74
82
  start_at: Schema.String,
75
- end_at: Schema.NullOr(Schema.String),
76
- location: Schema.NullOr(Schema.String),
77
- description: Schema.NullOr(Schema.String)
83
+ end_at: Schema.OptionFromNullOr(Schema.String),
84
+ location: Schema.OptionFromNullOr(Schema.String),
85
+ description: Schema.OptionFromNullOr(Schema.String)
78
86
  },
79
87
  success: CreateEventResult,
80
88
  error: Schema.Union(CreateEventNotMember, CreateEventForbidden, CreateEventInvalidDate)
@@ -1 +1 @@
1
- {"version":3,"file":"EventRpcGroup.js","names":["Rpc","RpcGroup","Schema","Discord","Event","EventRsvp","Team","UnprocessedEventSyncEvent","ChannelEventEntry","CreateEventForbidden","CreateEventInvalidDate","CreateEventNotMember","CreateEventResult","EventDiscordMessage","EventEmbedInfo","RsvpAttendeesResult","RsvpCountsResult","RsvpDeadlinePassed","RsvpEventNotFound","RsvpMemberNotFound","RsvpReminderSummary","EventRpcGroup","make","payload","limit","Number","success","Array","id","String","error","event_id","EventId","discord_channel_id","discord_message_id","OptionFromNullOr","team_id","TeamId","discord_user_id","Snowflake","response","RsvpResponse","message","NullOr","Union","offset","guild_id","event_type","EventType","title","start_at","end_at","location","description","prefix"],"sources":["../../../../src/rpc/event/EventRpcGroup.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"EventRpcGroup.js","names":["Rpc","RpcGroup","Schema","Discord","Event","EventRsvp","Team","UnprocessedEventSyncEvent","ChannelEventEntry","CreateEventForbidden","CreateEventInvalidDate","CreateEventNotMember","CreateEventResult","EventDiscordMessage","EventEmbedInfo","GuildEventListResult","GuildNotFound","RsvpAttendeesResult","RsvpCountsResult","RsvpDeadlinePassed","RsvpEventNotFound","RsvpMemberNotFound","RsvpReminderSummary","EventRpcGroup","make","payload","limit","Number","success","Array","id","String","error","event_id","EventId","discord_channel_id","Snowflake","discord_message_id","OptionFromNullOr","team_id","TeamId","discord_user_id","response","RsvpResponse","message","Union","offset","guild_id","event_type","EventType","title","start_at","end_at","location","description","prefix"],"sources":["../../../../src/rpc/event/EventRpcGroup.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,9 @@
1
+ import * as Schemas from '@sideline/effect-lib/Schemas';
1
2
  import { Schema } from 'effect';
3
+ import { Snowflake } from '../../models/Discord.js';
2
4
  export class EventDiscordMessage extends /*#__PURE__*/Schema.Class('EventDiscordMessage')({
3
- discord_channel_id: Schema.String,
4
- discord_message_id: Schema.String
5
+ discord_channel_id: Snowflake,
6
+ discord_message_id: Snowflake
5
7
  }) {}
6
8
  export class RsvpCountsResult extends /*#__PURE__*/Schema.Class('RsvpCountsResult')({
7
9
  yesCount: Schema.Number,
@@ -12,8 +14,8 @@ export class RsvpCountsResult extends /*#__PURE__*/Schema.Class('RsvpCountsResul
12
14
  export class EventEmbedInfo extends /*#__PURE__*/Schema.Class('EventEmbedInfo')({
13
15
  title: Schema.String,
14
16
  description: /*#__PURE__*/Schema.OptionFromNullOr(Schema.String),
15
- start_at: Schema.String,
16
- end_at: /*#__PURE__*/Schema.OptionFromNullOr(Schema.String),
17
+ start_at: Schemas.DateTimeFromIsoString,
18
+ end_at: /*#__PURE__*/Schema.OptionFromNullOr(Schemas.DateTimeFromIsoString),
17
19
  location: /*#__PURE__*/Schema.OptionFromNullOr(Schema.String),
18
20
  event_type: Schema.String
19
21
  }) {}
@@ -21,13 +23,13 @@ export class ChannelEventEntry extends /*#__PURE__*/Schema.Class('ChannelEventEn
21
23
  event_id: Schema.String,
22
24
  team_id: Schema.String,
23
25
  title: Schema.String,
24
- description: /*#__PURE__*/Schema.NullOr(Schema.String),
25
- start_at: Schema.String,
26
- end_at: /*#__PURE__*/Schema.NullOr(Schema.String),
27
- location: /*#__PURE__*/Schema.NullOr(Schema.String),
26
+ description: /*#__PURE__*/Schema.OptionFromNullOr(Schema.String),
27
+ start_at: Schemas.DateTimeFromIsoString,
28
+ end_at: /*#__PURE__*/Schema.OptionFromNullOr(Schemas.DateTimeFromIsoString),
29
+ location: /*#__PURE__*/Schema.OptionFromNullOr(Schema.String),
28
30
  event_type: Schema.String,
29
31
  status: Schema.String,
30
- discord_message_id: Schema.String
32
+ discord_message_id: Snowflake
31
33
  }) {}
32
34
  export class RsvpMemberNotFound extends /*#__PURE__*/Schema.TaggedError()('RsvpMemberNotFound', {}) {}
33
35
  export class RsvpDeadlinePassed extends /*#__PURE__*/Schema.TaggedError()('RsvpDeadlinePassed', {}) {}
@@ -39,20 +41,37 @@ export class CreateEventResult extends /*#__PURE__*/Schema.Class('CreateEventRes
39
41
  event_id: Schema.String,
40
42
  title: Schema.String
41
43
  }) {}
44
+ export class GuildEventListEntry extends /*#__PURE__*/Schema.Class('GuildEventListEntry')({
45
+ event_id: Schema.String,
46
+ title: Schema.String,
47
+ start_at: Schemas.DateTimeFromIsoString,
48
+ end_at: /*#__PURE__*/Schema.OptionFromNullOr(Schemas.DateTimeFromIsoString),
49
+ location: /*#__PURE__*/Schema.OptionFromNullOr(Schema.String),
50
+ event_type: Schema.String,
51
+ yes_count: Schema.Number,
52
+ no_count: Schema.Number,
53
+ maybe_count: Schema.Number
54
+ }) {}
55
+ export class GuildEventListResult extends /*#__PURE__*/Schema.Class('GuildEventListResult')({
56
+ events: /*#__PURE__*/Schema.Array(GuildEventListEntry),
57
+ total: Schema.Number,
58
+ team_id: Schema.String
59
+ }) {}
60
+ export class GuildNotFound extends /*#__PURE__*/Schema.TaggedError()('GuildNotFound', {}) {}
42
61
  export class RsvpAttendeeEntry extends /*#__PURE__*/Schema.Class('RsvpAttendeeEntry')({
43
- discord_id: /*#__PURE__*/Schema.NullOr(Schema.String),
44
- name: /*#__PURE__*/Schema.NullOr(Schema.String),
62
+ discord_id: /*#__PURE__*/Schema.OptionFromNullOr(Snowflake),
63
+ name: /*#__PURE__*/Schema.OptionFromNullOr(Schema.String),
45
64
  response: /*#__PURE__*/Schema.Literal('yes', 'no', 'maybe'),
46
- message: /*#__PURE__*/Schema.NullOr(Schema.String)
65
+ message: /*#__PURE__*/Schema.OptionFromNullOr(Schema.String)
47
66
  }) {}
48
67
  export class RsvpAttendeesResult extends /*#__PURE__*/Schema.Class('RsvpAttendeesResult')({
49
68
  attendees: /*#__PURE__*/Schema.Array(RsvpAttendeeEntry),
50
69
  total: Schema.Number
51
70
  }) {}
52
71
  export class NonResponderRpcEntry extends /*#__PURE__*/Schema.Class('NonResponderRpcEntry')({
53
- discord_id: /*#__PURE__*/Schema.NullOr(Schema.String),
54
- name: /*#__PURE__*/Schema.NullOr(Schema.String),
55
- username: /*#__PURE__*/Schema.NullOr(Schema.String)
72
+ discord_id: /*#__PURE__*/Schema.OptionFromNullOr(Snowflake),
73
+ name: /*#__PURE__*/Schema.OptionFromNullOr(Schema.String),
74
+ username: /*#__PURE__*/Schema.OptionFromNullOr(Schema.String)
56
75
  }) {}
57
76
  export class RsvpReminderSummary extends /*#__PURE__*/Schema.Class('RsvpReminderSummary')({
58
77
  yesCount: Schema.Number,
@@ -1 +1 @@
1
- {"version":3,"file":"EventRpcModels.js","names":["Schema","EventDiscordMessage","Class","discord_channel_id","String","discord_message_id","RsvpCountsResult","yesCount","Number","noCount","maybeCount","canRsvp","Boolean","EventEmbedInfo","title","description","OptionFromNullOr","start_at","end_at","location","event_type","ChannelEventEntry","event_id","team_id","NullOr","status","RsvpMemberNotFound","TaggedError","RsvpDeadlinePassed","RsvpEventNotFound","CreateEventNotMember","CreateEventForbidden","CreateEventInvalidDate","CreateEventResult","RsvpAttendeeEntry","discord_id","name","response","Literal","message","RsvpAttendeesResult","attendees","Array","total","NonResponderRpcEntry","username","RsvpReminderSummary","nonResponders"],"sources":["../../../../src/rpc/event/EventRpcModels.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"EventRpcModels.js","names":["Schemas","Schema","Snowflake","EventDiscordMessage","Class","discord_channel_id","discord_message_id","RsvpCountsResult","yesCount","Number","noCount","maybeCount","canRsvp","Boolean","EventEmbedInfo","title","String","description","OptionFromNullOr","start_at","DateTimeFromIsoString","end_at","location","event_type","ChannelEventEntry","event_id","team_id","status","RsvpMemberNotFound","TaggedError","RsvpDeadlinePassed","RsvpEventNotFound","CreateEventNotMember","CreateEventForbidden","CreateEventInvalidDate","CreateEventResult","GuildEventListEntry","yes_count","no_count","maybe_count","GuildEventListResult","events","Array","total","GuildNotFound","RsvpAttendeeEntry","discord_id","name","response","Literal","message","RsvpAttendeesResult","attendees","NonResponderRpcEntry","username","RsvpReminderSummary","nonResponders"],"sources":["../../../../src/rpc/event/EventRpcModels.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -22,7 +22,7 @@ export const GuildRpcGroup = /*#__PURE__*/RpcGroup.make(Rpc.make('RegisterGuild'
22
22
  channel_id: Discord.Snowflake,
23
23
  name: Schema.String,
24
24
  type: Schema.Number,
25
- parent_id: Schema.NullOr(Discord.Snowflake)
25
+ parent_id: Schema.OptionFromNullOr(Discord.Snowflake)
26
26
  }))
27
27
  }
28
28
  }), Rpc.make('ReconcileMembers', {
@@ -31,7 +31,7 @@ export const GuildRpcGroup = /*#__PURE__*/RpcGroup.make(Rpc.make('RegisterGuild'
31
31
  members: Schema.Array(Schema.Struct({
32
32
  discord_id: Schema.String,
33
33
  username: Schema.String,
34
- avatar: Schema.NullOr(Schema.String),
34
+ avatar: Schema.OptionFromNullOr(Schema.String),
35
35
  roles: Schema.Array(Schema.String)
36
36
  }))
37
37
  }
@@ -40,7 +40,7 @@ export const GuildRpcGroup = /*#__PURE__*/RpcGroup.make(Rpc.make('RegisterGuild'
40
40
  guild_id: Discord.Snowflake,
41
41
  discord_id: Schema.String,
42
42
  username: Schema.String,
43
- avatar: Schema.NullOr(Schema.String),
43
+ avatar: Schema.OptionFromNullOr(Schema.String),
44
44
  roles: Schema.Array(Schema.String)
45
45
  }
46
46
  })).prefix('Guild/');
@@ -1 +1 @@
1
- {"version":3,"file":"GuildRpcGroup.js","names":["Rpc","RpcGroup","Schema","Discord","GuildRpcGroup","make","payload","guild_id","Snowflake","guild_name","String","success","Boolean","channels","Array","Struct","channel_id","name","type","Number","parent_id","NullOr","members","discord_id","username","avatar","roles","prefix"],"sources":["../../../../src/rpc/guild/GuildRpcGroup.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAG,EAAEC,QAAQ,QAAQ,aAAa;AAC3C,SAASC,MAAM,QAAQ,QAAQ;AAC/B,SAASC,OAAO,QAAQ,gBAAa;AAErC,OAAO,MAAMC,aAAa,gBAAGH,QAAQ,CAACI,IAAI,CACxCL,GAAG,CAACK,IAAI,CAAC,eAAe,EAAE;EACxBC,OAAO,EAAE;IAAEC,QAAQ,EAAEJ,OAAO,CAACK,SAAS;IAAEC,UAAU,EAAEP,MAAM,CAACQ;EAAM;CAClE,CAAC,EACFV,GAAG,CAACK,IAAI,CAAC,iBAAiB,EAAE;EAC1BC,OAAO,EAAE;IAAEC,QAAQ,EAAEJ,OAAO,CAACK;EAAS;CACvC,CAAC,EACFR,GAAG,CAACK,IAAI,CAAC,mBAAmB,EAAE;EAC5BC,OAAO,EAAE;IAAEC,QAAQ,EAAEJ,OAAO,CAACK;EAAS,CAAE;EACxCG,OAAO,EAAET,MAAM,CAACU;CACjB,CAAC,EACFZ,GAAG,CAACK,IAAI,CAAC,mBAAmB,EAAE;EAC5BC,OAAO,EAAE;IACPC,QAAQ,EAAEJ,OAAO,CAACK,SAAS;IAC3BK,QAAQ,EAAEX,MAAM,CAACY,KAAK,CACpBZ,MAAM,CAACa,MAAM,CAAC;MACZC,UAAU,EAAEb,OAAO,CAACK,SAAS;MAC7BS,IAAI,EAAEf,MAAM,CAACQ,MAAM;MACnBQ,IAAI,EAAEhB,MAAM,CAACiB,MAAM;MACnBC,SAAS,EAAElB,MAAM,CAACmB,MAAM,CAAClB,OAAO,CAACK,SAAS;KAC3C,CAAC;;CAGP,CAAC,EACFR,GAAG,CAACK,IAAI,CAAC,kBAAkB,EAAE;EAC3BC,OAAO,EAAE;IACPC,QAAQ,EAAEJ,OAAO,CAACK,SAAS;IAC3Bc,OAAO,EAAEpB,MAAM,CAACY,KAAK,CACnBZ,MAAM,CAACa,MAAM,CAAC;MACZQ,UAAU,EAAErB,MAAM,CAACQ,MAAM;MACzBc,QAAQ,EAAEtB,MAAM,CAACQ,MAAM;MACvBe,MAAM,EAAEvB,MAAM,CAACmB,MAAM,CAACnB,MAAM,CAACQ,MAAM,CAAC;MACpCgB,KAAK,EAAExB,MAAM,CAACY,KAAK,CAACZ,MAAM,CAACQ,MAAM;KAClC,CAAC;;CAGP,CAAC,EACFV,GAAG,CAACK,IAAI,CAAC,gBAAgB,EAAE;EACzBC,OAAO,EAAE;IACPC,QAAQ,EAAEJ,OAAO,CAACK,SAAS;IAC3Be,UAAU,EAAErB,MAAM,CAACQ,MAAM;IACzBc,QAAQ,EAAEtB,MAAM,CAACQ,MAAM;IACvBe,MAAM,EAAEvB,MAAM,CAACmB,MAAM,CAACnB,MAAM,CAACQ,MAAM,CAAC;IACpCgB,KAAK,EAAExB,MAAM,CAACY,KAAK,CAACZ,MAAM,CAACQ,MAAM;;CAEpC,CAAC,CACH,CAACiB,MAAM,CAAC,QAAQ,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"GuildRpcGroup.js","names":["Rpc","RpcGroup","Schema","Discord","GuildRpcGroup","make","payload","guild_id","Snowflake","guild_name","String","success","Boolean","channels","Array","Struct","channel_id","name","type","Number","parent_id","OptionFromNullOr","members","discord_id","username","avatar","roles","prefix"],"sources":["../../../../src/rpc/guild/GuildRpcGroup.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAG,EAAEC,QAAQ,QAAQ,aAAa;AAC3C,SAASC,MAAM,QAAQ,QAAQ;AAC/B,SAASC,OAAO,QAAQ,gBAAa;AAErC,OAAO,MAAMC,aAAa,gBAAGH,QAAQ,CAACI,IAAI,CACxCL,GAAG,CAACK,IAAI,CAAC,eAAe,EAAE;EACxBC,OAAO,EAAE;IAAEC,QAAQ,EAAEJ,OAAO,CAACK,SAAS;IAAEC,UAAU,EAAEP,MAAM,CAACQ;EAAM;CAClE,CAAC,EACFV,GAAG,CAACK,IAAI,CAAC,iBAAiB,EAAE;EAC1BC,OAAO,EAAE;IAAEC,QAAQ,EAAEJ,OAAO,CAACK;EAAS;CACvC,CAAC,EACFR,GAAG,CAACK,IAAI,CAAC,mBAAmB,EAAE;EAC5BC,OAAO,EAAE;IAAEC,QAAQ,EAAEJ,OAAO,CAACK;EAAS,CAAE;EACxCG,OAAO,EAAET,MAAM,CAACU;CACjB,CAAC,EACFZ,GAAG,CAACK,IAAI,CAAC,mBAAmB,EAAE;EAC5BC,OAAO,EAAE;IACPC,QAAQ,EAAEJ,OAAO,CAACK,SAAS;IAC3BK,QAAQ,EAAEX,MAAM,CAACY,KAAK,CACpBZ,MAAM,CAACa,MAAM,CAAC;MACZC,UAAU,EAAEb,OAAO,CAACK,SAAS;MAC7BS,IAAI,EAAEf,MAAM,CAACQ,MAAM;MACnBQ,IAAI,EAAEhB,MAAM,CAACiB,MAAM;MACnBC,SAAS,EAAElB,MAAM,CAACmB,gBAAgB,CAAClB,OAAO,CAACK,SAAS;KACrD,CAAC;;CAGP,CAAC,EACFR,GAAG,CAACK,IAAI,CAAC,kBAAkB,EAAE;EAC3BC,OAAO,EAAE;IACPC,QAAQ,EAAEJ,OAAO,CAACK,SAAS;IAC3Bc,OAAO,EAAEpB,MAAM,CAACY,KAAK,CACnBZ,MAAM,CAACa,MAAM,CAAC;MACZQ,UAAU,EAAErB,MAAM,CAACQ,MAAM;MACzBc,QAAQ,EAAEtB,MAAM,CAACQ,MAAM;MACvBe,MAAM,EAAEvB,MAAM,CAACmB,gBAAgB,CAACnB,MAAM,CAACQ,MAAM,CAAC;MAC9CgB,KAAK,EAAExB,MAAM,CAACY,KAAK,CAACZ,MAAM,CAACQ,MAAM;KAClC,CAAC;;CAGP,CAAC,EACFV,GAAG,CAACK,IAAI,CAAC,gBAAgB,EAAE;EACzBC,OAAO,EAAE;IACPC,QAAQ,EAAEJ,OAAO,CAACK,SAAS;IAC3Be,UAAU,EAAErB,MAAM,CAACQ,MAAM;IACzBc,QAAQ,EAAEtB,MAAM,CAACQ,MAAM;IACvBe,MAAM,EAAEvB,MAAM,CAACmB,gBAAgB,CAACnB,MAAM,CAACQ,MAAM,CAAC;IAC9CgB,KAAK,EAAExB,MAAM,CAACY,KAAK,CAACZ,MAAM,CAACQ,MAAM;;CAEpC,CAAC,CACH,CAACiB,MAAM,CAAC,QAAQ,CAAC","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sideline/domain",
3
- "version": "0.9.0",
3
+ "version": "0.10.0",
4
4
  "description": "The domain template",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -15,7 +15,7 @@
15
15
  "@effect/rpc": "0.73.0",
16
16
  "@effect/sql": "0.49.0",
17
17
  "effect": "3.19.18",
18
- "@sideline/effect-lib": "0.0.3"
18
+ "@sideline/effect-lib": "0.0.4"
19
19
  },
20
20
  "main": "./dist/cjs/index.js",
21
21
  "module": "./dist/esm/index.js",
@@ -56,6 +56,12 @@ export class GroupNotFound extends Schema.TaggedError<GroupNotFound>()(
56
56
  HttpApiSchema.annotations({ status: 404 }),
57
57
  ) {}
58
58
 
59
+ export class AgeThresholdAlreadyExists extends Schema.TaggedError<AgeThresholdAlreadyExists>()(
60
+ 'AgeThresholdAlreadyExists',
61
+ {},
62
+ HttpApiSchema.annotations({ status: 409 }),
63
+ ) {}
64
+
59
65
  export class AgeThresholdApiGroup extends HttpApiGroup.make('ageThreshold')
60
66
  .add(
61
67
  HttpApiEndpoint.get('listAgeThresholds', '/teams/:teamId/age-thresholds')
@@ -69,6 +75,7 @@ export class AgeThresholdApiGroup extends HttpApiGroup.make('ageThreshold')
69
75
  .addSuccess(AgeThresholdInfo, { status: 201 })
70
76
  .addError(Forbidden, { status: 403 })
71
77
  .addError(GroupNotFound, { status: 404 })
78
+ .addError(AgeThresholdAlreadyExists, { status: 409 })
72
79
  .setPath(Schema.Struct({ teamId: TeamId }))
73
80
  .setPayload(CreateAgeThresholdRequest)
74
81
  .middleware(AuthMiddleware),
package/src/api/Auth.ts CHANGED
@@ -14,6 +14,7 @@ import { Gender, Locale, UserId } from '~/models/User.js';
14
14
  export { UserId } from '~/models/User.js';
15
15
 
16
16
  export const MIN_AGE = 6;
17
+ export const DEFAULT_BIRTH_YEAR_OFFSET = 18;
17
18
 
18
19
  export class UserTeam extends Schema.Class<UserTeam>('UserTeam')({
19
20
  teamId: TeamId,
@@ -26,11 +27,11 @@ export class CurrentUser extends Schema.Class<CurrentUser>('CurrentUser')({
26
27
  id: UserId,
27
28
  discordId: Schema.String,
28
29
  username: Schema.String,
29
- avatar: Schema.NullOr(Schema.String),
30
+ avatar: Schema.OptionFromNullOr(Schema.String),
30
31
  isProfileComplete: Schema.Boolean,
31
- name: Schema.NullOr(Schema.String),
32
- birthDate: Schema.NullOr(Schema.String),
33
- gender: Schema.NullOr(Gender),
32
+ name: Schema.OptionFromNullOr(Schema.String),
33
+ birthDate: Schema.OptionFromNullOr(Schema.String),
34
+ gender: Schema.OptionFromNullOr(Gender),
34
35
  locale: Locale,
35
36
  }) {}
36
37
 
@@ -46,7 +47,7 @@ export class CreateTeamRequest extends Schema.Class<CreateTeamRequest>('CreateTe
46
47
  export class DiscordGuild extends Schema.Class<DiscordGuild>('DiscordGuild')({
47
48
  id: Snowflake,
48
49
  name: Schema.String,
49
- icon: Schema.NullOr(Schema.String),
50
+ icon: Schema.OptionFromNullOr(Schema.String),
50
51
  owner: Schema.Boolean,
51
52
  botPresent: Schema.Boolean,
52
53
  }) {}
@@ -72,7 +73,7 @@ export class CompleteProfileRequest extends Schema.Class<CompleteProfileRequest>
72
73
  export class UpdateProfileRequest extends Schema.Class<UpdateProfileRequest>(
73
74
  'UpdateProfileRequest',
74
75
  )({
75
- name: Schema.NullOr(Schema.String),
76
+ name: Schema.OptionFromNullOr(Schema.String),
76
77
  birthDate: Schema.OptionFromNullOr(
77
78
  Schema.String.pipe(
78
79
  Schema.filter((s) => {
@@ -86,7 +87,7 @@ export class UpdateProfileRequest extends Schema.Class<UpdateProfileRequest>(
86
87
  }),
87
88
  ),
88
89
  ),
89
- gender: Schema.NullOr(Gender),
90
+ gender: Schema.OptionFromNullOr(Gender),
90
91
  }) {}
91
92
 
92
93
  export class Unauthorized extends Schema.TaggedError<Unauthorized>()(
@@ -1,6 +1,8 @@
1
1
  import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from '@effect/platform';
2
+ import * as Schemas from '@sideline/effect-lib/Schemas';
2
3
  import { Schema } from 'effect';
3
4
  import { AuthMiddleware } from '~/api/Auth.js';
5
+ import { Snowflake } from '~/models/Discord.js';
4
6
  import { EventId, EventStatus, EventType } from '~/models/Event.js';
5
7
  import { EventSeriesId } from '~/models/EventSeries.js';
6
8
  import { TeamId } from '~/models/Team.js';
@@ -11,12 +13,12 @@ export class EventInfo extends Schema.Class<EventInfo>('EventInfo')({
11
13
  teamId: TeamId,
12
14
  title: Schema.String,
13
15
  eventType: EventType,
14
- trainingTypeName: Schema.NullOr(Schema.String),
15
- startAt: Schema.String,
16
- endAt: Schema.NullOr(Schema.String),
17
- location: Schema.NullOr(Schema.String),
16
+ trainingTypeName: Schema.OptionFromNullOr(Schema.String),
17
+ startAt: Schemas.DateTimeFromIsoString,
18
+ endAt: Schema.OptionFromNullOr(Schemas.DateTimeFromIsoString),
19
+ location: Schema.OptionFromNullOr(Schema.String),
18
20
  status: EventStatus,
19
- seriesId: Schema.NullOr(EventSeriesId),
21
+ seriesId: Schema.OptionFromNullOr(EventSeriesId),
20
22
  }) {}
21
23
 
22
24
  export class EventDetail extends Schema.Class<EventDetail>('EventDetail')({
@@ -24,19 +26,19 @@ export class EventDetail extends Schema.Class<EventDetail>('EventDetail')({
24
26
  teamId: TeamId,
25
27
  title: Schema.String,
26
28
  eventType: EventType,
27
- trainingTypeId: Schema.NullOr(TrainingTypeId),
28
- trainingTypeName: Schema.NullOr(Schema.String),
29
- description: Schema.NullOr(Schema.String),
30
- startAt: Schema.String,
31
- endAt: Schema.NullOr(Schema.String),
32
- location: Schema.NullOr(Schema.String),
29
+ trainingTypeId: Schema.OptionFromNullOr(TrainingTypeId),
30
+ trainingTypeName: Schema.OptionFromNullOr(Schema.String),
31
+ description: Schema.OptionFromNullOr(Schema.String),
32
+ startAt: Schemas.DateTimeFromIsoString,
33
+ endAt: Schema.OptionFromNullOr(Schemas.DateTimeFromIsoString),
34
+ location: Schema.OptionFromNullOr(Schema.String),
33
35
  status: EventStatus,
34
- createdByName: Schema.NullOr(Schema.String),
36
+ createdByName: Schema.OptionFromNullOr(Schema.String),
35
37
  canEdit: Schema.Boolean,
36
38
  canCancel: Schema.Boolean,
37
- seriesId: Schema.NullOr(EventSeriesId),
39
+ seriesId: Schema.OptionFromNullOr(EventSeriesId),
38
40
  seriesModified: Schema.Boolean,
39
- discordChannelId: Schema.NullOr(Schema.String),
41
+ discordChannelId: Schema.OptionFromNullOr(Snowflake),
40
42
  }) {}
41
43
 
42
44
  export class EventListResponse extends Schema.Class<EventListResponse>('EventListResponse')({
@@ -47,12 +49,12 @@ export class EventListResponse extends Schema.Class<EventListResponse>('EventLis
47
49
  export class CreateEventRequest extends Schema.Class<CreateEventRequest>('CreateEventRequest')({
48
50
  title: Schema.NonEmptyString,
49
51
  eventType: EventType,
50
- trainingTypeId: Schema.NullOr(TrainingTypeId),
51
- description: Schema.NullOr(Schema.String),
52
- startAt: Schema.String,
53
- endAt: Schema.NullOr(Schema.String),
54
- location: Schema.NullOr(Schema.String),
55
- discordChannelId: Schema.NullOr(Schema.String),
52
+ trainingTypeId: Schema.OptionFromNullOr(TrainingTypeId),
53
+ description: Schema.OptionFromNullOr(Schema.String),
54
+ startAt: Schemas.DateTimeFromIsoString,
55
+ endAt: Schema.OptionFromNullOr(Schemas.DateTimeFromIsoString),
56
+ location: Schema.OptionFromNullOr(Schema.String),
57
+ discordChannelId: Schema.OptionFromNullOr(Snowflake),
56
58
  }) {}
57
59
 
58
60
  export class UpdateEventRequest extends Schema.Class<UpdateEventRequest>('UpdateEventRequest')({
@@ -60,10 +62,12 @@ export class UpdateEventRequest extends Schema.Class<UpdateEventRequest>('Update
60
62
  eventType: Schema.optionalWith(EventType, { as: 'Option' }),
61
63
  trainingTypeId: Schema.optionalWith(Schema.OptionFromNullOr(TrainingTypeId), { as: 'Option' }),
62
64
  description: Schema.optionalWith(Schema.OptionFromNullOr(Schema.String), { as: 'Option' }),
63
- startAt: Schema.optionalWith(Schema.String, { as: 'Option' }),
64
- endAt: Schema.optionalWith(Schema.OptionFromNullOr(Schema.String), { as: 'Option' }),
65
+ startAt: Schema.optionalWith(Schemas.DateTimeFromIsoString, { as: 'Option' }),
66
+ endAt: Schema.optionalWith(Schema.OptionFromNullOr(Schemas.DateTimeFromIsoString), {
67
+ as: 'Option',
68
+ }),
65
69
  location: Schema.optionalWith(Schema.OptionFromNullOr(Schema.String), { as: 'Option' }),
66
- discordChannelId: Schema.optionalWith(Schema.OptionFromNullOr(Schema.String), { as: 'Option' }),
70
+ discordChannelId: Schema.optionalWith(Schema.OptionFromNullOr(Snowflake), { as: 'Option' }),
67
71
  }) {}
68
72
 
69
73
  export class EventNotFound extends Schema.TaggedError<EventNotFound>()(
@@ -8,15 +8,15 @@ import { TeamMemberId } from '~/models/TeamMember.js';
8
8
 
9
9
  export class RsvpEntry extends Schema.Class<RsvpEntry>('RsvpEntry')({
10
10
  teamMemberId: TeamMemberId,
11
- memberName: Schema.NullOr(Schema.String),
12
- username: Schema.NullOr(Schema.String),
11
+ memberName: Schema.OptionFromNullOr(Schema.String),
12
+ username: Schema.OptionFromNullOr(Schema.String),
13
13
  response: RsvpResponse,
14
- message: Schema.NullOr(Schema.String),
14
+ message: Schema.OptionFromNullOr(Schema.String),
15
15
  }) {}
16
16
 
17
17
  export class EventRsvpDetail extends Schema.Class<EventRsvpDetail>('EventRsvpDetail')({
18
- myResponse: Schema.NullOr(RsvpResponse),
19
- myMessage: Schema.NullOr(Schema.String),
18
+ myResponse: Schema.OptionFromNullOr(RsvpResponse),
19
+ myMessage: Schema.OptionFromNullOr(Schema.String),
20
20
  rsvps: Schema.Array(RsvpEntry),
21
21
  yesCount: Schema.Number,
22
22
  noCount: Schema.Number,
@@ -27,7 +27,7 @@ export class EventRsvpDetail extends Schema.Class<EventRsvpDetail>('EventRsvpDet
27
27
 
28
28
  export class SubmitRsvpRequest extends Schema.Class<SubmitRsvpRequest>('SubmitRsvpRequest')({
29
29
  response: RsvpResponse,
30
- message: Schema.NullOr(Schema.String),
30
+ message: Schema.OptionFromNullOr(Schema.String),
31
31
  }) {}
32
32
 
33
33
  export class EventNotFound extends Schema.TaggedError<EventNotFound>()(
@@ -50,8 +50,8 @@ export class RsvpDeadlinePassed extends Schema.TaggedError<RsvpDeadlinePassed>()
50
50
 
51
51
  export class NonResponderEntry extends Schema.Class<NonResponderEntry>('NonResponderEntry')({
52
52
  teamMemberId: TeamMemberId,
53
- memberName: Schema.NullOr(Schema.String),
54
- username: Schema.NullOr(Schema.String),
53
+ memberName: Schema.OptionFromNullOr(Schema.String),
54
+ username: Schema.OptionFromNullOr(Schema.String),
55
55
  }) {}
56
56
 
57
57
  export class NonRespondersResponse extends Schema.Class<NonRespondersResponse>(
@@ -1,7 +1,9 @@
1
1
  import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from '@effect/platform';
2
+ import * as Schemas from '@sideline/effect-lib/Schemas';
2
3
  import { Schema } from 'effect';
3
4
  import { AuthMiddleware } from '~/api/Auth.js';
4
5
  import { Forbidden } from '~/api/EventApi.js';
6
+ import { Snowflake } from '~/models/Discord.js';
5
7
  import {
6
8
  DaysOfWeek,
7
9
  EventSeriesId,
@@ -17,33 +19,33 @@ export class EventSeriesInfo extends Schema.Class<EventSeriesInfo>('EventSeriesI
17
19
  title: Schema.String,
18
20
  frequency: RecurrenceFrequency,
19
21
  daysOfWeek: DaysOfWeek,
20
- startDate: Schema.String,
21
- endDate: Schema.NullOr(Schema.String),
22
+ startDate: Schemas.DateTimeFromIsoString,
23
+ endDate: Schema.OptionFromNullOr(Schemas.DateTimeFromIsoString),
22
24
  status: EventSeriesStatus,
23
- trainingTypeId: Schema.NullOr(TrainingTypeId),
24
- trainingTypeName: Schema.NullOr(Schema.String),
25
+ trainingTypeId: Schema.OptionFromNullOr(TrainingTypeId),
26
+ trainingTypeName: Schema.OptionFromNullOr(Schema.String),
25
27
  startTime: Schema.String,
26
- endTime: Schema.NullOr(Schema.String),
27
- location: Schema.NullOr(Schema.String),
28
- discordChannelId: Schema.NullOr(Schema.String),
28
+ endTime: Schema.OptionFromNullOr(Schema.String),
29
+ location: Schema.OptionFromNullOr(Schema.String),
30
+ discordChannelId: Schema.OptionFromNullOr(Snowflake),
29
31
  }) {}
30
32
 
31
33
  export class EventSeriesDetail extends Schema.Class<EventSeriesDetail>('EventSeriesDetail')({
32
34
  seriesId: EventSeriesId,
33
35
  teamId: TeamId,
34
36
  title: Schema.String,
35
- description: Schema.NullOr(Schema.String),
37
+ description: Schema.OptionFromNullOr(Schema.String),
36
38
  frequency: RecurrenceFrequency,
37
39
  daysOfWeek: DaysOfWeek,
38
- startDate: Schema.String,
39
- endDate: Schema.NullOr(Schema.String),
40
+ startDate: Schemas.DateTimeFromIsoString,
41
+ endDate: Schema.OptionFromNullOr(Schemas.DateTimeFromIsoString),
40
42
  status: EventSeriesStatus,
41
- trainingTypeId: Schema.NullOr(TrainingTypeId),
42
- trainingTypeName: Schema.NullOr(Schema.String),
43
+ trainingTypeId: Schema.OptionFromNullOr(TrainingTypeId),
44
+ trainingTypeName: Schema.OptionFromNullOr(Schema.String),
43
45
  startTime: Schema.String,
44
- endTime: Schema.NullOr(Schema.String),
45
- location: Schema.NullOr(Schema.String),
46
- discordChannelId: Schema.NullOr(Schema.String),
46
+ endTime: Schema.OptionFromNullOr(Schema.String),
47
+ location: Schema.OptionFromNullOr(Schema.String),
48
+ discordChannelId: Schema.OptionFromNullOr(Snowflake),
47
49
  canEdit: Schema.Boolean,
48
50
  canCancel: Schema.Boolean,
49
51
  }) {}
@@ -52,16 +54,16 @@ export class CreateEventSeriesRequest extends Schema.Class<CreateEventSeriesRequ
52
54
  'CreateEventSeriesRequest',
53
55
  )({
54
56
  title: Schema.NonEmptyString,
55
- trainingTypeId: Schema.NullOr(TrainingTypeId),
56
- description: Schema.NullOr(Schema.String),
57
+ trainingTypeId: Schema.OptionFromNullOr(TrainingTypeId),
58
+ description: Schema.OptionFromNullOr(Schema.String),
57
59
  frequency: RecurrenceFrequency,
58
60
  daysOfWeek: DaysOfWeek,
59
- startDate: Schema.String,
60
- endDate: Schema.NullOr(Schema.String),
61
+ startDate: Schemas.DateTimeFromIsoString,
62
+ endDate: Schema.OptionFromNullOr(Schemas.DateTimeFromIsoString),
61
63
  startTime: Schema.String,
62
- endTime: Schema.NullOr(Schema.String),
63
- location: Schema.NullOr(Schema.String),
64
- discordChannelId: Schema.NullOr(Schema.String),
64
+ endTime: Schema.OptionFromNullOr(Schema.String),
65
+ location: Schema.OptionFromNullOr(Schema.String),
66
+ discordChannelId: Schema.OptionFromNullOr(Snowflake),
65
67
  }) {}
66
68
 
67
69
  export class UpdateEventSeriesRequest extends Schema.Class<UpdateEventSeriesRequest>(
@@ -74,8 +76,10 @@ export class UpdateEventSeriesRequest extends Schema.Class<UpdateEventSeriesRequ
74
76
  startTime: Schema.optionalWith(Schema.String, { as: 'Option' }),
75
77
  endTime: Schema.optionalWith(Schema.OptionFromNullOr(Schema.String), { as: 'Option' }),
76
78
  location: Schema.optionalWith(Schema.OptionFromNullOr(Schema.String), { as: 'Option' }),
77
- endDate: Schema.optionalWith(Schema.OptionFromNullOr(Schema.String), { as: 'Option' }),
78
- discordChannelId: Schema.optionalWith(Schema.OptionFromNullOr(Schema.String), { as: 'Option' }),
79
+ endDate: Schema.optionalWith(Schema.OptionFromNullOr(Schemas.DateTimeFromIsoString), {
80
+ as: 'Option',
81
+ }),
82
+ discordChannelId: Schema.optionalWith(Schema.OptionFromNullOr(Snowflake), { as: 'Option' }),
79
83
  }) {}
80
84
 
81
85
  export class EventSeriesNotFound extends Schema.TaggedError<EventSeriesNotFound>()(