@sideline/domain 0.8.0 → 0.9.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 (61) hide show
  1. package/dist/cjs/api/EventRsvpApi.js +22 -4
  2. package/dist/cjs/api/EventRsvpApi.js.map +1 -1
  3. package/dist/cjs/api/EventSeriesApi.js +6 -3
  4. package/dist/cjs/api/EventSeriesApi.js.map +1 -1
  5. package/dist/cjs/api/TeamSettingsApi.js +8 -0
  6. package/dist/cjs/api/TeamSettingsApi.js.map +1 -1
  7. package/dist/cjs/models/EventSeries.js +3 -2
  8. package/dist/cjs/models/EventSeries.js.map +1 -1
  9. package/dist/cjs/models/TeamSettings.js +2 -0
  10. package/dist/cjs/models/TeamSettings.js.map +1 -1
  11. package/dist/cjs/rpc/event/EventRpcEvents.js +12 -2
  12. package/dist/cjs/rpc/event/EventRpcEvents.js.map +1 -1
  13. package/dist/cjs/rpc/event/EventRpcGroup.js +18 -0
  14. package/dist/cjs/rpc/event/EventRpcGroup.js.map +1 -1
  15. package/dist/cjs/rpc/event/EventRpcModels.js +25 -1
  16. package/dist/cjs/rpc/event/EventRpcModels.js.map +1 -1
  17. package/dist/dts/api/EventApi.d.ts +4 -4
  18. package/dist/dts/api/EventRsvpApi.d.ts +34 -1
  19. package/dist/dts/api/EventRsvpApi.d.ts.map +1 -1
  20. package/dist/dts/api/EventSeriesApi.d.ts +17 -9
  21. package/dist/dts/api/EventSeriesApi.d.ts.map +1 -1
  22. package/dist/dts/api/TeamSettingsApi.d.ts +24 -0
  23. package/dist/dts/api/TeamSettingsApi.d.ts.map +1 -1
  24. package/dist/dts/models/Event.d.ts +6 -6
  25. package/dist/dts/models/EventSeries.d.ts +17 -15
  26. package/dist/dts/models/EventSeries.d.ts.map +1 -1
  27. package/dist/dts/models/TeamSettings.d.ts +26 -0
  28. package/dist/dts/models/TeamSettings.d.ts.map +1 -1
  29. package/dist/dts/rpc/SyncRpcs.d.ts +13 -2
  30. package/dist/dts/rpc/SyncRpcs.d.ts.map +1 -1
  31. package/dist/dts/rpc/event/EventRpcEvents.d.ts +14 -1
  32. package/dist/dts/rpc/event/EventRpcEvents.d.ts.map +1 -1
  33. package/dist/dts/rpc/event/EventRpcGroup.d.ts +14 -3
  34. package/dist/dts/rpc/event/EventRpcGroup.d.ts.map +1 -1
  35. package/dist/dts/rpc/event/EventRpcModels.d.ts +66 -0
  36. package/dist/dts/rpc/event/EventRpcModels.d.ts.map +1 -1
  37. package/dist/esm/api/EventRsvpApi.js +19 -3
  38. package/dist/esm/api/EventRsvpApi.js.map +1 -1
  39. package/dist/esm/api/EventSeriesApi.js +7 -4
  40. package/dist/esm/api/EventSeriesApi.js.map +1 -1
  41. package/dist/esm/api/TeamSettingsApi.js +8 -0
  42. package/dist/esm/api/TeamSettingsApi.js.map +1 -1
  43. package/dist/esm/models/EventSeries.js +2 -1
  44. package/dist/esm/models/EventSeries.js.map +1 -1
  45. package/dist/esm/models/TeamSettings.js +2 -0
  46. package/dist/esm/models/TeamSettings.js.map +1 -1
  47. package/dist/esm/rpc/event/EventRpcEvents.js +10 -1
  48. package/dist/esm/rpc/event/EventRpcEvents.js.map +1 -1
  49. package/dist/esm/rpc/event/EventRpcGroup.js +19 -1
  50. package/dist/esm/rpc/event/EventRpcGroup.js.map +1 -1
  51. package/dist/esm/rpc/event/EventRpcModels.js +18 -0
  52. package/dist/esm/rpc/event/EventRpcModels.js.map +1 -1
  53. package/package.json +1 -1
  54. package/src/api/EventRsvpApi.ts +21 -0
  55. package/src/api/EventSeriesApi.ts +5 -4
  56. package/src/api/TeamSettingsApi.ts +8 -0
  57. package/src/models/EventSeries.ts +4 -1
  58. package/src/models/TeamSettings.ts +2 -0
  59. package/src/rpc/event/EventRpcEvents.ts +11 -0
  60. package/src/rpc/event/EventRpcGroup.ts +23 -0
  61. package/src/rpc/event/EventRpcModels.ts +35 -0
@@ -5,6 +5,8 @@ import { TeamId } from '~/models/Team.js';
5
5
  export class TeamSettings extends Model.Class<TeamSettings>('TeamSettings')({
6
6
  team_id: TeamId,
7
7
  event_horizon_days: Schema.Int,
8
+ min_players_threshold: Schema.Int,
9
+ rsvp_reminder_hours: Schema.Int,
8
10
  created_at: Model.DateTimeInsertFromDate,
9
11
  updated_at: Model.DateTimeUpdateFromDate,
10
12
  }) {}
