@sideline/domain 0.3.0 → 0.5.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 (210) hide show
  1. package/dist/cjs/api/AgeThresholdApi.js +20 -20
  2. package/dist/cjs/api/AgeThresholdApi.js.map +1 -1
  3. package/dist/cjs/api/Auth.js +16 -15
  4. package/dist/cjs/api/Auth.js.map +1 -1
  5. package/dist/cjs/api/GroupApi.js +205 -0
  6. package/dist/cjs/api/GroupApi.js.map +1 -0
  7. package/dist/cjs/api/NotificationApi.js +6 -2
  8. package/dist/cjs/api/NotificationApi.js.map +1 -1
  9. package/dist/cjs/api/Roster.js +1 -5
  10. package/dist/cjs/api/Roster.js.map +1 -1
  11. package/dist/cjs/api/TrainingTypeApi.js +84 -0
  12. package/dist/cjs/api/TrainingTypeApi.js.map +1 -0
  13. package/dist/cjs/index.js +33 -7
  14. package/dist/cjs/models/AgeThresholdRule.js +2 -2
  15. package/dist/cjs/models/AgeThresholdRule.js.map +1 -1
  16. package/dist/cjs/models/ChannelSyncEvent.js +28 -0
  17. package/dist/cjs/models/ChannelSyncEvent.js.map +1 -0
  18. package/dist/cjs/models/Discord.js +9 -0
  19. package/dist/cjs/models/Discord.js.map +1 -0
  20. package/dist/cjs/models/DiscordChannelMapping.js +21 -0
  21. package/dist/cjs/models/DiscordChannelMapping.js.map +1 -0
  22. package/dist/cjs/models/GroupModel.js +20 -0
  23. package/dist/cjs/models/GroupModel.js.map +1 -0
  24. package/dist/cjs/models/Notification.js +1 -1
  25. package/dist/cjs/models/Notification.js.map +1 -1
  26. package/dist/cjs/models/Role.js +2 -2
  27. package/dist/cjs/models/Role.js.map +1 -1
  28. package/dist/cjs/models/RoleGroup.js +15 -0
  29. package/dist/cjs/models/RoleGroup.js.map +1 -0
  30. package/dist/cjs/models/Team.js +2 -0
  31. package/dist/cjs/models/Team.js.map +1 -1
  32. package/dist/cjs/models/TeamMember.js +1 -0
  33. package/dist/cjs/models/TeamMember.js.map +1 -1
  34. package/dist/cjs/models/TrainingType.js +20 -0
  35. package/dist/cjs/models/TrainingType.js.map +1 -0
  36. package/dist/cjs/models/User.js +1 -6
  37. package/dist/cjs/models/User.js.map +1 -1
  38. package/dist/cjs/rpc/SyncRpcs.js +13 -0
  39. package/dist/cjs/rpc/SyncRpcs.js.map +1 -0
  40. package/dist/cjs/rpc/channel/ChannelRpcEvents.js +44 -0
  41. package/dist/cjs/rpc/channel/ChannelRpcEvents.js.map +1 -0
  42. package/dist/cjs/rpc/channel/ChannelRpcGroup.js +45 -0
  43. package/dist/cjs/rpc/channel/ChannelRpcGroup.js.map +1 -0
  44. package/dist/cjs/rpc/channel/ChannelRpcModels.js +17 -0
  45. package/dist/cjs/rpc/channel/ChannelRpcModels.js.map +1 -0
  46. package/dist/cjs/rpc/guild/GuildRpcGroup.js +35 -0
  47. package/dist/cjs/rpc/guild/GuildRpcGroup.js.map +1 -0
  48. package/dist/cjs/rpc/role/RoleRpcEvents.js +44 -0
  49. package/dist/cjs/rpc/role/RoleRpcEvents.js.map +1 -0
  50. package/dist/cjs/rpc/role/RoleRpcGroup.js +44 -0
  51. package/dist/cjs/rpc/role/RoleRpcGroup.js.map +1 -0
  52. package/dist/cjs/rpc/role/RoleRpcModels.js +16 -0
  53. package/dist/cjs/rpc/role/RoleRpcModels.js.map +1 -0
  54. package/dist/dts/api/AgeThresholdApi.d.ts +43 -43
  55. package/dist/dts/api/AgeThresholdApi.d.ts.map +1 -1
  56. package/dist/dts/api/Auth.d.ts +33 -44
  57. package/dist/dts/api/Auth.d.ts.map +1 -1
  58. package/dist/dts/api/GroupApi.d.ts +254 -0
  59. package/dist/dts/api/GroupApi.d.ts.map +1 -0
  60. package/dist/dts/api/NotificationApi.d.ts +9 -5
  61. package/dist/dts/api/NotificationApi.d.ts.map +1 -1
  62. package/dist/dts/api/RoleApi.d.ts +10 -10
  63. package/dist/dts/api/Roster.d.ts +7 -23
  64. package/dist/dts/api/Roster.d.ts.map +1 -1
  65. package/dist/dts/api/TrainingTypeApi.d.ts +116 -0
  66. package/dist/dts/api/TrainingTypeApi.d.ts.map +1 -0
  67. package/dist/dts/index.d.ts +16 -3
  68. package/dist/dts/index.d.ts.map +1 -1
  69. package/dist/dts/models/AgeThresholdRule.d.ts +13 -13
  70. package/dist/dts/models/ChannelSyncEvent.d.ts +164 -0
  71. package/dist/dts/models/ChannelSyncEvent.d.ts.map +1 -0
  72. package/dist/dts/models/Discord.d.ts +4 -0
  73. package/dist/dts/models/Discord.d.ts.map +1 -0
  74. package/dist/dts/models/DiscordChannelMapping.d.ts +97 -0
  75. package/dist/dts/models/DiscordChannelMapping.d.ts.map +1 -0
  76. package/dist/dts/models/GroupModel.d.ts +97 -0
  77. package/dist/dts/models/GroupModel.d.ts.map +1 -0
  78. package/dist/dts/models/Notification.d.ts +12 -12
  79. package/dist/dts/models/Notification.d.ts.map +1 -1
  80. package/dist/dts/models/Role.d.ts +4 -4
  81. package/dist/dts/models/Role.d.ts.map +1 -1
  82. package/dist/dts/models/RoleGroup.d.ts +16 -0
  83. package/dist/dts/models/RoleGroup.d.ts.map +1 -0
  84. package/dist/dts/models/RoleSyncEvent.d.ts +8 -8
  85. package/dist/dts/models/Team.d.ts +13 -0
  86. package/dist/dts/models/Team.d.ts.map +1 -1
  87. package/dist/dts/models/TeamMember.d.ts +30 -0
  88. package/dist/dts/models/TeamMember.d.ts.map +1 -1
  89. package/dist/dts/models/{SubgroupModel.d.ts → TrainingType.d.ts} +26 -13
  90. package/dist/dts/models/TrainingType.d.ts.map +1 -0
  91. package/dist/dts/models/User.d.ts +0 -43
  92. package/dist/dts/models/User.d.ts.map +1 -1
  93. package/dist/dts/rpc/SyncRpcs.d.ts +56 -0
  94. package/dist/dts/rpc/SyncRpcs.d.ts.map +1 -0
  95. package/dist/dts/rpc/channel/ChannelRpcEvents.d.ts +51 -0
  96. package/dist/dts/rpc/channel/ChannelRpcEvents.d.ts.map +1 -0
  97. package/dist/dts/rpc/channel/ChannelRpcGroup.d.ts +23 -0
  98. package/dist/dts/rpc/channel/ChannelRpcGroup.d.ts.map +1 -0
  99. package/dist/dts/rpc/channel/ChannelRpcModels.d.ts +28 -0
  100. package/dist/dts/rpc/channel/ChannelRpcModels.d.ts.map +1 -0
  101. package/dist/dts/rpc/guild/GuildRpcGroup.d.ts +19 -0
  102. package/dist/dts/rpc/guild/GuildRpcGroup.d.ts.map +1 -0
  103. package/dist/dts/rpc/role/RoleRpcEvents.d.ts +51 -0
  104. package/dist/dts/rpc/role/RoleRpcEvents.d.ts.map +1 -0
  105. package/dist/dts/rpc/role/RoleRpcGroup.d.ts +22 -0
  106. package/dist/dts/rpc/role/RoleRpcGroup.d.ts.map +1 -0
  107. package/dist/dts/rpc/role/RoleRpcModels.d.ts +24 -0
  108. package/dist/dts/rpc/role/RoleRpcModels.d.ts.map +1 -0
  109. package/dist/esm/api/AgeThresholdApi.js +17 -17
  110. package/dist/esm/api/AgeThresholdApi.js.map +1 -1
  111. package/dist/esm/api/Auth.js +15 -15
  112. package/dist/esm/api/Auth.js.map +1 -1
  113. package/dist/esm/api/GroupApi.js +185 -0
  114. package/dist/esm/api/GroupApi.js.map +1 -0
  115. package/dist/esm/api/NotificationApi.js +6 -2
  116. package/dist/esm/api/NotificationApi.js.map +1 -1
  117. package/dist/esm/api/Roster.js +2 -6
  118. package/dist/esm/api/Roster.js.map +1 -1
  119. package/dist/esm/api/TrainingTypeApi.js +70 -0
  120. package/dist/esm/api/TrainingTypeApi.js.map +1 -0
  121. package/dist/esm/index.js +16 -3
  122. package/dist/esm/index.js.map +1 -1
  123. package/dist/esm/models/AgeThresholdRule.js +2 -2
  124. package/dist/esm/models/AgeThresholdRule.js.map +1 -1
  125. package/dist/esm/models/ChannelSyncEvent.js +21 -0
  126. package/dist/esm/models/ChannelSyncEvent.js.map +1 -0
  127. package/dist/esm/models/Discord.js +3 -0
  128. package/dist/esm/models/Discord.js.map +1 -0
  129. package/dist/esm/models/DiscordChannelMapping.js +14 -0
  130. package/dist/esm/models/DiscordChannelMapping.js.map +1 -0
  131. package/dist/esm/models/GroupModel.js +13 -0
  132. package/dist/esm/models/GroupModel.js.map +1 -0
  133. package/dist/esm/models/Notification.js +1 -1
  134. package/dist/esm/models/Notification.js.map +1 -1
  135. package/dist/esm/models/Role.js +2 -2
  136. package/dist/esm/models/Role.js.map +1 -1
  137. package/dist/esm/models/RoleGroup.js +8 -0
  138. package/dist/esm/models/RoleGroup.js.map +1 -0
  139. package/dist/esm/models/Team.js +2 -0
  140. package/dist/esm/models/Team.js.map +1 -1
  141. package/dist/esm/models/TeamMember.js +1 -0
  142. package/dist/esm/models/TeamMember.js.map +1 -1
  143. package/dist/esm/models/TrainingType.js +13 -0
  144. package/dist/esm/models/TrainingType.js.map +1 -0
  145. package/dist/esm/models/User.js +0 -5
  146. package/dist/esm/models/User.js.map +1 -1
  147. package/dist/esm/rpc/SyncRpcs.js +6 -0
  148. package/dist/esm/rpc/SyncRpcs.js.map +1 -0
  149. package/dist/esm/rpc/channel/ChannelRpcEvents.js +34 -0
  150. package/dist/esm/rpc/channel/ChannelRpcEvents.js.map +1 -0
  151. package/dist/esm/rpc/channel/ChannelRpcGroup.js +39 -0
  152. package/dist/esm/rpc/channel/ChannelRpcGroup.js.map +1 -0
  153. package/dist/esm/rpc/channel/ChannelRpcModels.js +10 -0
  154. package/dist/esm/rpc/channel/ChannelRpcModels.js.map +1 -0
  155. package/dist/esm/rpc/guild/GuildRpcGroup.js +29 -0
  156. package/dist/esm/rpc/guild/GuildRpcGroup.js.map +1 -0
  157. package/dist/esm/rpc/role/RoleRpcEvents.js +34 -0
  158. package/dist/esm/rpc/role/RoleRpcEvents.js.map +1 -0
  159. package/dist/esm/rpc/role/RoleRpcGroup.js +38 -0
  160. package/dist/esm/rpc/role/RoleRpcGroup.js.map +1 -0
  161. package/dist/esm/rpc/role/RoleRpcModels.js +9 -0
  162. package/dist/esm/rpc/role/RoleRpcModels.js.map +1 -0
  163. package/package.json +1 -1
  164. package/src/api/AgeThresholdApi.ts +18 -18
  165. package/src/api/Auth.ts +17 -12
  166. package/src/api/GroupApi.ts +229 -0
  167. package/src/api/NotificationApi.ts +10 -0
  168. package/src/api/Roster.ts +1 -5
  169. package/src/api/TrainingTypeApi.ts +96 -0
  170. package/src/index.ts +23 -5
  171. package/src/models/AgeThresholdRule.ts +2 -2
  172. package/src/models/ChannelSyncEvent.ts +30 -0
  173. package/src/models/Discord.ts +4 -0
  174. package/src/models/DiscordChannelMapping.ts +18 -0
  175. package/src/models/GroupModel.ts +15 -0
  176. package/src/models/Notification.ts +2 -2
  177. package/src/models/Role.ts +4 -0
  178. package/src/models/RoleGroup.ts +8 -0
  179. package/src/models/Team.ts +2 -0
  180. package/src/models/TeamMember.ts +1 -0
  181. package/src/models/TrainingType.ts +15 -0
  182. package/src/models/User.ts +0 -9
  183. package/src/rpc/SyncRpcs.ts +6 -0
  184. package/src/rpc/channel/ChannelRpcEvents.ts +57 -0
  185. package/src/rpc/channel/ChannelRpcGroup.ts +33 -0
  186. package/src/rpc/channel/ChannelRpcModels.ts +10 -0
  187. package/src/rpc/guild/GuildRpcGroup.ts +29 -0
  188. package/src/rpc/role/RoleRpcEvents.ts +48 -0
  189. package/src/rpc/role/RoleRpcGroup.ts +33 -0
  190. package/src/rpc/role/RoleRpcModels.ts +9 -0
  191. package/dist/cjs/api/SubgroupApi.js +0 -122
  192. package/dist/cjs/api/SubgroupApi.js.map +0 -1
  193. package/dist/cjs/models/SubgroupModel.js +0 -18
  194. package/dist/cjs/models/SubgroupModel.js.map +0 -1
  195. package/dist/cjs/rpc/RoleSyncRpc.js +0 -66
  196. package/dist/cjs/rpc/RoleSyncRpc.js.map +0 -1
  197. package/dist/dts/api/SubgroupApi.d.ts +0 -140
  198. package/dist/dts/api/SubgroupApi.d.ts.map +0 -1
  199. package/dist/dts/models/SubgroupModel.d.ts.map +0 -1
  200. package/dist/dts/rpc/RoleSyncRpc.d.ts +0 -82
  201. package/dist/dts/rpc/RoleSyncRpc.d.ts.map +0 -1
  202. package/dist/esm/api/SubgroupApi.js +0 -106
  203. package/dist/esm/api/SubgroupApi.js.map +0 -1
  204. package/dist/esm/models/SubgroupModel.js +0 -11
  205. package/dist/esm/models/SubgroupModel.js.map +0 -1
  206. package/dist/esm/rpc/RoleSyncRpc.js +0 -57
  207. package/dist/esm/rpc/RoleSyncRpc.js.map +0 -1
  208. package/src/api/SubgroupApi.ts +0 -146
  209. package/src/models/SubgroupModel.ts +0 -13
  210. package/src/rpc/RoleSyncRpc.ts +0 -59
