@sideline/domain 0.1.2 → 0.3.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 (134) hide show
  1. package/dist/cjs/api/AgeThresholdApi.js +86 -0
  2. package/dist/cjs/api/AgeThresholdApi.js.map +1 -0
  3. package/dist/cjs/api/Auth.js +33 -2
  4. package/dist/cjs/api/Auth.js.map +1 -1
  5. package/dist/cjs/api/Invite.js +1 -2
  6. package/dist/cjs/api/Invite.js.map +1 -1
  7. package/dist/cjs/api/NotificationApi.js +42 -0
  8. package/dist/cjs/api/NotificationApi.js.map +1 -0
  9. package/dist/cjs/api/RoleApi.js +123 -0
  10. package/dist/cjs/api/RoleApi.js.map +1 -0
  11. package/dist/cjs/api/Roster.js +159 -0
  12. package/dist/cjs/api/Roster.js.map +1 -0
  13. package/dist/cjs/api/SubgroupApi.js +122 -0
  14. package/dist/cjs/api/SubgroupApi.js.map +1 -0
  15. package/dist/cjs/index.js +31 -1
  16. package/dist/cjs/models/AgeThresholdRule.js +21 -0
  17. package/dist/cjs/models/AgeThresholdRule.js.map +1 -0
  18. package/dist/cjs/models/DiscordRoleMapping.js +20 -0
  19. package/dist/cjs/models/DiscordRoleMapping.js.map +1 -0
  20. package/dist/cjs/models/MemberRole.js +15 -0
  21. package/dist/cjs/models/MemberRole.js.map +1 -0
  22. package/dist/cjs/models/Notification.js +24 -0
  23. package/dist/cjs/models/Notification.js.map +1 -0
  24. package/dist/cjs/models/Role.js +32 -0
  25. package/dist/cjs/models/Role.js.map +1 -0
  26. package/dist/cjs/models/RoleSyncEvent.js +28 -0
  27. package/dist/cjs/models/RoleSyncEvent.js.map +1 -0
  28. package/dist/cjs/models/RosterMemberModel.js +19 -0
  29. package/dist/cjs/models/RosterMemberModel.js.map +1 -0
  30. package/dist/cjs/models/RosterModel.js +19 -0
  31. package/dist/cjs/models/RosterModel.js.map +1 -0
  32. package/dist/cjs/models/SubgroupModel.js +18 -0
  33. package/dist/cjs/models/SubgroupModel.js.map +1 -0
  34. package/dist/cjs/models/TeamMember.js +2 -3
  35. package/dist/cjs/models/TeamMember.js.map +1 -1
  36. package/dist/cjs/rpc/RoleSyncRpc.js +66 -0
  37. package/dist/cjs/rpc/RoleSyncRpc.js.map +1 -0
  38. package/dist/dts/api/AgeThresholdApi.d.ts +119 -0
  39. package/dist/dts/api/AgeThresholdApi.d.ts.map +1 -0
  40. package/dist/dts/api/Auth.d.ts +60 -1
  41. package/dist/dts/api/Auth.d.ts.map +1 -1
  42. package/dist/dts/api/Invite.d.ts +7 -7
  43. package/dist/dts/api/Invite.d.ts.map +1 -1
  44. package/dist/dts/api/NotificationApi.d.ts +53 -0
  45. package/dist/dts/api/NotificationApi.d.ts.map +1 -0
  46. package/dist/dts/api/RoleApi.d.ts +138 -0
  47. package/dist/dts/api/RoleApi.d.ts.map +1 -0
  48. package/dist/dts/api/Roster.d.ts +225 -0
  49. package/dist/dts/api/Roster.d.ts.map +1 -0
  50. package/dist/dts/api/SubgroupApi.d.ts +140 -0
  51. package/dist/dts/api/SubgroupApi.d.ts.map +1 -0
  52. package/dist/dts/index.d.ts +15 -0
  53. package/dist/dts/index.d.ts.map +1 -1
  54. package/dist/dts/models/AgeThresholdRule.d.ts +97 -0
  55. package/dist/dts/models/AgeThresholdRule.d.ts.map +1 -0
  56. package/dist/dts/models/DiscordRoleMapping.d.ts +84 -0
  57. package/dist/dts/models/DiscordRoleMapping.d.ts.map +1 -0
  58. package/dist/dts/models/MemberRole.d.ts +16 -0
  59. package/dist/dts/models/MemberRole.d.ts.map +1 -0
  60. package/dist/dts/models/Notification.d.ts +125 -0
  61. package/dist/dts/models/Notification.d.ts.map +1 -0
  62. package/dist/dts/models/Role.d.ts +102 -0
  63. package/dist/dts/models/Role.d.ts.map +1 -0
  64. package/dist/dts/models/RoleSyncEvent.d.ts +164 -0
  65. package/dist/dts/models/RoleSyncEvent.d.ts.map +1 -0
  66. package/dist/dts/models/RosterMemberModel.d.ts +71 -0
  67. package/dist/dts/models/RosterMemberModel.d.ts.map +1 -0
  68. package/dist/dts/models/RosterModel.d.ts +84 -0
  69. package/dist/dts/models/RosterModel.d.ts.map +1 -0
  70. package/dist/dts/models/SubgroupModel.d.ts +71 -0
  71. package/dist/dts/models/SubgroupModel.d.ts.map +1 -0
  72. package/dist/dts/models/TeamInvite.d.ts +4 -4
  73. package/dist/dts/models/TeamMember.d.ts +11 -13
  74. package/dist/dts/models/TeamMember.d.ts.map +1 -1
  75. package/dist/dts/rpc/RoleSyncRpc.d.ts +82 -0
  76. package/dist/dts/rpc/RoleSyncRpc.d.ts.map +1 -0
  77. package/dist/esm/api/AgeThresholdApi.js +72 -0
  78. package/dist/esm/api/AgeThresholdApi.js.map +1 -0
  79. package/dist/esm/api/Auth.js +28 -1
  80. package/dist/esm/api/Auth.js.map +1 -1
  81. package/dist/esm/api/Invite.js +1 -2
  82. package/dist/esm/api/Invite.js.map +1 -1
  83. package/dist/esm/api/NotificationApi.js +32 -0
  84. package/dist/esm/api/NotificationApi.js.map +1 -0
  85. package/dist/esm/api/RoleApi.js +106 -0
  86. package/dist/esm/api/RoleApi.js.map +1 -0
  87. package/dist/esm/api/Roster.js +142 -0
  88. package/dist/esm/api/Roster.js.map +1 -0
  89. package/dist/esm/api/SubgroupApi.js +106 -0
  90. package/dist/esm/api/SubgroupApi.js.map +1 -0
  91. package/dist/esm/index.js +15 -0
  92. package/dist/esm/index.js.map +1 -1
  93. package/dist/esm/models/AgeThresholdRule.js +14 -0
  94. package/dist/esm/models/AgeThresholdRule.js.map +1 -0
  95. package/dist/esm/models/DiscordRoleMapping.js +13 -0
  96. package/dist/esm/models/DiscordRoleMapping.js.map +1 -0
  97. package/dist/esm/models/MemberRole.js +8 -0
  98. package/dist/esm/models/MemberRole.js.map +1 -0
  99. package/dist/esm/models/Notification.js +17 -0
  100. package/dist/esm/models/Notification.js.map +1 -0
  101. package/dist/esm/models/Role.js +24 -0
  102. package/dist/esm/models/Role.js.map +1 -0
  103. package/dist/esm/models/RoleSyncEvent.js +21 -0
  104. package/dist/esm/models/RoleSyncEvent.js.map +1 -0
  105. package/dist/esm/models/RosterMemberModel.js +12 -0
  106. package/dist/esm/models/RosterMemberModel.js.map +1 -0
  107. package/dist/esm/models/RosterModel.js +12 -0
  108. package/dist/esm/models/RosterModel.js.map +1 -0
  109. package/dist/esm/models/SubgroupModel.js +11 -0
  110. package/dist/esm/models/SubgroupModel.js.map +1 -0
  111. package/dist/esm/models/TeamMember.js +1 -2
  112. package/dist/esm/models/TeamMember.js.map +1 -1
  113. package/dist/esm/rpc/RoleSyncRpc.js +57 -0
  114. package/dist/esm/rpc/RoleSyncRpc.js.map +1 -0
  115. package/package.json +2 -1
  116. package/src/api/AgeThresholdApi.ts +99 -0
  117. package/src/api/Auth.ts +52 -0
  118. package/src/api/Invite.ts +1 -2
  119. package/src/api/NotificationApi.ts +49 -0
  120. package/src/api/RoleApi.ts +130 -0
  121. package/src/api/Roster.ts +176 -0
  122. package/src/api/SubgroupApi.ts +146 -0
  123. package/src/index.ts +30 -0
  124. package/src/models/AgeThresholdRule.ts +16 -0
  125. package/src/models/DiscordRoleMapping.ts +15 -0
  126. package/src/models/MemberRole.ts +8 -0
  127. package/src/models/Notification.ts +26 -0
  128. package/src/models/Role.ts +53 -0
  129. package/src/models/RoleSyncEvent.ts +30 -0
  130. package/src/models/RosterMemberModel.ts +14 -0
  131. package/src/models/RosterModel.ts +14 -0
  132. package/src/models/SubgroupModel.ts +13 -0
  133. package/src/models/TeamMember.ts +1 -4
  134. package/src/rpc/RoleSyncRpc.ts +59 -0