@@ -39,10 +39,21 @@ export class EventCancelledEvent extends Schema.TaggedClass<EventCancelledEvent>
39
39
  },
40
40
  ) {}
41
41
 
42
+ export class RsvpReminderEvent extends Schema.TaggedClass<RsvpReminderEvent>()('rsvp_reminder', {
43
+ id: Schema.String,
44
+ team_id: Team.TeamId,
45
+ guild_id: Discord.Snowflake,
46
+ event_id: Event.EventId,
47
+ title: Schema.String,
48
+ start_at: Schema.String,
49
+ discord_channel_id: Schema.NullOr(Schema.String),
50
+ }) {}
51
+
42
52
  export const UnprocessedEventSyncEvent = Schema.Union(
43
53
  EventCreatedEvent,
44
54
  EventUpdatedEvent,
45
55
  EventCancelledEvent,
56
+ RsvpReminderEvent,
46
57
  );
47
58
 
48
59
  export type UnprocessedEventSyncEvent = Schema.Schema.Type<typeof UnprocessedEventSyncEvent>;
@@ -4,6 +4,10 @@ import { Discord, Event, EventRsvp, Team } from '~/index.js';
4
4
  import { UnprocessedEventSyncEvent } from './EventRpcEvents.js';
5
5
  import {
6
6
  ChannelEventEntry,
7
+ CreateEventForbidden,
8
+ CreateEventInvalidDate,
9
+ CreateEventNotMember,
10
+ CreateEventResult,
7
11
  EventDiscordMessage,
8
12
  EventEmbedInfo,
9
13
  RsvpAttendeesResult,
@@ -11,6 +15,7 @@ import {
11
15
  RsvpDeadlinePassed,
12
16
  RsvpEventNotFound,
13
17
  RsvpMemberNotFound,
18
+ RsvpReminderSummary,
14
19
  } from './EventRpcModels.js';
15
20
 
16
21
  export const EventRpcGroup = RpcGroup.make(
@@ -62,4 +67,22 @@ export const EventRpcGroup = RpcGroup.make(
62
67
  payload: { event_id: Event.EventId, offset: Schema.Number, limit: Schema.Number },
63
68
  success: RsvpAttendeesResult,
64
69
  }),
70
+ Rpc.make('GetRsvpReminderSummary', {
71
+ payload: { event_id: Event.EventId },
72
+ success: RsvpReminderSummary,
73
+ }),
74
+ Rpc.make('CreateEvent', {
75
+ payload: {
76
+ guild_id: Discord.Snowflake,
77
+ discord_user_id: Discord.Snowflake,
78
+ event_type: Event.EventType,
79
+ title: Schema.String,
80
+ start_at: Schema.String,
81
+ end_at: Schema.NullOr(Schema.String),
82
+ location: Schema.NullOr(Schema.String),
83
+ description: Schema.NullOr(Schema.String),
84
+ },
85
+ success: CreateEventResult,
86
+ error: Schema.Union(CreateEventNotMember, CreateEventForbidden, CreateEventInvalidDate),
87
+ }),
65
88
  ).prefix('Event/');
@@ -49,6 +49,26 @@ export class RsvpEventNotFound extends Schema.TaggedError<RsvpEventNotFound>()(
49
49
  {},
50
50
  ) {}
51
51
 
52
+ export class CreateEventNotMember extends Schema.TaggedError<CreateEventNotMember>()(
53
+ 'CreateEventNotMember',
54
+ {},
55
+ ) {}
56
+
57
+ export class CreateEventForbidden extends Schema.TaggedError<CreateEventForbidden>()(
58
+ 'CreateEventForbidden',
59
+ {},
60
+ ) {}
61
+
62
+ export class CreateEventInvalidDate extends Schema.TaggedError<CreateEventInvalidDate>()(
63
+ 'CreateEventInvalidDate',
64
+ {},
65
+ ) {}
66
+
67
+ export class CreateEventResult extends Schema.Class<CreateEventResult>('CreateEventResult')({
68
+ event_id: Schema.String,
69
+ title: Schema.String,
70
+ }) {}
71
+
52
72
  export class RsvpAttendeeEntry extends Schema.Class<RsvpAttendeeEntry>('RsvpAttendeeEntry')({
53
73
  discord_id: Schema.NullOr(Schema.String),
54
74
  name: Schema.NullOr(Schema.String),
@@ -60,3 +80,18 @@ export class RsvpAttendeesResult extends Schema.Class<RsvpAttendeesResult>('Rsvp
60
80
  attendees: Schema.Array(RsvpAttendeeEntry),
61
81
  total: Schema.Number,
62
82
  }) {}
83
+
84
+ export class NonResponderRpcEntry extends Schema.Class<NonResponderRpcEntry>(
85
+ 'NonResponderRpcEntry',
86
+ )({
87
+ discord_id: Schema.NullOr(Schema.String),
88
+ name: Schema.NullOr(Schema.String),
89
+ username: Schema.NullOr(Schema.String),
90
+ }) {}
91
+
92
+ export class RsvpReminderSummary extends Schema.Class<RsvpReminderSummary>('RsvpReminderSummary')({
93
+ yesCount: Schema.Number,
94
+ noCount: Schema.Number,
95
+ maybeCount: Schema.Number,
96
+ nonResponders: Schema.Array(NonResponderRpcEntry),
97
+ }) {}