@@ -0,0 +1,15 @@
1
+ import { Model } from '@effect/sql';
2
+ import { Schema } from 'effect';
3
+ import { GroupId } from '~/models/GroupModel.js';
4
+ import { TeamId } from '~/models/Team.js';
5
+
6
+ export const TrainingTypeId = Schema.String.pipe(Schema.brand('TrainingTypeId'));
7
+ export type TrainingTypeId = typeof TrainingTypeId.Type;
8
+
9
+ export class TrainingType extends Model.Class<TrainingType>('TrainingType')({
10
+ id: Model.Generated(TrainingTypeId),
11
+ team_id: TeamId,
12
+ name: Schema.String,
13
+ group_id: Schema.NullOr(GroupId),
14
+ created_at: Model.DateTimeInsertFromDate,
15
+ }) {}
@@ -7,12 +7,6 @@ export type UserId = typeof UserId.Type;
7
7
  export const Gender = Schema.Literal('male', 'female', 'other');
8
8
  export type Gender = typeof Gender.Type;
9
9
 
10
- export const Position = Schema.Literal('goalkeeper', 'defender', 'midfielder', 'forward');
11
- export type Position = typeof Position.Type;
12
-
13
- export const Proficiency = Schema.Literal('beginner', 'intermediate', 'advanced', 'pro');
14
- export type Proficiency = typeof Proficiency.Type;
15
-
16
10
  export const Locale = Schema.Literal('en', 'cs');