@@ -0,0 +1,142 @@
1
+ import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from '@effect/platform';
2
+ import { Schema } from 'effect';
3
+ import { AuthMiddleware } from '../api/Auth.js';
4
+ import { Permission } from '../models/Role.js';
5
+ import { RosterId } from '../models/RosterModel.js';
6
+ import { TeamId } from '../models/Team.js';
7
+ import { TeamMemberId } from '../models/TeamMember.js';
8
+ import { Gender, Position, Proficiency, UserId } from '../models/User.js';
9
+ export class RosterPlayer extends /*#__PURE__*/Schema.Class('RosterPlayer')({
10
+ memberId: TeamMemberId,
11
+ userId: UserId,
12
+ roleNames: /*#__PURE__*/Schema.Array(Schema.String),
13
+ permissions: /*#__PURE__*/Schema.Array(Permission),
14
+ name: /*#__PURE__*/Schema.NullOr(Schema.String),
15
+ birthYear: /*#__PURE__*/Schema.NullOr(Schema.Number),
16
+ gender: /*#__PURE__*/Schema.NullOr(Gender),
17
+ jerseyNumber: /*#__PURE__*/Schema.NullOr(Schema.Number),
18
+ position: /*#__PURE__*/Schema.NullOr(Position),
19
+ proficiency: /*#__PURE__*/Schema.NullOr(Proficiency),
20
+ discordUsername: Schema.String,
21
+ discordAvatar: /*#__PURE__*/Schema.NullOr(Schema.String)
22
+ }) {}
23
+ export class UpdatePlayerRequest extends /*#__PURE__*/Schema.Class('UpdatePlayerRequest')({
24
+ name: /*#__PURE__*/Schema.NullOr(Schema.String),
25
+ birthYear: /*#__PURE__*/Schema.NullOr(Schema.Number),
26
+ gender: /*#__PURE__*/Schema.NullOr(Gender),
27
+ jerseyNumber: /*#__PURE__*/Schema.NullOr(Schema.Number),
28
+ position: /*#__PURE__*/Schema.NullOr(Position),
29
+ proficiency: /*#__PURE__*/Schema.NullOr(Proficiency)
30
+ }) {}
31
+ export class PlayerNotFound extends /*#__PURE__*/Schema.TaggedError()('PlayerNotFound', {}, /*#__PURE__*/HttpApiSchema.annotations({
32
+ status: 404
33
+ })) {}
34
+ export class Forbidden extends /*#__PURE__*/Schema.TaggedError()('Forbidden', {}, /*#__PURE__*/HttpApiSchema.annotations({
35
+ status: 403
36
+ })) {}
37
+ export class RosterNotFound extends /*#__PURE__*/Schema.TaggedError()('RosterNotFound', {}, /*#__PURE__*/HttpApiSchema.annotations({
38
+ status: 404
39
+ })) {}
40
+ export class RosterInfo extends /*#__PURE__*/Schema.Class('RosterInfo')({
41
+ rosterId: RosterId,
42
+ teamId: TeamId,
43
+ name: Schema.String,
44
+ active: Schema.Boolean,
45
+ memberCount: Schema.Number,
46
+ createdAt: Schema.String
47
+ }) {}
48
+ export class RosterDetail extends /*#__PURE__*/Schema.Class('RosterDetail')({
49
+ rosterId: RosterId,
50
+ teamId: TeamId,
51
+ name: Schema.String,
52
+ active: Schema.Boolean,
53
+ createdAt: Schema.String,
54
+ members: /*#__PURE__*/Schema.Array(RosterPlayer)
55
+ }) {}
56
+ export class CreateRosterRequest extends /*#__PURE__*/Schema.Class('CreateRosterRequest')({
57
+ name: Schema.String
58
+ }) {}
59
+ export class UpdateRosterRequest extends /*#__PURE__*/Schema.Class('UpdateRosterRequest')({
60
+ name: /*#__PURE__*/Schema.NullOr(Schema.String),
61
+ active: /*#__PURE__*/Schema.NullOr(Schema.Boolean)
62
+ }) {}
63
+ export class AddRosterMemberRequest extends /*#__PURE__*/Schema.Class('AddRosterMemberRequest')({
64
+ memberId: TeamMemberId
65
+ }) {}
66
+ export class RosterApiGroup extends /*#__PURE__*/HttpApiGroup.make('roster').add(HttpApiEndpoint.get('listMembers', '/teams/:teamId/members').addSuccess(Schema.Array(RosterPlayer)).addError(Forbidden, {
67
+ status: 403
68
+ }).setPath(Schema.Struct({
69
+ teamId: TeamId
70
+ })).middleware(AuthMiddleware)).add(HttpApiEndpoint.get('getMember', '/teams/:teamId/members/:memberId').addSuccess(RosterPlayer).addError(Forbidden, {
71
+ status: 403
72
+ }).addError(PlayerNotFound, {
73
+ status: 404
74
+ }).setPath(Schema.Struct({
75
+ teamId: TeamId,
76
+ memberId: TeamMemberId
77
+ })).middleware(AuthMiddleware)).add(HttpApiEndpoint.patch('updateMember', '/teams/:teamId/members/:memberId').addSuccess(RosterPlayer).addError(Forbidden, {
78
+ status: 403
79
+ }).addError(PlayerNotFound, {
80
+ status: 404
81
+ }).setPath(Schema.Struct({
82
+ teamId: TeamId,
83
+ memberId: TeamMemberId
84
+ })).setPayload(UpdatePlayerRequest).middleware(AuthMiddleware)).add(HttpApiEndpoint.del('deactivateMember', '/teams/:teamId/members/:memberId').addSuccess(Schema.Void).addError(Forbidden, {
85
+ status: 403
86
+ }).addError(PlayerNotFound, {
87
+ status: 404
88
+ }).setPath(Schema.Struct({
89
+ teamId: TeamId,
90
+ memberId: TeamMemberId
91
+ })).middleware(AuthMiddleware)).add(HttpApiEndpoint.get('listRosters', '/teams/:teamId/rosters').addSuccess(Schema.Array(RosterInfo)).addError(Forbidden, {
92
+ status: 403
93
+ }).setPath(Schema.Struct({
94
+ teamId: TeamId
95
+ })).middleware(AuthMiddleware)).add(HttpApiEndpoint.post('createRoster', '/teams/:teamId/rosters').addSuccess(RosterInfo, {
96
+ status: 201
97
+ }).addError(Forbidden, {
98
+ status: 403
99
+ }).setPath(Schema.Struct({
100
+ teamId: TeamId
101
+ })).setPayload(CreateRosterRequest).middleware(AuthMiddleware)).add(HttpApiEndpoint.get('getRoster', '/teams/:teamId/rosters/:rosterId').addSuccess(RosterDetail).addError(Forbidden, {
102
+ status: 403
103
+ }).addError(RosterNotFound, {
104
+ status: 404
105
+ }).setPath(Schema.Struct({
106
+ teamId: TeamId,
107
+ rosterId: RosterId
108
+ })).middleware(AuthMiddleware)).add(HttpApiEndpoint.patch('updateRoster', '/teams/:teamId/rosters/:rosterId').addSuccess(RosterInfo).addError(Forbidden, {
109
+ status: 403
110
+ }).addError(RosterNotFound, {
111
+ status: 404
112
+ }).setPath(Schema.Struct({
113
+ teamId: TeamId,
114
+ rosterId: RosterId
115
+ })).setPayload(UpdateRosterRequest).middleware(AuthMiddleware)).add(HttpApiEndpoint.del('deleteRoster', '/teams/:teamId/rosters/:rosterId').addSuccess(Schema.Void).addError(Forbidden, {
116
+ status: 403
117
+ }).addError(RosterNotFound, {
118
+ status: 404
119
+ }).setPath(Schema.Struct({
120
+ teamId: TeamId,
121
+ rosterId: RosterId
122
+ })).middleware(AuthMiddleware)).add(HttpApiEndpoint.post('addRosterMember', '/teams/:teamId/rosters/:rosterId/members').addSuccess(Schema.Void).addError(Forbidden, {
123
+ status: 403
124
+ }).addError(RosterNotFound, {
125
+ status: 404
126
+ }).addError(PlayerNotFound, {
127
+ status: 404
128
+ }).setPath(Schema.Struct({
129
+ teamId: TeamId,
130
+ rosterId: RosterId
131
+ })).setPayload(AddRosterMemberRequest).middleware(AuthMiddleware)).add(/*#__PURE__*/HttpApiEndpoint.del('removeRosterMember', '/teams/:teamId/rosters/:rosterId/members/:memberId').addSuccess(Schema.Void).addError(Forbidden, {
132
+ status: 403
133
+ }).addError(RosterNotFound, {
134
+ status: 404
135
+ }).addError(PlayerNotFound, {
136
+ status: 404
137
+ }).setPath(Schema.Struct({
138
+ teamId: TeamId,
139
+ rosterId: RosterId,
140
+ memberId: TeamMemberId
141
+ })).middleware(AuthMiddleware)) {}
142
+ //# sourceMappingURL=Roster.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Roster.js","names":["HttpApiEndpoint","HttpApiGroup","HttpApiSchema","Schema","AuthMiddleware","Permission","RosterId","TeamId","TeamMemberId","Gender","Position","Proficiency","UserId","RosterPlayer","Class","memberId","userId","roleNames","Array","String","permissions","name","NullOr","birthYear","Number","gender","jerseyNumber","position","proficiency","discordUsername","discordAvatar","UpdatePlayerRequest","PlayerNotFound","TaggedError","annotations","status","Forbidden","RosterNotFound","RosterInfo","rosterId","teamId","active","Boolean","memberCount","createdAt","RosterDetail","members","CreateRosterRequest","UpdateRosterRequest","AddRosterMemberRequest","RosterApiGroup","make","add","get","addSuccess","addError","setPath","Struct","middleware","patch","setPayload","del","Void","post"],"sources":["../../../src/api/Roster.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,106 @@
1
+ import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from '@effect/platform';
2
+ import { Schema } from 'effect';
3
+ import { AuthMiddleware } from '../api/Auth.js';
4
+ import { Permission } from '../models/Role.js';
5
+ import { SubgroupId } from '../models/SubgroupModel.js';
6
+ import { TeamId } from '../models/Team.js';
7
+ import { TeamMemberId } from '../models/TeamMember.js';
8
+ export class SubgroupInfo extends /*#__PURE__*/Schema.Class('SubgroupInfo')({
9
+ subgroupId: SubgroupId,
10
+ teamId: TeamId,
11
+ name: Schema.String,
12
+ memberCount: Schema.Number
13
+ }) {}
14
+ export class SubgroupDetail extends /*#__PURE__*/Schema.Class('SubgroupDetail')({
15
+ subgroupId: SubgroupId,
16
+ teamId: TeamId,
17
+ name: Schema.String,
18
+ permissions: /*#__PURE__*/Schema.Array(Permission),
19
+ members: /*#__PURE__*/Schema.Array(/*#__PURE__*/Schema.Struct({
20
+ memberId: TeamMemberId,
21
+ name: /*#__PURE__*/Schema.NullOr(Schema.String),
22
+ discordUsername: Schema.String
23
+ }))
24
+ }) {}
25
+ export class CreateSubgroupRequest extends /*#__PURE__*/Schema.Class('CreateSubgroupRequest')({
26
+ name: Schema.NonEmptyString
27
+ }) {}
28
+ export class UpdateSubgroupRequest extends /*#__PURE__*/Schema.Class('UpdateSubgroupRequest')({
29
+ name: Schema.NonEmptyString
30
+ }) {}
31
+ export class AddSubgroupMemberRequest extends /*#__PURE__*/Schema.Class('AddSubgroupMemberRequest')({
32
+ memberId: TeamMemberId
33
+ }) {}
34
+ export class SetSubgroupPermissionsRequest extends /*#__PURE__*/Schema.Class('SetSubgroupPermissionsRequest')({
35
+ permissions: /*#__PURE__*/Schema.Array(Permission)
36
+ }) {}
37
+ export class SubgroupNotFound extends /*#__PURE__*/Schema.TaggedError()('SubgroupNotFound', {}, /*#__PURE__*/HttpApiSchema.annotations({
38
+ status: 404
39
+ })) {}
40
+ export class Forbidden extends /*#__PURE__*/Schema.TaggedError()('SubgroupForbidden', {}, /*#__PURE__*/HttpApiSchema.annotations({
41
+ status: 403
42
+ })) {}
43
+ export class MemberNotFound extends /*#__PURE__*/Schema.TaggedError()('SubgroupMemberNotFound', {}, /*#__PURE__*/HttpApiSchema.annotations({
44
+ status: 404
45
+ })) {}
46
+ export class SubgroupApiGroup extends /*#__PURE__*/HttpApiGroup.make('subgroup').add(HttpApiEndpoint.get('listSubgroups', '/teams/:teamId/subgroups').addSuccess(Schema.Array(SubgroupInfo)).addError(Forbidden, {
47
+ status: 403
48
+ }).setPath(Schema.Struct({
49
+ teamId: TeamId
50
+ })).middleware(AuthMiddleware)).add(HttpApiEndpoint.post('createSubgroup', '/teams/:teamId/subgroups').addSuccess(SubgroupInfo, {
51
+ status: 201
52
+ }).addError(Forbidden, {
53
+ status: 403
54
+ }).setPath(Schema.Struct({
55
+ teamId: TeamId
56
+ })).setPayload(CreateSubgroupRequest).middleware(AuthMiddleware)).add(HttpApiEndpoint.get('getSubgroup', '/teams/:teamId/subgroups/:subgroupId').addSuccess(SubgroupDetail).addError(Forbidden, {
57
+ status: 403
58
+ }).addError(SubgroupNotFound, {
59
+ status: 404
60
+ }).setPath(Schema.Struct({
61
+ teamId: TeamId,
62
+ subgroupId: SubgroupId
63
+ })).middleware(AuthMiddleware)).add(HttpApiEndpoint.patch('updateSubgroup', '/teams/:teamId/subgroups/:subgroupId').addSuccess(SubgroupInfo).addError(Forbidden, {
64
+ status: 403
65
+ }).addError(SubgroupNotFound, {
66
+ status: 404
67
+ }).setPath(Schema.Struct({
68
+ teamId: TeamId,
69
+ subgroupId: SubgroupId
70
+ })).setPayload(UpdateSubgroupRequest).middleware(AuthMiddleware)).add(HttpApiEndpoint.del('deleteSubgroup', '/teams/:teamId/subgroups/:subgroupId').addSuccess(Schema.Void).addError(Forbidden, {
71
+ status: 403
72
+ }).addError(SubgroupNotFound, {
73
+ status: 404
74
+ }).setPath(Schema.Struct({
75
+ teamId: TeamId,
76
+ subgroupId: SubgroupId
77
+ })).middleware(AuthMiddleware)).add(HttpApiEndpoint.post('addSubgroupMember', '/teams/:teamId/subgroups/:subgroupId/members').addSuccess(Schema.Void, {
78
+ status: 204
79
+ }).addError(Forbidden, {
80
+ status: 403
81
+ }).addError(SubgroupNotFound, {
82
+ status: 404
83
+ }).addError(MemberNotFound, {
84
+ status: 404
85
+ }).setPath(Schema.Struct({
86
+ teamId: TeamId,
87
+ subgroupId: SubgroupId
88
+ })).setPayload(AddSubgroupMemberRequest).middleware(AuthMiddleware)).add(HttpApiEndpoint.del('removeSubgroupMember', '/teams/:teamId/subgroups/:subgroupId/members/:memberId').addSuccess(Schema.Void).addError(Forbidden, {
89
+ status: 403
90
+ }).addError(SubgroupNotFound, {
91
+ status: 404
92
+ }).addError(MemberNotFound, {
93
+ status: 404
94
+ }).setPath(Schema.Struct({
95
+ teamId: TeamId,
96
+ subgroupId: SubgroupId,
97
+ memberId: TeamMemberId
98
+ })).middleware(AuthMiddleware)).add(/*#__PURE__*/HttpApiEndpoint.patch('setSubgroupPermissions', '/teams/:teamId/subgroups/:subgroupId/permissions').addSuccess(SubgroupDetail).addError(Forbidden, {
99
+ status: 403
100
+ }).addError(SubgroupNotFound, {
101
+ status: 404
102
+ }).setPath(Schema.Struct({
103
+ teamId: TeamId,
104
+ subgroupId: SubgroupId
105
+ })).setPayload(SetSubgroupPermissionsRequest).middleware(AuthMiddleware)) {}
106
+ //# sourceMappingURL=SubgroupApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubgroupApi.js","names":["HttpApiEndpoint","HttpApiGroup","HttpApiSchema","Schema","AuthMiddleware","Permission","SubgroupId","TeamId","TeamMemberId","SubgroupInfo","Class","subgroupId","teamId","name","String","memberCount","Number","SubgroupDetail","permissions","Array","members","Struct","memberId","NullOr","discordUsername","CreateSubgroupRequest","NonEmptyString","UpdateSubgroupRequest","AddSubgroupMemberRequest","SetSubgroupPermissionsRequest","SubgroupNotFound","TaggedError","annotations","status","Forbidden","MemberNotFound","SubgroupApiGroup","make","add","get","addSuccess","addError","setPath","middleware","post","setPayload","patch","del","Void"],"sources":["../../../src/api/SubgroupApi.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/dist/esm/index.js CHANGED
@@ -1,9 +1,24 @@
1
1
  export * as ApiGroup from './ApiGroup.js';