17
11
  export type Locale = typeof Locale.Type;
18
12
 
@@ -26,9 +20,6 @@ export class User extends Model.Class<User>('User')({
26
20
  name: Schema.NullOr(Schema.String),
27
21
  birth_year: Schema.NullOr(Schema.Number),
28
22
  gender: Schema.NullOr(Gender),
29
- jersey_number: Schema.NullOr(Schema.Number),
30
- position: Schema.NullOr(Position),
31
- proficiency: Schema.NullOr(Proficiency),
32
23
  locale: Locale,
33
24
  created_at: Model.DateTimeInsertFromDate,
34
25
  is_profile_complete: Schema.Boolean,
@@ -0,0 +1,6 @@
1
+ import { RpcGroup } from '@effect/rpc';
2
+ import { ChannelRpcGroup } from './channel/ChannelRpcGroup.js';
3
+ import { GuildRpcGroup } from './guild/GuildRpcGroup.js';
4
+ import { RoleRpcGroup } from './role/RoleRpcGroup.js';
5
+
6
+ export class SyncRpcs extends RpcGroup.make().merge(RoleRpcGroup, ChannelRpcGroup, GuildRpcGroup) {}
@@ -0,0 +1,57 @@
1
+ import { Schema } from 'effect';
2
+ import { ChannelSyncEvent, Discord, GroupModel, Team, TeamMember } from '~/index.js';
3
+
4
+ export class ChannelCreatedEvent extends Schema.TaggedClass<ChannelCreatedEvent>()(
5
+ 'channel_created',
6
+ {
7
+ id: ChannelSyncEvent.ChannelSyncEventId,
8
+ team_id: Team.TeamId,
9
+ guild_id: Discord.Snowflake,
10
+ group_id: GroupModel.GroupId,
11
+ group_name: Schema.String,
12
+ },
13
+ ) {}
14
+
15
+ export class ChannelDeletedEvent extends Schema.TaggedClass<ChannelDeletedEvent>()(
16
+ 'channel_deleted',
17
+ {
18
+ id: ChannelSyncEvent.ChannelSyncEventId,
19
+ team_id: Team.TeamId,
20
+ guild_id: Discord.Snowflake,
21
+ group_id: GroupModel.GroupId,
22
+ },
23
+ ) {}
24
+
25
+ export class ChannelMemberAddedEvent extends Schema.TaggedClass<ChannelMemberAddedEvent>()(
26
+ 'channel_member_added',
27
+ {
28
+ id: ChannelSyncEvent.ChannelSyncEventId,
29
+ team_id: Team.TeamId,
30
+ guild_id: Discord.Snowflake,
31
+ group_id: GroupModel.GroupId,
32
+ group_name: Schema.String,
33
+ team_member_id: TeamMember.TeamMemberId,
34
+ discord_user_id: Discord.Snowflake,
35
+ },
36
+ ) {}
37
+
38
+ export class ChannelMemberRemovedEvent extends Schema.TaggedClass<ChannelMemberRemovedEvent>()(
39
+ 'channel_member_removed',
40
+ {
41
+ id: ChannelSyncEvent.ChannelSyncEventId,
42
+ team_id: Team.TeamId,
43
+ guild_id: Discord.Snowflake,
44
+ group_id: GroupModel.GroupId,
45
+ team_member_id: TeamMember.TeamMemberId,
46
+ discord_user_id: Discord.Snowflake,
47
+ },
48
+ ) {}
49
+
50
+ export const UnprocessedChannelEvent = Schema.Union(
51
+ ChannelCreatedEvent,
52
+ ChannelDeletedEvent,
53
+ ChannelMemberAddedEvent,
54
+ ChannelMemberRemovedEvent,
55
+ );
56
+
57
+ export type UnprocessedChannelEvent = Schema.Schema.Type<typeof UnprocessedChannelEvent>;
@@ -0,0 +1,33 @@
1
+ import { Rpc, RpcGroup } from '@effect/rpc';
2
+ import { Schema } from 'effect';
3
+ import { ChannelSyncEvent, Discord, GroupModel, Team } from '~/index.js';
4
+ import { UnprocessedChannelEvent } from './ChannelRpcEvents.js';
5
+ import { ChannelMapping } from './ChannelRpcModels.js';
6
+
7
+ export const ChannelRpcGroup = RpcGroup.make(
8
+ Rpc.make('GetUnprocessedEvents', {
9
+ payload: { limit: Schema.Number },
10
+ success: Schema.Array(UnprocessedChannelEvent),
11
+ }),
12
+ Rpc.make('MarkEventProcessed', {
13
+ payload: { id: ChannelSyncEvent.ChannelSyncEventId },
14
+ }),
15
+ Rpc.make('MarkEventFailed', {
16
+ payload: { id: ChannelSyncEvent.ChannelSyncEventId, error: Schema.String },
17
+ }),
18
+ Rpc.make('GetMapping', {
19
+ payload: { team_id: Team.TeamId, group_id: GroupModel.GroupId },
20
+ success: Schema.OptionFromNullOr(ChannelMapping),
21
+ }),
22
+ Rpc.make('UpsertMapping', {
23
+ payload: {
24
+ team_id: Team.TeamId,
25
+ group_id: GroupModel.GroupId,
26
+ discord_channel_id: Discord.Snowflake,
27
+ discord_role_id: Discord.Snowflake,
28
+ },
29
+ }),
30
+ Rpc.make('DeleteMapping', {
31
+ payload: { team_id: Team.TeamId, group_id: GroupModel.GroupId },
32
+ }),
33
+ ).prefix('Channel/');
@@ -0,0 +1,10 @@
1
+ import { Schema } from 'effect';
2
+ import { Discord, DiscordChannelMapping, GroupModel, Team } from '~/index.js';
3
+
4
+ export class ChannelMapping extends Schema.Class<ChannelMapping>('ChannelMapping')({
5
+ id: DiscordChannelMapping.DiscordChannelMappingId,
6
+ team_id: Team.TeamId,
7
+ group_id: GroupModel.GroupId,
8
+ discord_channel_id: Discord.Snowflake,
9
+ discord_role_id: Schema.OptionFromNullOr(Discord.Snowflake),
10
+ }) {}
@@ -0,0 +1,29 @@
1
+ import { Rpc, RpcGroup } from '@effect/rpc';
2
+ import { Schema } from 'effect';
3
+ import { Discord } from '~/index.js';
4
+
5
+ export const GuildRpcGroup = RpcGroup.make(
6
+ Rpc.make('RegisterGuild', {
7
+ payload: { guild_id: Discord.Snowflake, guild_name: Schema.String },
8
+ }),
9
+ Rpc.make('UnregisterGuild', {
10
+ payload: { guild_id: Discord.Snowflake },
11
+ }),
12
+ Rpc.make('IsGuildRegistered', {
13
+ payload: { guild_id: Discord.Snowflake },
14
+ success: Schema.Boolean,
15
+ }),
16
+ Rpc.make('SyncGuildChannels', {
17
+ payload: {
18
+ guild_id: Discord.Snowflake,
19
+ channels: Schema.Array(
20
+ Schema.Struct({
21
+ channel_id: Discord.Snowflake,
22
+ name: Schema.String,
23
+ type: Schema.Number,
24
+ parent_id: Schema.NullOr(Discord.Snowflake),
25
+ }),
26
+ ),
27
+ },
28
+ }),
29
+ ).prefix('Guild/');
@@ -0,0 +1,48 @@
1
+ import { Schema } from 'effect';
2
+ import { Discord, Role, RoleSyncEvent, Team, TeamMember } from '~/index.js';
3
+
4
+ export class RoleCreatedEvent extends Schema.TaggedClass<RoleCreatedEvent>()('role_created', {
5
+ id: RoleSyncEvent.RoleSyncEventId,
6
+ team_id: Team.TeamId,
7
+ guild_id: Discord.Snowflake,
8
+ role_id: Role.RoleId,
9
+ role_name: Schema.String,
10
+ }) {}
11
+
12
+ export class RoleDeletedEvent extends Schema.TaggedClass<RoleDeletedEvent>()('role_deleted', {
13
+ id: RoleSyncEvent.RoleSyncEventId,
14
+ team_id: Team.TeamId,
15
+ guild_id: Discord.Snowflake,
16
+ role_id: Role.RoleId,
17
+ }) {}
18
+
19
+ export class RoleAssignedEvent extends Schema.TaggedClass<RoleAssignedEvent>()('role_assigned', {
20
+ id: RoleSyncEvent.RoleSyncEventId,
21
+ team_id: Team.TeamId,
22
+ guild_id: Discord.Snowflake,
23
+ role_id: Role.RoleId,
24
+ role_name: Schema.String,
25
+ team_member_id: TeamMember.TeamMemberId,
26
+ discord_user_id: Discord.Snowflake,
27
+ }) {}
28
+
29
+ export class RoleUnassignedEvent extends Schema.TaggedClass<RoleUnassignedEvent>()(
30
+ 'role_unassigned',
31
+ {
32
+ id: RoleSyncEvent.RoleSyncEventId,
33
+ team_id: Team.TeamId,
34
+ guild_id: Discord.Snowflake,
35
+ role_id: Role.RoleId,
36
+ team_member_id: TeamMember.TeamMemberId,
37
+ discord_user_id: Discord.Snowflake,
38
+ },
39
+ ) {}
40
+
41
+ export const UnprocessedRoleEvent = Schema.Union(
42
+ RoleCreatedEvent,
43
+ RoleDeletedEvent,
44
+ RoleAssignedEvent,
45
+ RoleUnassignedEvent,
46
+ );
47
+
48
+ export type UnprocessedRoleEvent = Schema.Schema.Type<typeof UnprocessedRoleEvent>;
@@ -0,0 +1,33 @@
1
+ import { Rpc, RpcGroup } from '@effect/rpc';
2
+ import { Schema } from 'effect';
3
+ import { Discord, Role, RoleSyncEvent, Team } from '~/index.js';
4
+ import { UnprocessedRoleEvent } from './RoleRpcEvents.js';
5
+ import { RoleMapping } from './RoleRpcModels.js';
6
+
7
+ export const RoleRpcGroup = RpcGroup.make(
8
+ Rpc.make('GetUnprocessedEvents', {
9
+ payload: { limit: Schema.Number },
10
+ success: Schema.Array(UnprocessedRoleEvent),
11
+ }),
12
+ Rpc.make('MarkEventProcessed', {
13
+ payload: { id: RoleSyncEvent.RoleSyncEventId },
14
+ }),
15
+ Rpc.make('MarkEventFailed', {
16
+ payload: { id: RoleSyncEvent.RoleSyncEventId, error: Schema.String },
17
+ }),
18
+ Rpc.make('GetMapping', {
19
+ payload: { team_id: Team.TeamId, role_id: Role.RoleId },
20
+ success: Schema.OptionFromNullOr(RoleMapping),
21
+ }),
22
+ Rpc.make('UpsertMapping', {
23
+ payload: {
24
+ team_id: Team.TeamId,
25
+ role_id: Role.RoleId,
26
+ discord_role_id: Discord.Snowflake,
27
+ },
28
+ }),
29
+
30
+ Rpc.make('DeleteMapping', {
31
+ payload: { team_id: Team.TeamId, role_id: Role.RoleId },
32
+ }),
33
+ ).prefix('Role/');
@@ -0,0 +1,9 @@
1
+ import { Schema } from 'effect';
2
+ import { Discord, DiscordRoleMapping, Role, Team } from '~/index.js';
3
+
4
+ export class RoleMapping extends Schema.Class<RoleMapping>('RoleMapping')({
5
+ id: DiscordRoleMapping.DiscordRoleMappingId,
6
+ team_id: Team.TeamId,
7
+ role_id: Role.RoleId,
8
+ discord_role_id: Discord.Snowflake,
9
+ }) {}
@@ -1,122 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.UpdateSubgroupRequest = exports.SubgroupNotFound = exports.SubgroupInfo = exports.SubgroupDetail = exports.SubgroupApiGroup = exports.SetSubgroupPermissionsRequest = exports.MemberNotFound = exports.Forbidden = exports.CreateSubgroupRequest = exports.AddSubgroupMemberRequest = void 0;
7
- var _platform = require("@effect/platform");
8
- var _effect = require("effect");
9
- var _Auth = require("../api/Auth.js");
10
- var _Role = require("../models/Role.js");
11
- var _SubgroupModel = require("../models/SubgroupModel.js");
12
- var _Team = require("../models/Team.js");
13
- var _TeamMember = require("../models/TeamMember.js");
14
- class SubgroupInfo extends /*#__PURE__*/_effect.Schema.Class('SubgroupInfo')({
15
- subgroupId: _SubgroupModel.SubgroupId,
16
- teamId: _Team.TeamId,
17
- name: _effect.Schema.String,
18
- memberCount: _effect.Schema.Number
19
- }) {}
20
- exports.SubgroupInfo = SubgroupInfo;
21
- class SubgroupDetail extends /*#__PURE__*/_effect.Schema.Class('SubgroupDetail')({
22
- subgroupId: _SubgroupModel.SubgroupId,
23
- teamId: _Team.TeamId,
24
- name: _effect.Schema.String,
25
- permissions: /*#__PURE__*/_effect.Schema.Array(_Role.Permission),
26
- members: /*#__PURE__*/_effect.Schema.Array(/*#__PURE__*/_effect.Schema.Struct({
27
- memberId: _TeamMember.TeamMemberId,
28
- name: /*#__PURE__*/_effect.Schema.NullOr(_effect.Schema.String),
29
- discordUsername: _effect.Schema.String
30
- }))
31
- }) {}
32
- exports.SubgroupDetail = SubgroupDetail;
33
- class CreateSubgroupRequest extends /*#__PURE__*/_effect.Schema.Class('CreateSubgroupRequest')({
34
- name: _effect.Schema.NonEmptyString
35
- }) {}
36
- exports.CreateSubgroupRequest = CreateSubgroupRequest;
37
- class UpdateSubgroupRequest extends /*#__PURE__*/_effect.Schema.Class('UpdateSubgroupRequest')({
38
- name: _effect.Schema.NonEmptyString
39
- }) {}
40
- exports.UpdateSubgroupRequest = UpdateSubgroupRequest;
41
- class AddSubgroupMemberRequest extends /*#__PURE__*/_effect.Schema.Class('AddSubgroupMemberRequest')({
42
- memberId: _TeamMember.TeamMemberId
43
- }) {}
44
- exports.AddSubgroupMemberRequest = AddSubgroupMemberRequest;
45
- class SetSubgroupPermissionsRequest extends /*#__PURE__*/_effect.Schema.Class('SetSubgroupPermissionsRequest')({
46
- permissions: /*#__PURE__*/_effect.Schema.Array(_Role.Permission)
47
- }) {}
48
- exports.SetSubgroupPermissionsRequest = SetSubgroupPermissionsRequest;
49
- class SubgroupNotFound extends /*#__PURE__*/_effect.Schema.TaggedError()('SubgroupNotFound', {}, /*#__PURE__*/_platform.HttpApiSchema.annotations({
50
- status: 404
51
- })) {}
52
- exports.SubgroupNotFound = SubgroupNotFound;
53
- class Forbidden extends /*#__PURE__*/_effect.Schema.TaggedError()('SubgroupForbidden', {}, /*#__PURE__*/_platform.HttpApiSchema.annotations({
54
- status: 403
55
- })) {}
56
- exports.Forbidden = Forbidden;
57
- class MemberNotFound extends /*#__PURE__*/_effect.Schema.TaggedError()('SubgroupMemberNotFound', {}, /*#__PURE__*/_platform.HttpApiSchema.annotations({
58
- status: 404
59
- })) {}
60
- exports.MemberNotFound = MemberNotFound;
61
- class SubgroupApiGroup extends /*#__PURE__*/_platform.HttpApiGroup.make('subgroup').add(_platform.HttpApiEndpoint.get('listSubgroups', '/teams/:teamId/subgroups').addSuccess(_effect.Schema.Array(SubgroupInfo)).addError(Forbidden, {
62
- status: 403
63
- }).setPath(_effect.Schema.Struct({
64
- teamId: _Team.TeamId
65
- })).middleware(_Auth.AuthMiddleware)).add(_platform.HttpApiEndpoint.post('createSubgroup', '/teams/:teamId/subgroups').addSuccess(SubgroupInfo, {
66
- status: 201
67
- }).addError(Forbidden, {
68
- status: 403
69
- }).setPath(_effect.Schema.Struct({
70
- teamId: _Team.TeamId
71
- })).setPayload(CreateSubgroupRequest).middleware(_Auth.AuthMiddleware)).add(_platform.HttpApiEndpoint.get('getSubgroup', '/teams/:teamId/subgroups/:subgroupId').addSuccess(SubgroupDetail).addError(Forbidden, {
72
- status: 403
73
- }).addError(SubgroupNotFound, {
74
- status: 404
75
- }).setPath(_effect.Schema.Struct({
76
- teamId: _Team.TeamId,
77
- subgroupId: _SubgroupModel.SubgroupId
78
- })).middleware(_Auth.AuthMiddleware)).add(_platform.HttpApiEndpoint.patch('updateSubgroup', '/teams/:teamId/subgroups/:subgroupId').addSuccess(SubgroupInfo).addError(Forbidden, {
79
- status: 403
80
- }).addError(SubgroupNotFound, {
81
- status: 404
82
- }).setPath(_effect.Schema.Struct({
83
- teamId: _Team.TeamId,
84
- subgroupId: _SubgroupModel.SubgroupId
85
- })).setPayload(UpdateSubgroupRequest).middleware(_Auth.AuthMiddleware)).add(_platform.HttpApiEndpoint.del('deleteSubgroup', '/teams/:teamId/subgroups/:subgroupId').addSuccess(_effect.Schema.Void).addError(Forbidden, {
86
- status: 403
87
- }).addError(SubgroupNotFound, {
88
- status: 404
89
- }).setPath(_effect.Schema.Struct({
90
- teamId: _Team.TeamId,
91
- subgroupId: _SubgroupModel.SubgroupId
92
- })).middleware(_Auth.AuthMiddleware)).add(_platform.HttpApiEndpoint.post('addSubgroupMember', '/teams/:teamId/subgroups/:subgroupId/members').addSuccess(_effect.Schema.Void, {
93
- status: 204
94
- }).addError(Forbidden, {
95
- status: 403
96
- }).addError(SubgroupNotFound, {
97
- status: 404
98
- }).addError(MemberNotFound, {
99
- status: 404
100
- }).setPath(_effect.Schema.Struct({
101
- teamId: _Team.TeamId,
102
- subgroupId: _SubgroupModel.SubgroupId
103
- })).setPayload(AddSubgroupMemberRequest).middleware(_Auth.AuthMiddleware)).add(_platform.HttpApiEndpoint.del('removeSubgroupMember', '/teams/:teamId/subgroups/:subgroupId/members/:memberId').addSuccess(_effect.Schema.Void).addError(Forbidden, {
104
- status: 403
105
- }).addError(SubgroupNotFound, {
106
- status: 404
107
- }).addError(MemberNotFound, {
108
- status: 404
109
- }).setPath(_effect.Schema.Struct({
110
- teamId: _Team.TeamId,
111
- subgroupId: _SubgroupModel.SubgroupId,
112
- memberId: _TeamMember.TeamMemberId
113
- })).middleware(_Auth.AuthMiddleware)).add(/*#__PURE__*/_platform.HttpApiEndpoint.patch('setSubgroupPermissions', '/teams/:teamId/subgroups/:subgroupId/permissions').addSuccess(SubgroupDetail).addError(Forbidden, {
114
- status: 403
115
- }).addError(SubgroupNotFound, {
116
- status: 404
117
- }).setPath(_effect.Schema.Struct({
118
- teamId: _Team.TeamId,
119
- subgroupId: _SubgroupModel.SubgroupId
120
- })).setPayload(SetSubgroupPermissionsRequest).middleware(_Auth.AuthMiddleware)) {}
121
- exports.SubgroupApiGroup = SubgroupApiGroup;
122
- //# sourceMappingURL=SubgroupApi.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SubgroupApi.js","names":["_platform","require","_effect","_Auth","_Role","_SubgroupModel","_Team","_TeamMember","SubgroupInfo","Schema","Class","subgroupId","SubgroupId","teamId","TeamId","name","String","memberCount","Number","exports","SubgroupDetail","permissions","Array","Permission","members","Struct","memberId","TeamMemberId","NullOr","discordUsername","CreateSubgroupRequest","NonEmptyString","UpdateSubgroupRequest","AddSubgroupMemberRequest","SetSubgroupPermissionsRequest","SubgroupNotFound","TaggedError","HttpApiSchema","annotations","status","Forbidden","MemberNotFound","SubgroupApiGroup","HttpApiGroup","make","add","HttpApiEndpoint","get","addSuccess","addError","setPath","middleware","AuthMiddleware","post","setPayload","patch","del","Void"],"sources":["../../../src/api/SubgroupApi.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,18 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.SubgroupId = exports.Subgroup = void 0;
7
- var _sql = require("@effect/sql");
8
- var _effect = require("effect");
9
- var _Team = require("../models/Team.js");
10
- const SubgroupId = exports.SubgroupId = /*#__PURE__*/_effect.Schema.String.pipe(/*#__PURE__*/_effect.Schema.brand('SubgroupId'));
11
- class Subgroup extends /*#__PURE__*/_sql.Model.Class('Subgroup')({
12
- id: /*#__PURE__*/_sql.Model.Generated(SubgroupId),
13
- team_id: _Team.TeamId,
14
- name: _effect.Schema.String,
15
- created_at: _sql.Model.DateTimeInsertFromDate
16
- }) {}
17
- exports.Subgroup = Subgroup;
18
- //# sourceMappingURL=SubgroupModel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SubgroupModel.js","names":["_sql","require","_effect","_Team","SubgroupId","exports","Schema","String","pipe","brand","Subgroup","Model","Class","id","Generated","team_id","TeamId","name","created_at","DateTimeInsertFromDate"],"sources":["../../../src/models/SubgroupModel.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,IAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAEO,MAAMG,UAAU,GAAAC,OAAA,CAAAD,UAAA,gBAAGE,cAAM,CAACC,MAAM,CAACC,IAAI,cAACF,cAAM,CAACG,KAAK,CAAC,YAAY,CAAC,CAAC;AAGlE,MAAOC,QAAS,sBAAQC,UAAK,CAACC,KAAK,CAAW,UAAU,CAAC,CAAC;EAC9DC,EAAE,eAAEF,UAAK,CAACG,SAAS,CAACV,UAAU,CAAC;EAC/BW,OAAO,EAAEC,YAAM;EACfC,IAAI,EAAEX,cAAM,CAACC,MAAM;EACnBW,UAAU,EAAEP,UAAK,CAACQ;CACnB,CAAC;AAAAd,OAAA,CAAAK,QAAA,GAAAA,QAAA","ignoreList":[]}
@@ -1,66 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.UnprocessedEvent = exports.RoleSyncRpcs = exports.RoleMapping = void 0;
7
- var _rpc = require("@effect/rpc");
8
- var _effect = require("effect");
9
- class UnprocessedEvent extends /*#__PURE__*/_effect.Schema.Class('UnprocessedEvent')({
10
- id: _effect.Schema.String,
11
- team_id: _effect.Schema.String,
12
- guild_id: _effect.Schema.String,
13
- event_type: /*#__PURE__*/_effect.Schema.Literal('role_assigned', 'role_unassigned', 'role_created', 'role_deleted'),
14
- role_id: _effect.Schema.String,
15
- role_name: /*#__PURE__*/_effect.Schema.NullOr(_effect.Schema.String),
16
- team_member_id: /*#__PURE__*/_effect.Schema.NullOr(_effect.Schema.String),
17
- discord_user_id: /*#__PURE__*/_effect.Schema.NullOr(_effect.Schema.String)
18
- }) {}
19
- exports.UnprocessedEvent = UnprocessedEvent;
20
- class RoleMapping extends /*#__PURE__*/_effect.Schema.Class('RoleMapping')({
21
- id: _effect.Schema.String,
22
- team_id: _effect.Schema.String,
23
- role_id: _effect.Schema.String,
24
- discord_role_id: _effect.Schema.String
25
- }) {}
26
- exports.RoleMapping = RoleMapping;
27
- const GetUnprocessedEvents = /*#__PURE__*/_rpc.Rpc.make('GetUnprocessedEvents', {
28
- payload: {
29
- limit: _effect.Schema.Number
30
- },
31
- success: /*#__PURE__*/_effect.Schema.Array(UnprocessedEvent)
32
- });
33
- const MarkEventProcessed = /*#__PURE__*/_rpc.Rpc.make('MarkEventProcessed', {
34
- payload: {
35
- id: _effect.Schema.String
36
- }
37
- });
38
- const MarkEventFailed = /*#__PURE__*/_rpc.Rpc.make('MarkEventFailed', {
39
- payload: {
40
- id: _effect.Schema.String,
41
- error: _effect.Schema.String
42
- }
43
- });
44
- const GetMappingForRole = /*#__PURE__*/_rpc.Rpc.make('GetMappingForRole', {
45
- payload: {
46
- team_id: _effect.Schema.String,
47
- role_id: _effect.Schema.String
48
- },
49
- success: /*#__PURE__*/_effect.Schema.NullOr(RoleMapping)
50
- });
51
- const UpsertMapping = /*#__PURE__*/_rpc.Rpc.make('UpsertMapping', {
52
- payload: {
53
- team_id: _effect.Schema.String,
54
- role_id: _effect.Schema.String,
55
- discord_role_id: _effect.Schema.String
56
- }
57
- });
58
- const DeleteMapping = /*#__PURE__*/_rpc.Rpc.make('DeleteMapping', {
59
- payload: {
60
- team_id: _effect.Schema.String,
61
- role_id: _effect.Schema.String
62
- }
63
- });
64
- class RoleSyncRpcs extends /*#__PURE__*/_rpc.RpcGroup.make(GetUnprocessedEvents, MarkEventProcessed, MarkEventFailed, GetMappingForRole, UpsertMapping, DeleteMapping) {}
65
- exports.RoleSyncRpcs = RoleSyncRpcs;
66
- //# sourceMappingURL=RoleSyncRpc.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RoleSyncRpc.js","names":["_rpc","require","_effect","UnprocessedEvent","Schema","Class","id","String","team_id","guild_id","event_type","Literal","role_id","role_name","NullOr","team_member_id","discord_user_id","exports","RoleMapping","discord_role_id","GetUnprocessedEvents","Rpc","make","payload","limit","Number","success","Array","MarkEventProcessed","MarkEventFailed","error","GetMappingForRole","UpsertMapping","DeleteMapping","RoleSyncRpcs","RpcGroup"],"sources":["../../../src/rpc/RoleSyncRpc.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,IAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEM,MAAOE,gBAAiB,sBAAQC,cAAM,CAACC,KAAK,CAAmB,kBAAkB,CAAC,CAAC;EACvFC,EAAE,EAAEF,cAAM,CAACG,MAAM;EACjBC,OAAO,EAAEJ,cAAM,CAACG,MAAM;EACtBE,QAAQ,EAAEL,cAAM,CAACG,MAAM;EACvBG,UAAU,eAAEN,cAAM,CAACO,OAAO,CAAC,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;EAC9FC,OAAO,EAAER,cAAM,CAACG,MAAM;EACtBM,SAAS,eAAET,cAAM,CAACU,MAAM,CAACV,cAAM,CAACG,MAAM,CAAC;EACvCQ,cAAc,eAAEX,cAAM,CAACU,MAAM,CAACV,cAAM,CAACG,MAAM,CAAC;EAC5CS,eAAe,eAAEZ,cAAM,CAACU,MAAM,CAACV,cAAM,CAACG,MAAM;CAC7C,CAAC;AAAAU,OAAA,CAAAd,gBAAA,GAAAA,gBAAA;AAEI,MAAOe,WAAY,sBAAQd,cAAM,CAACC,KAAK,CAAc,aAAa,CAAC,CAAC;EACxEC,EAAE,EAAEF,cAAM,CAACG,MAAM;EACjBC,OAAO,EAAEJ,cAAM,CAACG,MAAM;EACtBK,OAAO,EAAER,cAAM,CAACG,MAAM;EACtBY,eAAe,EAAEf,cAAM,CAACG;CACzB,CAAC;AAAAU,OAAA,CAAAC,WAAA,GAAAA,WAAA;AAEF,MAAME,oBAAoB,gBAAGC,QAAG,CAACC,IAAI,CAAC,sBAAsB,EAAE;EAC5DC,OAAO,EAAE;IAAEC,KAAK,EAAEpB,cAAM,CAACqB;EAAM,CAAE;EACjCC,OAAO,eAAEtB,cAAM,CAACuB,KAAK,CAACxB,gBAAgB;CACvC,CAAC;AAEF,MAAMyB,kBAAkB,gBAAGP,QAAG,CAACC,IAAI,CAAC,oBAAoB,EAAE;EACxDC,OAAO,EAAE;IAAEjB,EAAE,EAAEF,cAAM,CAACG;EAAM;CAC7B,CAAC;AAEF,MAAMsB,eAAe,gBAAGR,QAAG,CAACC,IAAI,CAAC,iBAAiB,EAAE;EAClDC,OAAO,EAAE;IAAEjB,EAAE,EAAEF,cAAM,CAACG,MAAM;IAAEuB,KAAK,EAAE1B,cAAM,CAACG;EAAM;CACnD,CAAC;AAEF,MAAMwB,iBAAiB,gBAAGV,QAAG,CAACC,IAAI,CAAC,mBAAmB,EAAE;EACtDC,OAAO,EAAE;IAAEf,OAAO,EAAEJ,cAAM,CAACG,MAAM;IAAEK,OAAO,EAAER,cAAM,CAACG;EAAM,CAAE;EAC3DmB,OAAO,eAAEtB,cAAM,CAACU,MAAM,CAACI,WAAW;CACnC,CAAC;AAEF,MAAMc,aAAa,gBAAGX,QAAG,CAACC,IAAI,CAAC,eAAe,EAAE;EAC9CC,OAAO,EAAE;IACPf,OAAO,EAAEJ,cAAM,CAACG,MAAM;IACtBK,OAAO,EAAER,cAAM,CAACG,MAAM;IACtBY,eAAe,EAAEf,cAAM,CAACG;;CAE3B,CAAC;AAEF,MAAM0B,aAAa,gBAAGZ,QAAG,CAACC,IAAI,CAAC,eAAe,EAAE;EAC9CC,OAAO,EAAE;IAAEf,OAAO,EAAEJ,cAAM,CAACG,MAAM;IAAEK,OAAO,EAAER,cAAM,CAACG;EAAM;CAC1D,CAAC;AAEI,MAAO2B,YAAa,sBAAQC,aAAQ,CAACb,IAAI,CAC7CF,oBAAoB,EACpBQ,kBAAkB,EAClBC,eAAe,EACfE,iBAAiB,EACjBC,aAAa,EACbC,aAAa,CACd;AAAAhB,OAAA,CAAAiB,YAAA,GAAAA,YAAA","ignoreList":[]}
@@ -1,140 +0,0 @@
1
- import { HttpApiEndpoint, HttpApiGroup } from '@effect/platform';
2
- import { Schema } from 'effect';
3
- import { AuthMiddleware } from '../api/Auth.js';
4
- declare const SubgroupInfo_base: Schema.Class<SubgroupInfo, {
5
- subgroupId: Schema.brand<typeof Schema.String, "SubgroupId">;
6
- teamId: Schema.brand<typeof Schema.String, "TeamId">;
7
- name: typeof Schema.String;
8
- memberCount: typeof Schema.Number;
9
- }, Schema.Struct.Encoded<{
10
- subgroupId: Schema.brand<typeof Schema.String, "SubgroupId">;
11
- teamId: Schema.brand<typeof Schema.String, "TeamId">;
12
- name: typeof Schema.String;
13
- memberCount: typeof Schema.Number;
14
- }>, never, {
15
- readonly name: string;
16
- } & {
17
- readonly teamId: string & import("effect/Brand").Brand<"TeamId">;
18
- } & {
19
- readonly memberCount: number;
20
- } & {
21
- readonly subgroupId: string & import("effect/Brand").Brand<"SubgroupId">;
22
- }, {}, {}>;
23
- export declare class SubgroupInfo extends SubgroupInfo_base {
24
- }
25
- declare const SubgroupDetail_base: Schema.Class<SubgroupDetail, {
26
- subgroupId: Schema.brand<typeof Schema.String, "SubgroupId">;
27
- teamId: Schema.brand<typeof Schema.String, "TeamId">;
28
- name: typeof Schema.String;
29
- permissions: Schema.Array$<Schema.Literal<["team:manage", "team:invite", "roster:view", "roster:manage", "member:view", "member:edit", "member:remove", "role:view", "role:manage"]>>;
30
- members: Schema.Array$<Schema.Struct<{
31
- memberId: Schema.brand<typeof Schema.String, "TeamMemberId">;
32
- name: Schema.NullOr<typeof Schema.String>;
33
- discordUsername: typeof Schema.String;
34
- }>>;
35
- }, Schema.Struct.Encoded<{
36
- subgroupId: Schema.brand<typeof Schema.String, "SubgroupId">;
37
- teamId: Schema.brand<typeof Schema.String, "TeamId">;
38
- name: typeof Schema.String;
39
- permissions: Schema.Array$<Schema.Literal<["team:manage", "team:invite", "roster:view", "roster:manage", "member:view", "member:edit", "member:remove", "role:view", "role:manage"]>>;
40
- members: Schema.Array$<Schema.Struct<{
41
- memberId: Schema.brand<typeof Schema.String, "TeamMemberId">;
42
- name: Schema.NullOr<typeof Schema.String>;
43
- discordUsername: typeof Schema.String;
44
- }>>;
45
- }>, never, {
46
- readonly name: string;
47
- } & {
48
- readonly members: readonly {
49
- readonly name: string | null;
50
- readonly discordUsername: string;
51
- readonly memberId: string & import("effect/Brand").Brand<"TeamMemberId">;
52
- }[];
53
- } & {
54
- readonly teamId: string & import("effect/Brand").Brand<"TeamId">;
55
- } & {
56
- readonly permissions: readonly ("team:manage" | "team:invite" | "roster:view" | "roster:manage" | "member:view" | "member:edit" | "member:remove" | "role:view" | "role:manage")[];
57
- } & {
58
- readonly subgroupId: string & import("effect/Brand").Brand<"SubgroupId">;
59
- }, {}, {}>;
60
- export declare class SubgroupDetail extends SubgroupDetail_base {
61
- }
62
- declare const CreateSubgroupRequest_base: Schema.Class<CreateSubgroupRequest, {
63
- name: typeof Schema.NonEmptyString;
64
- }, Schema.Struct.Encoded<{
65
- name: typeof Schema.NonEmptyString;
66
- }>, never, {
67
- readonly name: string;
68
- }, {}, {}>;
69
- export declare class CreateSubgroupRequest extends CreateSubgroupRequest_base {
70
- }
71
- declare const UpdateSubgroupRequest_base: Schema.Class<UpdateSubgroupRequest, {
72
- name: typeof Schema.NonEmptyString;
73
- }, Schema.Struct.Encoded<{
74
- name: typeof Schema.NonEmptyString;
75
- }>, never, {
76
- readonly name: string;
77
- }, {}, {}>;
78
- export declare class UpdateSubgroupRequest extends UpdateSubgroupRequest_base {
79
- }
80
- declare const AddSubgroupMemberRequest_base: Schema.Class<AddSubgroupMemberRequest, {
81
- memberId: Schema.brand<typeof Schema.String, "TeamMemberId">;
82
- }, Schema.Struct.Encoded<{
83
- memberId: Schema.brand<typeof Schema.String, "TeamMemberId">;
84
- }>, never, {
85
- readonly memberId: string & import("effect/Brand").Brand<"TeamMemberId">;
86
- }, {}, {}>;
87
- export declare class AddSubgroupMemberRequest extends AddSubgroupMemberRequest_base {
88
- }
89
- declare const SetSubgroupPermissionsRequest_base: Schema.Class<SetSubgroupPermissionsRequest, {
90
- permissions: Schema.Array$<Schema.Literal<["team:manage", "team:invite", "roster:view", "roster:manage", "member:view", "member:edit", "member:remove", "role:view", "role:manage"]>>;
91
- }, Schema.Struct.Encoded<{
92
- permissions: Schema.Array$<Schema.Literal<["team:manage", "team:invite", "roster:view", "roster:manage", "member:view", "member:edit", "member:remove", "role:view", "role:manage"]>>;
93
- }>, never, {
94
- readonly permissions: readonly ("team:manage" | "team:invite" | "roster:view" | "roster:manage" | "member:view" | "member:edit" | "member:remove" | "role:view" | "role:manage")[];
95
- }, {}, {}>;
96
- export declare class SetSubgroupPermissionsRequest extends SetSubgroupPermissionsRequest_base {
97
- }
98
- declare const SubgroupNotFound_base: Schema.TaggedErrorClass<SubgroupNotFound, "SubgroupNotFound", {
99
- readonly _tag: Schema.tag<"SubgroupNotFound">;
100
- }>;
101
- export declare class SubgroupNotFound extends SubgroupNotFound_base {
102
- }
103
- declare const Forbidden_base: Schema.TaggedErrorClass<Forbidden, "SubgroupForbidden", {
104
- readonly _tag: Schema.tag<"SubgroupForbidden">;
105
- }>;
106
- export declare class Forbidden extends Forbidden_base {
107
- }
108
- declare const MemberNotFound_base: Schema.TaggedErrorClass<MemberNotFound, "SubgroupMemberNotFound", {
109
- readonly _tag: Schema.tag<"SubgroupMemberNotFound">;
110
- }>;
111
- export declare class MemberNotFound extends MemberNotFound_base {
112
- }
113
- declare const SubgroupApiGroup_base: HttpApiGroup.HttpApiGroup<"subgroup", HttpApiEndpoint.HttpApiEndpoint<"listSubgroups", "GET", {
114
- readonly teamId: string & import("effect/Brand").Brand<"TeamId">;
115
- }, never, never, never, readonly SubgroupInfo[], import("../api/Auth.js").Unauthorized | Forbidden, AuthMiddleware, never> | HttpApiEndpoint.HttpApiEndpoint<"createSubgroup", "POST", {
116
- readonly teamId: string & import("effect/Brand").Brand<"TeamId">;
117
- }, never, CreateSubgroupRequest, never, SubgroupInfo, import("../api/Auth.js").Unauthorized | Forbidden, AuthMiddleware, never> | HttpApiEndpoint.HttpApiEndpoint<"getSubgroup", "GET", {
118
- readonly teamId: string & import("effect/Brand").Brand<"TeamId">;
119
- readonly subgroupId: string & import("effect/Brand").Brand<"SubgroupId">;
120
- }, never, never, never, SubgroupDetail, import("../api/Auth.js").Unauthorized | SubgroupNotFound | Forbidden, AuthMiddleware, never> | HttpApiEndpoint.HttpApiEndpoint<"updateSubgroup", "PATCH", {
121
- readonly teamId: string & import("effect/Brand").Brand<"TeamId">;
122
- readonly subgroupId: string & import("effect/Brand").Brand<"SubgroupId">;
123
- }, never, UpdateSubgroupRequest, never, SubgroupInfo, import("../api/Auth.js").Unauthorized | SubgroupNotFound | Forbidden, AuthMiddleware, never> | HttpApiEndpoint.HttpApiEndpoint<"deleteSubgroup", "DELETE", {
124
- readonly teamId: string & import("effect/Brand").Brand<"TeamId">;
125
- readonly subgroupId: string & import("effect/Brand").Brand<"SubgroupId">;
126
- }, never, never, never, void, import("../api/Auth.js").Unauthorized | SubgroupNotFound | Forbidden, AuthMiddleware, never> | HttpApiEndpoint.HttpApiEndpoint<"addSubgroupMember", "POST", {
127
- readonly teamId: string & import("effect/Brand").Brand<"TeamId">;
128
- readonly subgroupId: string & import("effect/Brand").Brand<"SubgroupId">;
129
- }, never, AddSubgroupMemberRequest, never, void, import("../api/Auth.js").Unauthorized | SubgroupNotFound | Forbidden | MemberNotFound, AuthMiddleware, never> | HttpApiEndpoint.HttpApiEndpoint<"removeSubgroupMember", "DELETE", {
130
- readonly teamId: string & import("effect/Brand").Brand<"TeamId">;
131
- readonly memberId: string & import("effect/Brand").Brand<"TeamMemberId">;
132
- readonly subgroupId: string & import("effect/Brand").Brand<"SubgroupId">;
133
- }, never, never, never, void, import("../api/Auth.js").Unauthorized | SubgroupNotFound | Forbidden | MemberNotFound, AuthMiddleware, never> | HttpApiEndpoint.HttpApiEndpoint<"setSubgroupPermissions", "PATCH", {
134
- readonly teamId: string & import("effect/Brand").Brand<"TeamId">;
135
- readonly subgroupId: string & import("effect/Brand").Brand<"SubgroupId">;
136
- }, never, SetSubgroupPermissionsRequest, never, SubgroupDetail, import("../api/Auth.js").Unauthorized | SubgroupNotFound | Forbidden, AuthMiddleware, never>, never, never, false>;
137
- export declare class SubgroupApiGroup extends SubgroupApiGroup_base {
138
- }
139
- export {};
140
- //# sourceMappingURL=SubgroupApi.d.ts.map