2
+ export * as AgeThresholdApi from './api/AgeThresholdApi.js';
2
3
  export * as Auth from './api/Auth.js';
3
4
  export * as Invite from './api/Invite.js';
5
+ export * as NotificationApi from './api/NotificationApi.js';
6
+ export * as RoleApi from './api/RoleApi.js';
7
+ export * as Roster from './api/Roster.js';
8
+ export * as SubgroupApi from './api/SubgroupApi.js';
9
+ export * as AgeThresholdRule from './models/AgeThresholdRule.js';
10
+ export * as DiscordRoleMapping from './models/DiscordRoleMapping.js';
11
+ export * as MemberRole from './models/MemberRole.js';
12
+ export * as Notification from './models/Notification.js';
13
+ export * as Role from './models/Role.js';
14
+ export * as RoleSyncEvent from './models/RoleSyncEvent.js';
15
+ export * as RosterMemberModel from './models/RosterMemberModel.js';
16
+ export * as RosterModel from './models/RosterModel.js';
4
17
  export * as Session from './models/Session.js';
18
+ export * as SubgroupModel from './models/SubgroupModel.js';
5
19
  export * as Team from './models/Team.js';
6
20
  export * as TeamInvite from './models/TeamInvite.js';
7
21
  export * as TeamMember from './models/TeamMember.js';
8
22
  export * as User from './models/User.js';
23
+ export * as RoleSyncRpc from './rpc/RoleSyncRpc.js';
9
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["ApiGroup","Auth","Invite","Session","Team","TeamInvite","TeamMember","User"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,QAAQ,MAAM,eAAe;AAEzC,OAAO,KAAKC,IAAI,MAAM,eAAe;AAErC,OAAO,KAAKC,MAAM,MAAM,iBAAiB;AAEzC,OAAO,KAAKC,OAAO,MAAM,qBAAqB;AAE9C,OAAO,KAAKC,IAAI,MAAM,kBAAkB;AAExC,OAAO,KAAKC,UAAU,MAAM,wBAAwB;AAEpD,OAAO,KAAKC,UAAU,MAAM,wBAAwB;AAEpD,OAAO,KAAKC,IAAI,MAAM,kBAAkB","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["ApiGroup","AgeThresholdApi","Auth","Invite","NotificationApi","RoleApi","Roster","SubgroupApi","AgeThresholdRule","DiscordRoleMapping","MemberRole","Notification","Role","RoleSyncEvent","RosterMemberModel","RosterModel","Session","SubgroupModel","Team","TeamInvite","TeamMember","User","RoleSyncRpc"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,QAAQ,MAAM,eAAe;AAEzC,OAAO,KAAKC,eAAe,MAAM,0BAA0B;AAE3D,OAAO,KAAKC,IAAI,MAAM,eAAe;AAErC,OAAO,KAAKC,MAAM,MAAM,iBAAiB;AAEzC,OAAO,KAAKC,eAAe,MAAM,0BAA0B;AAE3D,OAAO,KAAKC,OAAO,MAAM,kBAAkB;AAE3C,OAAO,KAAKC,MAAM,MAAM,iBAAiB;AAEzC,OAAO,KAAKC,WAAW,MAAM,sBAAsB;AAEnD,OAAO,KAAKC,gBAAgB,MAAM,8BAA8B;AAEhE,OAAO,KAAKC,kBAAkB,MAAM,gCAAgC;AAEpE,OAAO,KAAKC,UAAU,MAAM,wBAAwB;AAEpD,OAAO,KAAKC,YAAY,MAAM,0BAA0B;AAExD,OAAO,KAAKC,IAAI,MAAM,kBAAkB;AAExC,OAAO,KAAKC,aAAa,MAAM,2BAA2B;AAE1D,OAAO,KAAKC,iBAAiB,MAAM,+BAA+B;AAElE,OAAO,KAAKC,WAAW,MAAM,yBAAyB;AAEtD,OAAO,KAAKC,OAAO,MAAM,qBAAqB;AAE9C,OAAO,KAAKC,aAAa,MAAM,2BAA2B;AAE1D,OAAO,KAAKC,IAAI,MAAM,kBAAkB;AAExC,OAAO,KAAKC,UAAU,MAAM,wBAAwB;AAEpD,OAAO,KAAKC,UAAU,MAAM,wBAAwB;AAEpD,OAAO,KAAKC,IAAI,MAAM,kBAAkB;AAExC,OAAO,KAAKC,WAAW,MAAM,sBAAsB","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ import { Model } from '@effect/sql';
2
+ import { Schema } from 'effect';
3
+ import { RoleId } from '../models/Role.js';
4
+ import { TeamId } from '../models/Team.js';
5
+ export const AgeThresholdRuleId = /*#__PURE__*/Schema.String.pipe(/*#__PURE__*/Schema.brand('AgeThresholdRuleId'));
6
+ export class AgeThresholdRule extends /*#__PURE__*/Model.Class('AgeThresholdRule')({
7
+ id: /*#__PURE__*/Model.Generated(AgeThresholdRuleId),
8
+ team_id: TeamId,
9
+ role_id: RoleId,
10
+ min_age: /*#__PURE__*/Schema.NullOr(Schema.Number),
11
+ max_age: /*#__PURE__*/Schema.NullOr(Schema.Number),
12
+ created_at: Model.DateTimeInsertFromDate
13
+ }) {}
14
+ //# sourceMappingURL=AgeThresholdRule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgeThresholdRule.js","names":["Model","Schema","RoleId","TeamId","AgeThresholdRuleId","String","pipe","brand","AgeThresholdRule","Class","id","Generated","team_id","role_id","min_age","NullOr","Number","max_age","created_at","DateTimeInsertFromDate"],"sources":["../../../src/models/AgeThresholdRule.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,KAAK,QAAQ,aAAa;AACnC,SAASC,MAAM,QAAQ,QAAQ;AAC/B,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,OAAO,MAAMC,kBAAkB,gBAAGH,MAAM,CAACI,MAAM,CAACC,IAAI,cAACL,MAAM,CAACM,KAAK,CAAC,oBAAoB,CAAC,CAAC;AAGxF,OAAM,MAAOC,gBAAiB,sBAAQR,KAAK,CAACS,KAAK,CAAmB,kBAAkB,CAAC,CAAC;EACtFC,EAAE,eAAEV,KAAK,CAACW,SAAS,CAACP,kBAAkB,CAAC;EACvCQ,OAAO,EAAET,MAAM;EACfU,OAAO,EAAEX,MAAM;EACfY,OAAO,eAAEb,MAAM,CAACc,MAAM,CAACd,MAAM,CAACe,MAAM,CAAC;EACrCC,OAAO,eAAEhB,MAAM,CAACc,MAAM,CAACd,MAAM,CAACe,MAAM,CAAC;EACrCE,UAAU,EAAElB,KAAK,CAACmB;CACnB,CAAC","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ import { Model } from '@effect/sql';
2
+ import { Schema } from 'effect';
3
+ import { RoleId } from '../models/Role.js';
4
+ import { TeamId } from '../models/Team.js';
5
+ export const DiscordRoleMappingId = /*#__PURE__*/Schema.String.pipe(/*#__PURE__*/Schema.brand('DiscordRoleMappingId'));
6
+ export class DiscordRoleMapping extends /*#__PURE__*/Model.Class('DiscordRoleMapping')({
7
+ id: /*#__PURE__*/Model.Generated(DiscordRoleMappingId),
8
+ team_id: TeamId,
9
+ role_id: RoleId,
10
+ discord_role_id: Schema.String,
11
+ created_at: Model.DateTimeInsertFromDate
12
+ }) {}
13
+ //# sourceMappingURL=DiscordRoleMapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DiscordRoleMapping.js","names":["Model","Schema","RoleId","TeamId","DiscordRoleMappingId","String","pipe","brand","DiscordRoleMapping","Class","id","Generated","team_id","role_id","discord_role_id","created_at","DateTimeInsertFromDate"],"sources":["../../../src/models/DiscordRoleMapping.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,KAAK,QAAQ,aAAa;AACnC,SAASC,MAAM,QAAQ,QAAQ;AAC/B,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,OAAO,MAAMC,oBAAoB,gBAAGH,MAAM,CAACI,MAAM,CAACC,IAAI,cAACL,MAAM,CAACM,KAAK,CAAC,sBAAsB,CAAC,CAAC;AAG5F,OAAM,MAAOC,kBAAmB,sBAAQR,KAAK,CAACS,KAAK,CAAqB,oBAAoB,CAAC,CAAC;EAC5FC,EAAE,eAAEV,KAAK,CAACW,SAAS,CAACP,oBAAoB,CAAC;EACzCQ,OAAO,EAAET,MAAM;EACfU,OAAO,EAAEX,MAAM;EACfY,eAAe,EAAEb,MAAM,CAACI,MAAM;EAC9BU,UAAU,EAAEf,KAAK,CAACgB;CACnB,CAAC","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ import { Schema } from 'effect';
2
+ import { RoleId } from '../models/Role.js';
3
+ import { TeamMemberId } from '../models/TeamMember.js';
4
+ export class MemberRole extends /*#__PURE__*/Schema.Class('MemberRole')({
5
+ team_member_id: TeamMemberId,
6
+ role_id: RoleId
7
+ }) {}
8
+ //# sourceMappingURL=MemberRole.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemberRole.js","names":["Schema","RoleId","TeamMemberId","MemberRole","Class","team_member_id","role_id"],"sources":["../../../src/models/MemberRole.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAM,QAAQ,QAAQ;AAC/B,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,YAAY,QAAQ,yBAAyB;AAEtD,OAAM,MAAOC,UAAW,sBAAQH,MAAM,CAACI,KAAK,CAAa,YAAY,CAAC,CAAC;EACrEC,cAAc,EAAEH,YAAY;EAC5BI,OAAO,EAAEL;CACV,CAAC","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ import { Model } from '@effect/sql';
2
+ import { Schema } from 'effect';
3
+ import { TeamId } from '../models/Team.js';
4
+ import { UserId } from '../models/User.js';
5
+ export const NotificationId = /*#__PURE__*/Schema.String.pipe(/*#__PURE__*/Schema.brand('NotificationId'));
6
+ export const NotificationType = /*#__PURE__*/Schema.Literal('age_role_assigned', 'age_role_removed', 'role_assigned', 'role_removed');
7
+ export class Notification extends /*#__PURE__*/Model.Class('Notification')({
8
+ id: /*#__PURE__*/Model.Generated(NotificationId),
9
+ team_id: TeamId,
10
+ user_id: UserId,
11
+ type: NotificationType,
12
+ title: Schema.String,
13
+ body: Schema.String,
14
+ is_read: Schema.Boolean,
15
+ created_at: Model.DateTimeInsertFromDate
16
+ }) {}
17
+ //# sourceMappingURL=Notification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Notification.js","names":["Model","Schema","TeamId","UserId","NotificationId","String","pipe","brand","NotificationType","Literal","Notification","Class","id","Generated","team_id","user_id","type","title","body","is_read","Boolean","created_at","DateTimeInsertFromDate"],"sources":["../../../src/models/Notification.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,KAAK,QAAQ,aAAa;AACnC,SAASC,MAAM,QAAQ,QAAQ;AAC/B,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,OAAO,MAAMC,cAAc,gBAAGH,MAAM,CAACI,MAAM,CAACC,IAAI,cAACL,MAAM,CAACM,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAGhF,OAAO,MAAMC,gBAAgB,gBAAGP,MAAM,CAACQ,OAAO,CAC5C,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,cAAc,CACf;AAGD,OAAM,MAAOC,YAAa,sBAAQV,KAAK,CAACW,KAAK,CAAe,cAAc,CAAC,CAAC;EAC1EC,EAAE,eAAEZ,KAAK,CAACa,SAAS,CAACT,cAAc,CAAC;EACnCU,OAAO,EAAEZ,MAAM;EACfa,OAAO,EAAEZ,MAAM;EACfa,IAAI,EAAER,gBAAgB;EACtBS,KAAK,EAAEhB,MAAM,CAACI,MAAM;EACpBa,IAAI,EAAEjB,MAAM,CAACI,MAAM;EACnBc,OAAO,EAAElB,MAAM,CAACmB,OAAO;EACvBC,UAAU,EAAErB,KAAK,CAACsB;CACnB,CAAC","ignoreList":[]}
@@ -0,0 +1,24 @@
1
+ import { Model } from '@effect/sql';
2
+ import { Schema } from 'effect';
3
+ import { TeamId } from '../models/Team.js';
4
+ export const RoleId = /*#__PURE__*/Schema.String.pipe(/*#__PURE__*/Schema.brand('RoleId'));
5
+ export const Permission = /*#__PURE__*/Schema.Literal('team:manage', 'team:invite', 'roster:view', 'roster:manage', 'member:view', 'member:edit', 'member:remove', 'role:view', 'role:manage');
6
+ export const allPermissions = Permission.literals;
7
+ export const defaultPermissions = {
8
+ Admin: ['team:manage', 'team:invite', 'roster:view', 'roster:manage', 'member:view', 'member:edit', 'member:remove', 'role:view', 'role:manage'],
9
+ Captain: ['roster:view', 'roster:manage', 'member:view', 'member:edit', 'role:view'],
10
+ Player: ['roster:view', 'member:view']
11
+ };
12
+ export const builtInRoleNames = ['Admin', 'Captain', 'Player'];
13
+ export class Role extends /*#__PURE__*/Model.Class('Role')({
14
+ id: /*#__PURE__*/Model.Generated(RoleId),
15
+ team_id: TeamId,
16
+ name: Schema.String,
17
+ is_built_in: Schema.Boolean,
18
+ created_at: Model.DateTimeInsertFromDate
19
+ }) {}
20
+ export class RolePermission extends /*#__PURE__*/Schema.Class('RolePermission')({
21
+ role_id: RoleId,
22
+ permission: Permission
23
+ }) {}
24
+ //# sourceMappingURL=Role.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Role.js","names":["Model","Schema","TeamId","RoleId","String","pipe","brand","Permission","Literal","allPermissions","literals","defaultPermissions","Admin","Captain","Player","builtInRoleNames","Role","Class","id","Generated","team_id","name","is_built_in","Boolean","created_at","DateTimeInsertFromDate","RolePermission","role_id","permission"],"sources":["../../../src/models/Role.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,KAAK,QAAQ,aAAa;AACnC,SAASC,MAAM,QAAQ,QAAQ;AAC/B,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,OAAO,MAAMC,MAAM,gBAAGF,MAAM,CAACG,MAAM,CAACC,IAAI,cAACJ,MAAM,CAACK,KAAK,CAAC,QAAQ,CAAC,CAAC;AAGhE,OAAO,MAAMC,UAAU,gBAAGN,MAAM,CAACO,OAAO,CACtC,aAAa,EACb,aAAa,EACb,aAAa,EACb,eAAe,EACf,aAAa,EACb,aAAa,EACb,eAAe,EACf,WAAW,EACX,aAAa,CACd;AAGD,OAAO,MAAMC,cAAc,GACzBF,UAAU,CAACG,QAAqC;AAElD,OAAO,MAAMC,kBAAkB,GAA8C;EAC3EC,KAAK,EAAE,CACL,aAAa,EACb,aAAa,EACb,aAAa,EACb,eAAe,EACf,aAAa,EACb,aAAa,EACb,eAAe,EACf,WAAW,EACX,aAAa,CACd;EACDC,OAAO,EAAE,CAAC,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,CAAC;EACpFC,MAAM,EAAE,CAAC,aAAa,EAAE,aAAa;CACtC;AAED,OAAO,MAAMC,gBAAgB,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAU;AAEvE,OAAM,MAAOC,IAAK,sBAAQhB,KAAK,CAACiB,KAAK,CAAO,MAAM,CAAC,CAAC;EAClDC,EAAE,eAAElB,KAAK,CAACmB,SAAS,CAAChB,MAAM,CAAC;EAC3BiB,OAAO,EAAElB,MAAM;EACfmB,IAAI,EAAEpB,MAAM,CAACG,MAAM;EACnBkB,WAAW,EAAErB,MAAM,CAACsB,OAAO;EAC3BC,UAAU,EAAExB,KAAK,CAACyB;CACnB,CAAC;AAEF,OAAM,MAAOC,cAAe,sBAAQzB,MAAM,CAACgB,KAAK,CAAiB,gBAAgB,CAAC,CAAC;EACjFU,OAAO,EAAExB,MAAM;EACfyB,UAAU,EAAErB;CACb,CAAC","ignoreList":[]}
@@ -0,0 +1,21 @@
1
+ import { Model } from '@effect/sql';
2
+ import { Schema } from 'effect';
3
+ import { RoleId } from '../models/Role.js';
4
+ import { TeamId } from '../models/Team.js';
5
+ import { TeamMemberId } from '../models/TeamMember.js';
6
+ export const RoleSyncEventId = /*#__PURE__*/Schema.String.pipe(/*#__PURE__*/Schema.brand('RoleSyncEventId'));
7
+ export const RoleSyncEventType = /*#__PURE__*/Schema.Literal('role_assigned', 'role_unassigned', 'role_created', 'role_deleted');
8
+ export class RoleSyncEvent extends /*#__PURE__*/Model.Class('RoleSyncEvent')({
9
+ id: /*#__PURE__*/Model.Generated(RoleSyncEventId),
10
+ team_id: TeamId,
11
+ guild_id: Schema.String,
12
+ event_type: RoleSyncEventType,
13
+ role_id: RoleId,
14
+ role_name: /*#__PURE__*/Schema.NullOr(Schema.String),
15
+ team_member_id: /*#__PURE__*/Schema.NullOr(TeamMemberId),
16
+ discord_user_id: /*#__PURE__*/Schema.NullOr(Schema.String),
17
+ processed_at: /*#__PURE__*/Schema.NullOr(Schema.String),
18
+ error: /*#__PURE__*/Schema.NullOr(Schema.String),
19
+ created_at: Model.DateTimeInsertFromDate
20
+ }) {}
21
+ //# sourceMappingURL=RoleSyncEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RoleSyncEvent.js","names":["Model","Schema","RoleId","TeamId","TeamMemberId","RoleSyncEventId","String","pipe","brand","RoleSyncEventType","Literal","RoleSyncEvent","Class","id","Generated","team_id","guild_id","event_type","role_id","role_name","NullOr","team_member_id","discord_user_id","processed_at","error","created_at","DateTimeInsertFromDate"],"sources":["../../../src/models/RoleSyncEvent.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,KAAK,QAAQ,aAAa;AACnC,SAASC,MAAM,QAAQ,QAAQ;AAC/B,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,YAAY,QAAQ,yBAAyB;AAEtD,OAAO,MAAMC,eAAe,gBAAGJ,MAAM,CAACK,MAAM,CAACC,IAAI,cAACN,MAAM,CAACO,KAAK,CAAC,iBAAiB,CAAC,CAAC;AAGlF,OAAO,MAAMC,iBAAiB,gBAAGR,MAAM,CAACS,OAAO,CAC7C,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,cAAc,CACf;AAGD,OAAM,MAAOC,aAAc,sBAAQX,KAAK,CAACY,KAAK,CAAgB,eAAe,CAAC,CAAC;EAC7EC,EAAE,eAAEb,KAAK,CAACc,SAAS,CAACT,eAAe,CAAC;EACpCU,OAAO,EAAEZ,MAAM;EACfa,QAAQ,EAAEf,MAAM,CAACK,MAAM;EACvBW,UAAU,EAAER,iBAAiB;EAC7BS,OAAO,EAAEhB,MAAM;EACfiB,SAAS,eAAElB,MAAM,CAACmB,MAAM,CAACnB,MAAM,CAACK,MAAM,CAAC;EACvCe,cAAc,eAAEpB,MAAM,CAACmB,MAAM,CAAChB,YAAY,CAAC;EAC3CkB,eAAe,eAAErB,MAAM,CAACmB,MAAM,CAACnB,MAAM,CAACK,MAAM,CAAC;EAC7CiB,YAAY,eAAEtB,MAAM,CAACmB,MAAM,CAACnB,MAAM,CAACK,MAAM,CAAC;EAC1CkB,KAAK,eAAEvB,MAAM,CAACmB,MAAM,CAACnB,MAAM,CAACK,MAAM,CAAC;EACnCmB,UAAU,EAAEzB,KAAK,CAAC0B;CACnB,CAAC","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ import { Model } from '@effect/sql';
2
+ import { Schema } from 'effect';
3
+ import { RosterId } from '../models/RosterModel.js';
4
+ import { TeamMemberId } from '../models/TeamMember.js';
5
+ export const RosterMemberId = /*#__PURE__*/Schema.String.pipe(/*#__PURE__*/Schema.brand('RosterMemberId'));
6
+ export class RosterMember extends /*#__PURE__*/Model.Class('RosterMember')({
7
+ id: /*#__PURE__*/Model.Generated(RosterMemberId),
8
+ roster_id: RosterId,
9
+ team_member_id: TeamMemberId,
10
+ created_at: Model.DateTimeInsertFromDate
11
+ }) {}
12
+ //# sourceMappingURL=RosterMemberModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RosterMemberModel.js","names":["Model","Schema","RosterId","TeamMemberId","RosterMemberId","String","pipe","brand","RosterMember","Class","id","Generated","roster_id","team_member_id","created_at","DateTimeInsertFromDate"],"sources":["../../../src/models/RosterMemberModel.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,KAAK,QAAQ,aAAa;AACnC,SAASC,MAAM,QAAQ,QAAQ;AAC/B,SAASC,QAAQ,QAAQ,0BAA0B;AACnD,SAASC,YAAY,QAAQ,yBAAyB;AAEtD,OAAO,MAAMC,cAAc,gBAAGH,MAAM,CAACI,MAAM,CAACC,IAAI,cAACL,MAAM,CAACM,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAGhF,OAAM,MAAOC,YAAa,sBAAQR,KAAK,CAACS,KAAK,CAAe,cAAc,CAAC,CAAC;EAC1EC,EAAE,eAAEV,KAAK,CAACW,SAAS,CAACP,cAAc,CAAC;EACnCQ,SAAS,EAAEV,QAAQ;EACnBW,cAAc,EAAEV,YAAY;EAC5BW,UAAU,EAAEd,KAAK,CAACe;CACnB,CAAC","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ import { Model } from '@effect/sql';
2
+ import { Schema } from 'effect';
3
+ import { TeamId } from '../models/Team.js';
4
+ export const RosterId = /*#__PURE__*/Schema.String.pipe(/*#__PURE__*/Schema.brand('RosterId'));
5
+ export class Roster extends /*#__PURE__*/Model.Class('Roster')({
6
+ id: /*#__PURE__*/Model.Generated(RosterId),
7
+ team_id: TeamId,
8
+ name: Schema.String,
9
+ active: Schema.Boolean,
10
+ created_at: Model.DateTimeInsertFromDate
11
+ }) {}
12
+ //# sourceMappingURL=RosterModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RosterModel.js","names":["Model","Schema","TeamId","RosterId","String","pipe","brand","Roster","Class","id","Generated","team_id","name","active","Boolean","created_at","DateTimeInsertFromDate"],"sources":["../../../src/models/RosterModel.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,KAAK,QAAQ,aAAa;AACnC,SAASC,MAAM,QAAQ,QAAQ;AAC/B,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,OAAO,MAAMC,QAAQ,gBAAGF,MAAM,CAACG,MAAM,CAACC,IAAI,cAACJ,MAAM,CAACK,KAAK,CAAC,UAAU,CAAC,CAAC;AAGpE,OAAM,MAAOC,MAAO,sBAAQP,KAAK,CAACQ,KAAK,CAAS,QAAQ,CAAC,CAAC;EACxDC,EAAE,eAAET,KAAK,CAACU,SAAS,CAACP,QAAQ,CAAC;EAC7BQ,OAAO,EAAET,MAAM;EACfU,IAAI,EAAEX,MAAM,CAACG,MAAM;EACnBS,MAAM,EAAEZ,MAAM,CAACa,OAAO;EACtBC,UAAU,EAAEf,KAAK,CAACgB;CACnB,CAAC","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import { Model } from '@effect/sql';
2
+ import { Schema } from 'effect';
3
+ import { TeamId } from '../models/Team.js';
4
+ export const SubgroupId = /*#__PURE__*/Schema.String.pipe(/*#__PURE__*/Schema.brand('SubgroupId'));
5
+ export class Subgroup extends /*#__PURE__*/Model.Class('Subgroup')({
6
+ id: /*#__PURE__*/Model.Generated(SubgroupId),
7
+ team_id: TeamId,
8
+ name: Schema.String,
9
+ created_at: Model.DateTimeInsertFromDate
10
+ }) {}
11
+ //# sourceMappingURL=SubgroupModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubgroupModel.js","names":["Model","Schema","TeamId","SubgroupId","String","pipe","brand","Subgroup","Class","id","Generated","team_id","name","created_at","DateTimeInsertFromDate"],"sources":["../../../src/models/SubgroupModel.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,KAAK,QAAQ,aAAa;AACnC,SAASC,MAAM,QAAQ,QAAQ;AAC/B,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,OAAO,MAAMC,UAAU,gBAAGF,MAAM,CAACG,MAAM,CAACC,IAAI,cAACJ,MAAM,CAACK,KAAK,CAAC,YAAY,CAAC,CAAC;AAGxE,OAAM,MAAOC,QAAS,sBAAQP,KAAK,CAACQ,KAAK,CAAW,UAAU,CAAC,CAAC;EAC9DC,EAAE,eAAET,KAAK,CAACU,SAAS,CAACP,UAAU,CAAC;EAC/BQ,OAAO,EAAET,MAAM;EACfU,IAAI,EAAEX,MAAM,CAACG,MAAM;EACnBS,UAAU,EAAEb,KAAK,CAACc;CACnB,CAAC","ignoreList":[]}
@@ -3,12 +3,11 @@ import { Schema } from 'effect';
3
3
  import { TeamId } from '../models/Team.js';
4
4
  import { UserId } from '../models/User.js';
5
5
  export const TeamMemberId = /*#__PURE__*/Schema.String.pipe(/*#__PURE__*/Schema.brand('TeamMemberId'));
6
- export const TeamRole = /*#__PURE__*/Schema.Literal('admin', 'member');
7
6
  export class TeamMember extends /*#__PURE__*/Model.Class('TeamMember')({
8
7
  id: /*#__PURE__*/Model.Generated(TeamMemberId),
9
8
  team_id: TeamId,
10
9
  user_id: UserId,
11
- role: TeamRole,
10
+ active: Schema.Boolean,
12
11
  joined_at: Model.DateTimeInsertFromDate
13
12
  }) {}
14
13
  //# sourceMappingURL=TeamMember.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TeamMember.js","names":["Model","Schema","TeamId","UserId","TeamMemberId","String","pipe","brand","TeamRole","Literal","TeamMember","Class","id","Generated","team_id","user_id","role","joined_at","DateTimeInsertFromDate"],"sources":["../../../src/models/TeamMember.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,KAAK,QAAQ,aAAa;AACnC,SAASC,MAAM,QAAQ,QAAQ;AAC/B,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,OAAO,MAAMC,YAAY,gBAAGH,MAAM,CAACI,MAAM,CAACC,IAAI,cAACL,MAAM,CAACM,KAAK,CAAC,cAAc,CAAC,CAAC;AAG5E,OAAO,MAAMC,QAAQ,gBAAGP,MAAM,CAACQ,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC;AAGzD,OAAM,MAAOC,UAAW,sBAAQV,KAAK,CAACW,KAAK,CAAa,YAAY,CAAC,CAAC;EACpEC,EAAE,eAAEZ,KAAK,CAACa,SAAS,CAACT,YAAY,CAAC;EACjCU,OAAO,EAAEZ,MAAM;EACfa,OAAO,EAAEZ,MAAM;EACfa,IAAI,EAAER,QAAQ;EACdS,SAAS,EAAEjB,KAAK,CAACkB;CAClB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"TeamMember.js","names":["Model","Schema","TeamId","UserId","TeamMemberId","String","pipe","brand","TeamMember","Class","id","Generated","team_id","user_id","active","Boolean","joined_at","DateTimeInsertFromDate"],"sources":["../../../src/models/TeamMember.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,KAAK,QAAQ,aAAa;AACnC,SAASC,MAAM,QAAQ,QAAQ;AAC/B,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,OAAO,MAAMC,YAAY,gBAAGH,MAAM,CAACI,MAAM,CAACC,IAAI,cAACL,MAAM,CAACM,KAAK,CAAC,cAAc,CAAC,CAAC;AAG5E,OAAM,MAAOC,UAAW,sBAAQR,KAAK,CAACS,KAAK,CAAa,YAAY,CAAC,CAAC;EACpEC,EAAE,eAAEV,KAAK,CAACW,SAAS,CAACP,YAAY,CAAC;EACjCQ,OAAO,EAAEV,MAAM;EACfW,OAAO,EAAEV,MAAM;EACfW,MAAM,EAAEb,MAAM,CAACc,OAAO;EACtBC,SAAS,EAAEhB,KAAK,CAACiB;CAClB,CAAC","ignoreList":[]}
@@ -0,0 +1,57 @@
1
+ import { Rpc, RpcGroup } from '@effect/rpc';
2
+ import { Schema } from 'effect';
3
+ export class UnprocessedEvent extends /*#__PURE__*/Schema.Class('UnprocessedEvent')({
4
+ id: Schema.String,
5
+ team_id: Schema.String,
6
+ guild_id: Schema.String,
7
+ event_type: /*#__PURE__*/Schema.Literal('role_assigned', 'role_unassigned', 'role_created', 'role_deleted'),
8
+ role_id: Schema.String,
9
+ role_name: /*#__PURE__*/Schema.NullOr(Schema.String),
10
+ team_member_id: /*#__PURE__*/Schema.NullOr(Schema.String),
11
+ discord_user_id: /*#__PURE__*/Schema.NullOr(Schema.String)
12
+ }) {}
13
+ export class RoleMapping extends /*#__PURE__*/Schema.Class('RoleMapping')({
14
+ id: Schema.String,
15
+ team_id: Schema.String,
16
+ role_id: Schema.String,
17
+ discord_role_id: Schema.String
18
+ }) {}
19
+ const GetUnprocessedEvents = /*#__PURE__*/Rpc.make('GetUnprocessedEvents', {
20
+ payload: {
21
+ limit: Schema.Number
22
+ },
23
+ success: /*#__PURE__*/Schema.Array(UnprocessedEvent)
24
+ });
25
+ const MarkEventProcessed = /*#__PURE__*/Rpc.make('MarkEventProcessed', {
26
+ payload: {
27
+ id: Schema.String
28
+ }
29
+ });
30
+ const MarkEventFailed = /*#__PURE__*/Rpc.make('MarkEventFailed', {
31
+ payload: {
32
+ id: Schema.String,
33
+ error: Schema.String
34
+ }
35
+ });
36
+ const GetMappingForRole = /*#__PURE__*/Rpc.make('GetMappingForRole', {
37
+ payload: {
38
+ team_id: Schema.String,
39
+ role_id: Schema.String
40
+ },
41
+ success: /*#__PURE__*/Schema.NullOr(RoleMapping)
42
+ });
43
+ const UpsertMapping = /*#__PURE__*/Rpc.make('UpsertMapping', {
44
+ payload: {
45
+ team_id: Schema.String,
46
+ role_id: Schema.String,
47
+ discord_role_id: Schema.String
48
+ }
49
+ });
50
+ const DeleteMapping = /*#__PURE__*/Rpc.make('DeleteMapping', {
51
+ payload: {
52
+ team_id: Schema.String,
53
+ role_id: Schema.String
54
+ }
55
+ });
56
+ export class RoleSyncRpcs extends /*#__PURE__*/RpcGroup.make(GetUnprocessedEvents, MarkEventProcessed, MarkEventFailed, GetMappingForRole, UpsertMapping, DeleteMapping) {}
57
+ //# sourceMappingURL=RoleSyncRpc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RoleSyncRpc.js","names":["Rpc","RpcGroup","Schema","UnprocessedEvent","Class","id","String","team_id","guild_id","event_type","Literal","role_id","role_name","NullOr","team_member_id","discord_user_id","RoleMapping","discord_role_id","GetUnprocessedEvents","make","payload","limit","Number","success","Array","MarkEventProcessed","MarkEventFailed","error","GetMappingForRole","UpsertMapping","DeleteMapping","RoleSyncRpcs"],"sources":["../../../src/rpc/RoleSyncRpc.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAG,EAAEC,QAAQ,QAAQ,aAAa;AAC3C,SAASC,MAAM,QAAQ,QAAQ;AAE/B,OAAM,MAAOC,gBAAiB,sBAAQD,MAAM,CAACE,KAAK,CAAmB,kBAAkB,CAAC,CAAC;EACvFC,EAAE,EAAEH,MAAM,CAACI,MAAM;EACjBC,OAAO,EAAEL,MAAM,CAACI,MAAM;EACtBE,QAAQ,EAAEN,MAAM,CAACI,MAAM;EACvBG,UAAU,eAAEP,MAAM,CAACQ,OAAO,CAAC,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;EAC9FC,OAAO,EAAET,MAAM,CAACI,MAAM;EACtBM,SAAS,eAAEV,MAAM,CAACW,MAAM,CAACX,MAAM,CAACI,MAAM,CAAC;EACvCQ,cAAc,eAAEZ,MAAM,CAACW,MAAM,CAACX,MAAM,CAACI,MAAM,CAAC;EAC5CS,eAAe,eAAEb,MAAM,CAACW,MAAM,CAACX,MAAM,CAACI,MAAM;CAC7C,CAAC;AAEF,OAAM,MAAOU,WAAY,sBAAQd,MAAM,CAACE,KAAK,CAAc,aAAa,CAAC,CAAC;EACxEC,EAAE,EAAEH,MAAM,CAACI,MAAM;EACjBC,OAAO,EAAEL,MAAM,CAACI,MAAM;EACtBK,OAAO,EAAET,MAAM,CAACI,MAAM;EACtBW,eAAe,EAAEf,MAAM,CAACI;CACzB,CAAC;AAEF,MAAMY,oBAAoB,gBAAGlB,GAAG,CAACmB,IAAI,CAAC,sBAAsB,EAAE;EAC5DC,OAAO,EAAE;IAAEC,KAAK,EAAEnB,MAAM,CAACoB;EAAM,CAAE;EACjCC,OAAO,eAAErB,MAAM,CAACsB,KAAK,CAACrB,gBAAgB;CACvC,CAAC;AAEF,MAAMsB,kBAAkB,gBAAGzB,GAAG,CAACmB,IAAI,CAAC,oBAAoB,EAAE;EACxDC,OAAO,EAAE;IAAEf,EAAE,EAAEH,MAAM,CAACI;EAAM;CAC7B,CAAC;AAEF,MAAMoB,eAAe,gBAAG1B,GAAG,CAACmB,IAAI,CAAC,iBAAiB,EAAE;EAClDC,OAAO,EAAE;IAAEf,EAAE,EAAEH,MAAM,CAACI,MAAM;IAAEqB,KAAK,EAAEzB,MAAM,CAACI;EAAM;CACnD,CAAC;AAEF,MAAMsB,iBAAiB,gBAAG5B,GAAG,CAACmB,IAAI,CAAC,mBAAmB,EAAE;EACtDC,OAAO,EAAE;IAAEb,OAAO,EAAEL,MAAM,CAACI,MAAM;IAAEK,OAAO,EAAET,MAAM,CAACI;EAAM,CAAE;EAC3DiB,OAAO,eAAErB,MAAM,CAACW,MAAM,CAACG,WAAW;CACnC,CAAC;AAEF,MAAMa,aAAa,gBAAG7B,GAAG,CAACmB,IAAI,CAAC,eAAe,EAAE;EAC9CC,OAAO,EAAE;IACPb,OAAO,EAAEL,MAAM,CAACI,MAAM;IACtBK,OAAO,EAAET,MAAM,CAACI,MAAM;IACtBW,eAAe,EAAEf,MAAM,CAACI;;CAE3B,CAAC;AAEF,MAAMwB,aAAa,gBAAG9B,GAAG,CAACmB,IAAI,CAAC,eAAe,EAAE;EAC9CC,OAAO,EAAE;IAAEb,OAAO,EAAEL,MAAM,CAACI,MAAM;IAAEK,OAAO,EAAET,MAAM,CAACI;EAAM;CAC1D,CAAC;AAEF,OAAM,MAAOyB,YAAa,sBAAQ9B,QAAQ,CAACkB,IAAI,CAC7CD,oBAAoB,EACpBO,kBAAkB,EAClBC,eAAe,EACfE,iBAAiB,EACjBC,aAAa,EACbC,aAAa,CACd","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sideline/domain",
3
- "version": "0.1.2",
3
+ "version": "0.3.0",
4
4
  "description": "The domain template",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -12,6 +12,7 @@
12
12
  "dependencies": {
13
13
  "@effect/experimental": "0.58.0",
14
14
  "@effect/platform": "0.94.5",
15
+ "@effect/rpc": "0.73.0",
15
16
  "@effect/sql": "0.49.0",
16
17
  "effect": "3.19.18"
17
18
  },