@sideline/domain 0.2.0 → 0.4.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 (139) hide show
  1. package/dist/cjs/api/AgeThresholdApi.js +6 -6
  2. package/dist/cjs/api/AgeThresholdApi.js.map +1 -1
  3. package/dist/cjs/api/Auth.js +2 -13
  4. package/dist/cjs/api/Auth.js.map +1 -1
  5. package/dist/cjs/api/Roster.js +1 -5
  6. package/dist/cjs/api/Roster.js.map +1 -1
  7. package/dist/cjs/api/TrainingTypeApi.js +115 -0
  8. package/dist/cjs/api/TrainingTypeApi.js.map +1 -0
  9. package/dist/cjs/index.js +29 -1
  10. package/dist/cjs/models/ChannelSyncEvent.js +28 -0
  11. package/dist/cjs/models/ChannelSyncEvent.js.map +1 -0
  12. package/dist/cjs/models/Discord.js +9 -0
  13. package/dist/cjs/models/Discord.js.map +1 -0
  14. package/dist/cjs/models/DiscordChannelMapping.js +21 -0
  15. package/dist/cjs/models/DiscordChannelMapping.js.map +1 -0
  16. package/dist/cjs/models/DiscordRoleMapping.js +20 -0
  17. package/dist/cjs/models/DiscordRoleMapping.js.map +1 -0
  18. package/dist/cjs/models/RoleSyncEvent.js +28 -0
  19. package/dist/cjs/models/RoleSyncEvent.js.map +1 -0
  20. package/dist/cjs/models/TeamMember.js +1 -0
  21. package/dist/cjs/models/TeamMember.js.map +1 -1
  22. package/dist/cjs/models/TrainingType.js +18 -0
  23. package/dist/cjs/models/TrainingType.js.map +1 -0
  24. package/dist/cjs/models/User.js +1 -6
  25. package/dist/cjs/models/User.js.map +1 -1
  26. package/dist/cjs/rpc/SyncRpcs.js +12 -0
  27. package/dist/cjs/rpc/SyncRpcs.js.map +1 -0
  28. package/dist/cjs/rpc/channel/ChannelRpcEvents.js +44 -0
  29. package/dist/cjs/rpc/channel/ChannelRpcEvents.js.map +1 -0
  30. package/dist/cjs/rpc/channel/ChannelRpcGroup.js +45 -0
  31. package/dist/cjs/rpc/channel/ChannelRpcGroup.js.map +1 -0
  32. package/dist/cjs/rpc/channel/ChannelRpcModels.js +17 -0
  33. package/dist/cjs/rpc/channel/ChannelRpcModels.js.map +1 -0
  34. package/dist/cjs/rpc/role/RoleRpcEvents.js +44 -0
  35. package/dist/cjs/rpc/role/RoleRpcEvents.js.map +1 -0
  36. package/dist/cjs/rpc/role/RoleRpcGroup.js +44 -0
  37. package/dist/cjs/rpc/role/RoleRpcGroup.js.map +1 -0
  38. package/dist/cjs/rpc/role/RoleRpcModels.js +16 -0
  39. package/dist/cjs/rpc/role/RoleRpcModels.js.map +1 -0
  40. package/dist/dts/api/AgeThresholdApi.d.ts +18 -18
  41. package/dist/dts/api/Auth.d.ts +0 -40
  42. package/dist/dts/api/Auth.d.ts.map +1 -1
  43. package/dist/dts/api/Roster.d.ts +2 -18
  44. package/dist/dts/api/Roster.d.ts.map +1 -1
  45. package/dist/dts/api/TrainingTypeApi.d.ts +141 -0
  46. package/dist/dts/api/TrainingTypeApi.d.ts.map +1 -0
  47. package/dist/dts/index.d.ts +14 -0
  48. package/dist/dts/index.d.ts.map +1 -1
  49. package/dist/dts/models/ChannelSyncEvent.d.ts +164 -0
  50. package/dist/dts/models/ChannelSyncEvent.d.ts.map +1 -0
  51. package/dist/dts/models/Discord.d.ts +4 -0
  52. package/dist/dts/models/Discord.d.ts.map +1 -0
  53. package/dist/dts/models/DiscordChannelMapping.d.ts +97 -0
  54. package/dist/dts/models/DiscordChannelMapping.d.ts.map +1 -0
  55. package/dist/dts/models/DiscordRoleMapping.d.ts +84 -0
  56. package/dist/dts/models/DiscordRoleMapping.d.ts.map +1 -0
  57. package/dist/dts/models/RoleSyncEvent.d.ts +164 -0
  58. package/dist/dts/models/RoleSyncEvent.d.ts.map +1 -0
  59. package/dist/dts/models/TeamMember.d.ts +30 -0
  60. package/dist/dts/models/TeamMember.d.ts.map +1 -1
  61. package/dist/dts/models/TrainingType.d.ts +71 -0
  62. package/dist/dts/models/TrainingType.d.ts.map +1 -0
  63. package/dist/dts/models/User.d.ts +0 -43
  64. package/dist/dts/models/User.d.ts.map +1 -1
  65. package/dist/dts/rpc/SyncRpcs.d.ts +41 -0
  66. package/dist/dts/rpc/SyncRpcs.d.ts.map +1 -0
  67. package/dist/dts/rpc/channel/ChannelRpcEvents.d.ts +51 -0
  68. package/dist/dts/rpc/channel/ChannelRpcEvents.d.ts.map +1 -0
  69. package/dist/dts/rpc/channel/ChannelRpcGroup.d.ts +23 -0
  70. package/dist/dts/rpc/channel/ChannelRpcGroup.d.ts.map +1 -0
  71. package/dist/dts/rpc/channel/ChannelRpcModels.d.ts +28 -0
  72. package/dist/dts/rpc/channel/ChannelRpcModels.d.ts.map +1 -0
  73. package/dist/dts/rpc/role/RoleRpcEvents.d.ts +51 -0
  74. package/dist/dts/rpc/role/RoleRpcEvents.d.ts.map +1 -0
  75. package/dist/dts/rpc/role/RoleRpcGroup.d.ts +22 -0
  76. package/dist/dts/rpc/role/RoleRpcGroup.d.ts.map +1 -0
  77. package/dist/dts/rpc/role/RoleRpcModels.d.ts +24 -0
  78. package/dist/dts/rpc/role/RoleRpcModels.d.ts.map +1 -0
  79. package/dist/esm/api/AgeThresholdApi.js +6 -6
  80. package/dist/esm/api/AgeThresholdApi.js.map +1 -1
  81. package/dist/esm/api/Auth.js +3 -14
  82. package/dist/esm/api/Auth.js.map +1 -1
  83. package/dist/esm/api/Roster.js +2 -6
  84. package/dist/esm/api/Roster.js.map +1 -1
  85. package/dist/esm/api/TrainingTypeApi.js +99 -0
  86. package/dist/esm/api/TrainingTypeApi.js.map +1 -0
  87. package/dist/esm/index.js +14 -0
  88. package/dist/esm/index.js.map +1 -1
  89. package/dist/esm/models/ChannelSyncEvent.js +21 -0
  90. package/dist/esm/models/ChannelSyncEvent.js.map +1 -0
  91. package/dist/esm/models/Discord.js +3 -0
  92. package/dist/esm/models/Discord.js.map +1 -0
  93. package/dist/esm/models/DiscordChannelMapping.js +14 -0
  94. package/dist/esm/models/DiscordChannelMapping.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/RoleSyncEvent.js +21 -0
  98. package/dist/esm/models/RoleSyncEvent.js.map +1 -0
  99. package/dist/esm/models/TeamMember.js +1 -0
  100. package/dist/esm/models/TeamMember.js.map +1 -1
  101. package/dist/esm/models/TrainingType.js +11 -0
  102. package/dist/esm/models/TrainingType.js.map +1 -0
  103. package/dist/esm/models/User.js +0 -5
  104. package/dist/esm/models/User.js.map +1 -1
  105. package/dist/esm/rpc/SyncRpcs.js +5 -0
  106. package/dist/esm/rpc/SyncRpcs.js.map +1 -0
  107. package/dist/esm/rpc/channel/ChannelRpcEvents.js +34 -0
  108. package/dist/esm/rpc/channel/ChannelRpcEvents.js.map +1 -0
  109. package/dist/esm/rpc/channel/ChannelRpcGroup.js +39 -0
  110. package/dist/esm/rpc/channel/ChannelRpcGroup.js.map +1 -0
  111. package/dist/esm/rpc/channel/ChannelRpcModels.js +10 -0
  112. package/dist/esm/rpc/channel/ChannelRpcModels.js.map +1 -0
  113. package/dist/esm/rpc/role/RoleRpcEvents.js +34 -0
  114. package/dist/esm/rpc/role/RoleRpcEvents.js.map +1 -0
  115. package/dist/esm/rpc/role/RoleRpcGroup.js +38 -0
  116. package/dist/esm/rpc/role/RoleRpcGroup.js.map +1 -0
  117. package/dist/esm/rpc/role/RoleRpcModels.js +9 -0
  118. package/dist/esm/rpc/role/RoleRpcModels.js.map +1 -0
  119. package/package.json +2 -1
  120. package/src/api/AgeThresholdApi.ts +6 -6
  121. package/src/api/Auth.ts +1 -12
  122. package/src/api/Roster.ts +1 -5
  123. package/src/api/TrainingTypeApi.ts +143 -0
  124. package/src/index.ts +21 -0
  125. package/src/models/ChannelSyncEvent.ts +30 -0
  126. package/src/models/Discord.ts +4 -0
  127. package/src/models/DiscordChannelMapping.ts +18 -0
  128. package/src/models/DiscordRoleMapping.ts +15 -0
  129. package/src/models/RoleSyncEvent.ts +30 -0
  130. package/src/models/TeamMember.ts +1 -0
  131. package/src/models/TrainingType.ts +13 -0
  132. package/src/models/User.ts +0 -9
  133. package/src/rpc/SyncRpcs.ts +5 -0
  134. package/src/rpc/channel/ChannelRpcEvents.ts +57 -0
  135. package/src/rpc/channel/ChannelRpcGroup.ts +33 -0
  136. package/src/rpc/channel/ChannelRpcModels.ts +10 -0
  137. package/src/rpc/role/RoleRpcEvents.ts +48 -0
  138. package/src/rpc/role/RoleRpcGroup.ts +33 -0
  139. package/src/rpc/role/RoleRpcModels.ts +9 -0
@@ -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":[]}
@@ -8,6 +8,7 @@ export class TeamMember extends /*#__PURE__*/Model.Class('TeamMember')({
8
8
  team_id: TeamId,
9
9
  user_id: UserId,
10
10
  active: Schema.Boolean,
11
+ jersey_number: /*#__PURE__*/Model.FieldExcept('insert')(/*#__PURE__*/Schema.NullOr(Schema.Number)),
11
12
  joined_at: Model.DateTimeInsertFromDate
12
13
  }) {}
13
14
  //# sourceMappingURL=TeamMember.js.map
@@ -1 +1 @@
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":[]}
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","jersey_number","FieldExcept","NullOr","Number","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,aAAa,eAAEhB,KAAK,CAACiB,WAAW,CAAC,QAAQ,CAAC,cAAChB,MAAM,CAACiB,MAAM,CAACjB,MAAM,CAACkB,MAAM,CAAC,CAAC;EACxEC,SAAS,EAAEpB,KAAK,CAACqB;CAClB,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 TrainingTypeId = /*#__PURE__*/Schema.String.pipe(/*#__PURE__*/Schema.brand('TrainingTypeId'));
5
+ export class TrainingType extends /*#__PURE__*/Model.Class('TrainingType')({
6
+ id: /*#__PURE__*/Model.Generated(TrainingTypeId),
7
+ team_id: TeamId,
8
+ name: Schema.String,
9
+ created_at: Model.DateTimeInsertFromDate
10
+ }) {}
11
+ //# sourceMappingURL=TrainingType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrainingType.js","names":["Model","Schema","TeamId","TrainingTypeId","String","pipe","brand","TrainingType","Class","id","Generated","team_id","name","created_at","DateTimeInsertFromDate"],"sources":["../../../src/models/TrainingType.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,KAAK,QAAQ,aAAa;AACnC,SAASC,MAAM,QAAQ,QAAQ;AAC/B,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,OAAO,MAAMC,cAAc,gBAAGF,MAAM,CAACG,MAAM,CAACC,IAAI,cAACJ,MAAM,CAACK,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAGhF,OAAM,MAAOC,YAAa,sBAAQP,KAAK,CAACQ,KAAK,CAAe,cAAc,CAAC,CAAC;EAC1EC,EAAE,eAAET,KAAK,CAACU,SAAS,CAACP,cAAc,CAAC;EACnCQ,OAAO,EAAET,MAAM;EACfU,IAAI,EAAEX,MAAM,CAACG,MAAM;EACnBS,UAAU,EAAEb,KAAK,CAACc;CACnB,CAAC","ignoreList":[]}
@@ -2,8 +2,6 @@ import { Model } from '@effect/sql';
2
2
  import { Schema } from 'effect';
3
3
  export const UserId = /*#__PURE__*/Schema.String.pipe(/*#__PURE__*/Schema.brand('UserId'));
4
4
  export const Gender = /*#__PURE__*/Schema.Literal('male', 'female', 'other');
5
- export const Position = /*#__PURE__*/Schema.Literal('goalkeeper', 'defender', 'midfielder', 'forward');
6
- export const Proficiency = /*#__PURE__*/Schema.Literal('beginner', 'intermediate', 'advanced', 'pro');
7
5
  export const Locale = /*#__PURE__*/Schema.Literal('en', 'cs');
8
6
  export class User extends /*#__PURE__*/Model.Class('User')({
9
7
  id: /*#__PURE__*/Model.Generated(UserId),
@@ -15,9 +13,6 @@ export class User extends /*#__PURE__*/Model.Class('User')({
15
13
  name: /*#__PURE__*/Schema.NullOr(Schema.String),
16
14
  birth_year: /*#__PURE__*/Schema.NullOr(Schema.Number),
17
15
  gender: /*#__PURE__*/Schema.NullOr(Gender),
18
- jersey_number: /*#__PURE__*/Schema.NullOr(Schema.Number),
19
- position: /*#__PURE__*/Schema.NullOr(Position),
20
- proficiency: /*#__PURE__*/Schema.NullOr(Proficiency),
21
16
  locale: Locale,
22
17
  created_at: Model.DateTimeInsertFromDate,
23
18
  is_profile_complete: Schema.Boolean,
@@ -1 +1 @@
1
- {"version":3,"file":"User.js","names":["Model","Schema","UserId","String","pipe","brand","Gender","Literal","Position","Proficiency","Locale","User","Class","id","Generated","discord_id","discord_username","discord_avatar","NullOr","discord_access_token","Sensitive","discord_refresh_token","name","birth_year","Number","gender","jersey_number","position","proficiency","locale","created_at","DateTimeInsertFromDate","is_profile_complete","Boolean","updated_at","DateTimeUpdateFromDate"],"sources":["../../../src/models/User.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,KAAK,QAAQ,aAAa;AACnC,SAASC,MAAM,QAAQ,QAAQ;AAE/B,OAAO,MAAMC,MAAM,gBAAGD,MAAM,CAACE,MAAM,CAACC,IAAI,cAACH,MAAM,CAACI,KAAK,CAAC,QAAQ,CAAC,CAAC;AAGhE,OAAO,MAAMC,MAAM,gBAAGL,MAAM,CAACM,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC;AAG/D,OAAO,MAAMC,QAAQ,gBAAGP,MAAM,CAACM,OAAO,CAAC,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,CAAC;AAGzF,OAAO,MAAME,WAAW,gBAAGR,MAAM,CAACM,OAAO,CAAC,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,KAAK,CAAC;AAGxF,OAAO,MAAMG,MAAM,gBAAGT,MAAM,CAACM,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;AAGhD,OAAM,MAAOI,IAAK,sBAAQX,KAAK,CAACY,KAAK,CAAO,MAAM,CAAC,CAAC;EAClDC,EAAE,eAAEb,KAAK,CAACc,SAAS,CAACZ,MAAM,CAAC;EAC3Ba,UAAU,EAAEd,MAAM,CAACE,MAAM;EACzBa,gBAAgB,EAAEf,MAAM,CAACE,MAAM;EAC/Bc,cAAc,eAAEhB,MAAM,CAACiB,MAAM,CAACjB,MAAM,CAACE,MAAM,CAAC;EAC5CgB,oBAAoB,eAAEnB,KAAK,CAACoB,SAAS,CAACnB,MAAM,CAACE,MAAM,CAAC;EACpDkB,qBAAqB,eAAErB,KAAK,CAACoB,SAAS,cAACnB,MAAM,CAACiB,MAAM,CAACjB,MAAM,CAACE,MAAM,CAAC,CAAC;EACpEmB,IAAI,eAAErB,MAAM,CAACiB,MAAM,CAACjB,MAAM,CAACE,MAAM,CAAC;EAClCoB,UAAU,eAAEtB,MAAM,CAACiB,MAAM,CAACjB,MAAM,CAACuB,MAAM,CAAC;EACxCC,MAAM,eAAExB,MAAM,CAACiB,MAAM,CAACZ,MAAM,CAAC;EAC7BoB,aAAa,eAAEzB,MAAM,CAACiB,MAAM,CAACjB,MAAM,CAACuB,MAAM,CAAC;EAC3CG,QAAQ,eAAE1B,MAAM,CAACiB,MAAM,CAACV,QAAQ,CAAC;EACjCoB,WAAW,eAAE3B,MAAM,CAACiB,MAAM,CAACT,WAAW,CAAC;EACvCoB,MAAM,EAAEnB,MAAM;EACdoB,UAAU,EAAE9B,KAAK,CAAC+B,sBAAsB;EACxCC,mBAAmB,EAAE/B,MAAM,CAACgC,OAAO;EACnCC,UAAU,EAAElC,KAAK,CAACmC;CACnB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"User.js","names":["Model","Schema","UserId","String","pipe","brand","Gender","Literal","Locale","User","Class","id","Generated","discord_id","discord_username","discord_avatar","NullOr","discord_access_token","Sensitive","discord_refresh_token","name","birth_year","Number","gender","locale","created_at","DateTimeInsertFromDate","is_profile_complete","Boolean","updated_at","DateTimeUpdateFromDate"],"sources":["../../../src/models/User.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,KAAK,QAAQ,aAAa;AACnC,SAASC,MAAM,QAAQ,QAAQ;AAE/B,OAAO,MAAMC,MAAM,gBAAGD,MAAM,CAACE,MAAM,CAACC,IAAI,cAACH,MAAM,CAACI,KAAK,CAAC,QAAQ,CAAC,CAAC;AAGhE,OAAO,MAAMC,MAAM,gBAAGL,MAAM,CAACM,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC;AAG/D,OAAO,MAAMC,MAAM,gBAAGP,MAAM,CAACM,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;AAGhD,OAAM,MAAOE,IAAK,sBAAQT,KAAK,CAACU,KAAK,CAAO,MAAM,CAAC,CAAC;EAClDC,EAAE,eAAEX,KAAK,CAACY,SAAS,CAACV,MAAM,CAAC;EAC3BW,UAAU,EAAEZ,MAAM,CAACE,MAAM;EACzBW,gBAAgB,EAAEb,MAAM,CAACE,MAAM;EAC/BY,cAAc,eAAEd,MAAM,CAACe,MAAM,CAACf,MAAM,CAACE,MAAM,CAAC;EAC5Cc,oBAAoB,eAAEjB,KAAK,CAACkB,SAAS,CAACjB,MAAM,CAACE,MAAM,CAAC;EACpDgB,qBAAqB,eAAEnB,KAAK,CAACkB,SAAS,cAACjB,MAAM,CAACe,MAAM,CAACf,MAAM,CAACE,MAAM,CAAC,CAAC;EACpEiB,IAAI,eAAEnB,MAAM,CAACe,MAAM,CAACf,MAAM,CAACE,MAAM,CAAC;EAClCkB,UAAU,eAAEpB,MAAM,CAACe,MAAM,CAACf,MAAM,CAACqB,MAAM,CAAC;EACxCC,MAAM,eAAEtB,MAAM,CAACe,MAAM,CAACV,MAAM,CAAC;EAC7BkB,MAAM,EAAEhB,MAAM;EACdiB,UAAU,EAAEzB,KAAK,CAAC0B,sBAAsB;EACxCC,mBAAmB,EAAE1B,MAAM,CAAC2B,OAAO;EACnCC,UAAU,EAAE7B,KAAK,CAAC8B;CACnB,CAAC","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import { RpcGroup } from '@effect/rpc';
2
+ import { ChannelRpcGroup } from './channel/ChannelRpcGroup.js';
3
+ import { RoleRpcGroup } from './role/RoleRpcGroup.js';
4
+ export class SyncRpcs extends /*#__PURE__*/RpcGroup.make().merge(RoleRpcGroup, ChannelRpcGroup) {}
5
+ //# sourceMappingURL=SyncRpcs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SyncRpcs.js","names":["RpcGroup","ChannelRpcGroup","RoleRpcGroup","SyncRpcs","make","merge"],"sources":["../../../src/rpc/SyncRpcs.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAQ,QAAQ,aAAa;AACtC,SAASC,eAAe,QAAQ,8BAA8B;AAC9D,SAASC,YAAY,QAAQ,wBAAwB;AAErD,OAAM,MAAOC,QAAS,sBAAQH,QAAQ,CAACI,IAAI,EAAE,CAACC,KAAK,CAACH,YAAY,EAAED,eAAe,CAAC","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ import { Schema } from 'effect';
2
+ import { ChannelSyncEvent, Discord, SubgroupModel, Team, TeamMember } from '../../index.js';
3
+ export class ChannelCreatedEvent extends /*#__PURE__*/Schema.TaggedClass()('channel_created', {
4
+ id: ChannelSyncEvent.ChannelSyncEventId,
5
+ team_id: Team.TeamId,
6
+ guild_id: Discord.Snowflake,
7
+ subgroup_id: SubgroupModel.SubgroupId,
8
+ subgroup_name: Schema.String
9
+ }) {}
10
+ export class ChannelDeletedEvent extends /*#__PURE__*/Schema.TaggedClass()('channel_deleted', {
11
+ id: ChannelSyncEvent.ChannelSyncEventId,
12
+ team_id: Team.TeamId,
13
+ guild_id: Discord.Snowflake,
14
+ subgroup_id: SubgroupModel.SubgroupId
15
+ }) {}
16
+ export class ChannelMemberAddedEvent extends /*#__PURE__*/Schema.TaggedClass()('channel_member_added', {
17
+ id: ChannelSyncEvent.ChannelSyncEventId,
18
+ team_id: Team.TeamId,
19
+ guild_id: Discord.Snowflake,
20
+ subgroup_id: SubgroupModel.SubgroupId,
21
+ subgroup_name: Schema.String,
22
+ team_member_id: TeamMember.TeamMemberId,
23
+ discord_user_id: Discord.Snowflake
24
+ }) {}
25
+ export class ChannelMemberRemovedEvent extends /*#__PURE__*/Schema.TaggedClass()('channel_member_removed', {
26
+ id: ChannelSyncEvent.ChannelSyncEventId,
27
+ team_id: Team.TeamId,
28
+ guild_id: Discord.Snowflake,
29
+ subgroup_id: SubgroupModel.SubgroupId,
30
+ team_member_id: TeamMember.TeamMemberId,
31
+ discord_user_id: Discord.Snowflake
32
+ }) {}
33
+ export const UnprocessedChannelEvent = /*#__PURE__*/Schema.Union(ChannelCreatedEvent, ChannelDeletedEvent, ChannelMemberAddedEvent, ChannelMemberRemovedEvent);
34
+ //# sourceMappingURL=ChannelRpcEvents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChannelRpcEvents.js","names":["Schema","ChannelSyncEvent","Discord","SubgroupModel","Team","TeamMember","ChannelCreatedEvent","TaggedClass","id","ChannelSyncEventId","team_id","TeamId","guild_id","Snowflake","subgroup_id","SubgroupId","subgroup_name","String","ChannelDeletedEvent","ChannelMemberAddedEvent","team_member_id","TeamMemberId","discord_user_id","ChannelMemberRemovedEvent","UnprocessedChannelEvent","Union"],"sources":["../../../../src/rpc/channel/ChannelRpcEvents.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAM,QAAQ,QAAQ;AAC/B,SAASC,gBAAgB,EAAEC,OAAO,EAAEC,aAAa,EAAEC,IAAI,EAAEC,UAAU,QAAQ,gBAAa;AAExF,OAAM,MAAOC,mBAAoB,sBAAQN,MAAM,CAACO,WAAW,EAAuB,CAChF,iBAAiB,EACjB;EACEC,EAAE,EAAEP,gBAAgB,CAACQ,kBAAkB;EACvCC,OAAO,EAAEN,IAAI,CAACO,MAAM;EACpBC,QAAQ,EAAEV,OAAO,CAACW,SAAS;EAC3BC,WAAW,EAAEX,aAAa,CAACY,UAAU;EACrCC,aAAa,EAAEhB,MAAM,CAACiB;CACvB,CACF;AAED,OAAM,MAAOC,mBAAoB,sBAAQlB,MAAM,CAACO,WAAW,EAAuB,CAChF,iBAAiB,EACjB;EACEC,EAAE,EAAEP,gBAAgB,CAACQ,kBAAkB;EACvCC,OAAO,EAAEN,IAAI,CAACO,MAAM;EACpBC,QAAQ,EAAEV,OAAO,CAACW,SAAS;EAC3BC,WAAW,EAAEX,aAAa,CAACY;CAC5B,CACF;AAED,OAAM,MAAOI,uBAAwB,sBAAQnB,MAAM,CAACO,WAAW,EAA2B,CACxF,sBAAsB,EACtB;EACEC,EAAE,EAAEP,gBAAgB,CAACQ,kBAAkB;EACvCC,OAAO,EAAEN,IAAI,CAACO,MAAM;EACpBC,QAAQ,EAAEV,OAAO,CAACW,SAAS;EAC3BC,WAAW,EAAEX,aAAa,CAACY,UAAU;EACrCC,aAAa,EAAEhB,MAAM,CAACiB,MAAM;EAC5BG,cAAc,EAAEf,UAAU,CAACgB,YAAY;EACvCC,eAAe,EAAEpB,OAAO,CAACW;CAC1B,CACF;AAED,OAAM,MAAOU,yBAA0B,sBAAQvB,MAAM,CAACO,WAAW,EAA6B,CAC5F,wBAAwB,EACxB;EACEC,EAAE,EAAEP,gBAAgB,CAACQ,kBAAkB;EACvCC,OAAO,EAAEN,IAAI,CAACO,MAAM;EACpBC,QAAQ,EAAEV,OAAO,CAACW,SAAS;EAC3BC,WAAW,EAAEX,aAAa,CAACY,UAAU;EACrCK,cAAc,EAAEf,UAAU,CAACgB,YAAY;EACvCC,eAAe,EAAEpB,OAAO,CAACW;CAC1B,CACF;AAED,OAAO,MAAMW,uBAAuB,gBAAGxB,MAAM,CAACyB,KAAK,CACjDnB,mBAAmB,EACnBY,mBAAmB,EACnBC,uBAAuB,EACvBI,yBAAyB,CAC1B","ignoreList":[]}
@@ -0,0 +1,39 @@
1
+ import { Rpc, RpcGroup } from '@effect/rpc';
2
+ import { Schema } from 'effect';
3
+ import { ChannelSyncEvent, Discord, SubgroupModel, Team } from '../../index.js';
4
+ import { UnprocessedChannelEvent } from './ChannelRpcEvents.js';
5
+ import { ChannelMapping } from './ChannelRpcModels.js';
6
+ export const ChannelRpcGroup = /*#__PURE__*/RpcGroup.make(Rpc.make('GetUnprocessedEvents', {
7
+ payload: {
8
+ limit: Schema.Number
9
+ },
10
+ success: Schema.Array(UnprocessedChannelEvent)
11
+ }), Rpc.make('MarkEventProcessed', {
12
+ payload: {
13
+ id: ChannelSyncEvent.ChannelSyncEventId
14
+ }
15
+ }), Rpc.make('MarkEventFailed', {
16
+ payload: {
17
+ id: ChannelSyncEvent.ChannelSyncEventId,
18
+ error: Schema.String
19
+ }
20
+ }), Rpc.make('GetMapping', {
21
+ payload: {
22
+ team_id: Team.TeamId,
23
+ subgroup_id: SubgroupModel.SubgroupId
24
+ },
25
+ success: Schema.OptionFromNullOr(ChannelMapping)
26
+ }), Rpc.make('UpsertMapping', {
27
+ payload: {
28
+ team_id: Team.TeamId,
29
+ subgroup_id: SubgroupModel.SubgroupId,
30
+ discord_channel_id: Discord.Snowflake,
31
+ discord_role_id: Discord.Snowflake
32
+ }
33
+ }), Rpc.make('DeleteMapping', {
34
+ payload: {
35
+ team_id: Team.TeamId,
36
+ subgroup_id: SubgroupModel.SubgroupId
37
+ }
38
+ })).prefix('Channel/');
39
+ //# sourceMappingURL=ChannelRpcGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChannelRpcGroup.js","names":["Rpc","RpcGroup","Schema","ChannelSyncEvent","Discord","SubgroupModel","Team","UnprocessedChannelEvent","ChannelMapping","ChannelRpcGroup","make","payload","limit","Number","success","Array","id","ChannelSyncEventId","error","String","team_id","TeamId","subgroup_id","SubgroupId","OptionFromNullOr","discord_channel_id","Snowflake","discord_role_id","prefix"],"sources":["../../../../src/rpc/channel/ChannelRpcGroup.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAG,EAAEC,QAAQ,QAAQ,aAAa;AAC3C,SAASC,MAAM,QAAQ,QAAQ;AAC/B,SAASC,gBAAgB,EAAEC,OAAO,EAAEC,aAAa,EAAEC,IAAI,QAAQ,gBAAa;AAC5E,SAASC,uBAAuB,QAAQ,uBAAuB;AAC/D,SAASC,cAAc,QAAQ,uBAAuB;AAEtD,OAAO,MAAMC,eAAe,gBAAGR,QAAQ,CAACS,IAAI,CAC1CV,GAAG,CAACU,IAAI,CAAC,sBAAsB,EAAE;EAC/BC,OAAO,EAAE;IAAEC,KAAK,EAAEV,MAAM,CAACW;EAAM,CAAE;EACjCC,OAAO,EAAEZ,MAAM,CAACa,KAAK,CAACR,uBAAuB;CAC9C,CAAC,EACFP,GAAG,CAACU,IAAI,CAAC,oBAAoB,EAAE;EAC7BC,OAAO,EAAE;IAAEK,EAAE,EAAEb,gBAAgB,CAACc;EAAkB;CACnD,CAAC,EACFjB,GAAG,CAACU,IAAI,CAAC,iBAAiB,EAAE;EAC1BC,OAAO,EAAE;IAAEK,EAAE,EAAEb,gBAAgB,CAACc,kBAAkB;IAAEC,KAAK,EAAEhB,MAAM,CAACiB;EAAM;CACzE,CAAC,EACFnB,GAAG,CAACU,IAAI,CAAC,YAAY,EAAE;EACrBC,OAAO,EAAE;IAAES,OAAO,EAAEd,IAAI,CAACe,MAAM;IAAEC,WAAW,EAAEjB,aAAa,CAACkB;EAAU,CAAE;EACxET,OAAO,EAAEZ,MAAM,CAACsB,gBAAgB,CAAChB,cAAc;CAChD,CAAC,EACFR,GAAG,CAACU,IAAI,CAAC,eAAe,EAAE;EACxBC,OAAO,EAAE;IACPS,OAAO,EAAEd,IAAI,CAACe,MAAM;IACpBC,WAAW,EAAEjB,aAAa,CAACkB,UAAU;IACrCE,kBAAkB,EAAErB,OAAO,CAACsB,SAAS;IACrCC,eAAe,EAAEvB,OAAO,CAACsB;;CAE5B,CAAC,EACF1B,GAAG,CAACU,IAAI,CAAC,eAAe,EAAE;EACxBC,OAAO,EAAE;IAAES,OAAO,EAAEd,IAAI,CAACe,MAAM;IAAEC,WAAW,EAAEjB,aAAa,CAACkB;EAAU;CACvE,CAAC,CACH,CAACK,MAAM,CAAC,UAAU,CAAC","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ import { Schema } from 'effect';
2
+ import { Discord, DiscordChannelMapping, SubgroupModel, Team } from '../../index.js';
3
+ export class ChannelMapping extends /*#__PURE__*/Schema.Class('ChannelMapping')({
4
+ id: DiscordChannelMapping.DiscordChannelMappingId,
5
+ team_id: Team.TeamId,
6
+ subgroup_id: SubgroupModel.SubgroupId,
7
+ discord_channel_id: Discord.Snowflake,
8
+ discord_role_id: /*#__PURE__*/Schema.OptionFromNullOr(Discord.Snowflake)
9
+ }) {}
10
+ //# sourceMappingURL=ChannelRpcModels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChannelRpcModels.js","names":["Schema","Discord","DiscordChannelMapping","SubgroupModel","Team","ChannelMapping","Class","id","DiscordChannelMappingId","team_id","TeamId","subgroup_id","SubgroupId","discord_channel_id","Snowflake","discord_role_id","OptionFromNullOr"],"sources":["../../../../src/rpc/channel/ChannelRpcModels.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAM,QAAQ,QAAQ;AAC/B,SAASC,OAAO,EAAEC,qBAAqB,EAAEC,aAAa,EAAEC,IAAI,QAAQ,gBAAa;AAEjF,OAAM,MAAOC,cAAe,sBAAQL,MAAM,CAACM,KAAK,CAAiB,gBAAgB,CAAC,CAAC;EACjFC,EAAE,EAAEL,qBAAqB,CAACM,uBAAuB;EACjDC,OAAO,EAAEL,IAAI,CAACM,MAAM;EACpBC,WAAW,EAAER,aAAa,CAACS,UAAU;EACrCC,kBAAkB,EAAEZ,OAAO,CAACa,SAAS;EACrCC,eAAe,eAAEf,MAAM,CAACgB,gBAAgB,CAACf,OAAO,CAACa,SAAS;CAC3D,CAAC","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ import { Schema } from 'effect';
2
+ import { Discord, Role, RoleSyncEvent, Team, TeamMember } from '../../index.js';
3
+ export class RoleCreatedEvent extends /*#__PURE__*/Schema.TaggedClass()('role_created', {
4
+ id: RoleSyncEvent.RoleSyncEventId,
5
+ team_id: Team.TeamId,
6
+ guild_id: Discord.Snowflake,
7
+ role_id: Role.RoleId,
8
+ role_name: Schema.String
9
+ }) {}
10
+ export class RoleDeletedEvent extends /*#__PURE__*/Schema.TaggedClass()('role_deleted', {
11
+ id: RoleSyncEvent.RoleSyncEventId,
12
+ team_id: Team.TeamId,
13
+ guild_id: Discord.Snowflake,
14
+ role_id: Role.RoleId
15
+ }) {}
16
+ export class RoleAssignedEvent extends /*#__PURE__*/Schema.TaggedClass()('role_assigned', {
17
+ id: RoleSyncEvent.RoleSyncEventId,
18
+ team_id: Team.TeamId,
19
+ guild_id: Discord.Snowflake,
20
+ role_id: Role.RoleId,
21
+ role_name: Schema.String,
22
+ team_member_id: TeamMember.TeamMemberId,
23
+ discord_user_id: Discord.Snowflake
24
+ }) {}
25
+ export class RoleUnassignedEvent extends /*#__PURE__*/Schema.TaggedClass()('role_unassigned', {
26
+ id: RoleSyncEvent.RoleSyncEventId,
27
+ team_id: Team.TeamId,
28
+ guild_id: Discord.Snowflake,
29
+ role_id: Role.RoleId,
30
+ team_member_id: TeamMember.TeamMemberId,
31
+ discord_user_id: Discord.Snowflake
32
+ }) {}
33
+ export const UnprocessedRoleEvent = /*#__PURE__*/Schema.Union(RoleCreatedEvent, RoleDeletedEvent, RoleAssignedEvent, RoleUnassignedEvent);
34
+ //# sourceMappingURL=RoleRpcEvents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RoleRpcEvents.js","names":["Schema","Discord","Role","RoleSyncEvent","Team","TeamMember","RoleCreatedEvent","TaggedClass","id","RoleSyncEventId","team_id","TeamId","guild_id","Snowflake","role_id","RoleId","role_name","String","RoleDeletedEvent","RoleAssignedEvent","team_member_id","TeamMemberId","discord_user_id","RoleUnassignedEvent","UnprocessedRoleEvent","Union"],"sources":["../../../../src/rpc/role/RoleRpcEvents.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAM,QAAQ,QAAQ;AAC/B,SAASC,OAAO,EAAEC,IAAI,EAAEC,aAAa,EAAEC,IAAI,EAAEC,UAAU,QAAQ,gBAAa;AAE5E,OAAM,MAAOC,gBAAiB,sBAAQN,MAAM,CAACO,WAAW,EAAoB,CAAC,cAAc,EAAE;EAC3FC,EAAE,EAAEL,aAAa,CAACM,eAAe;EACjCC,OAAO,EAAEN,IAAI,CAACO,MAAM;EACpBC,QAAQ,EAAEX,OAAO,CAACY,SAAS;EAC3BC,OAAO,EAAEZ,IAAI,CAACa,MAAM;EACpBC,SAAS,EAAEhB,MAAM,CAACiB;CACnB,CAAC;AAEF,OAAM,MAAOC,gBAAiB,sBAAQlB,MAAM,CAACO,WAAW,EAAoB,CAAC,cAAc,EAAE;EAC3FC,EAAE,EAAEL,aAAa,CAACM,eAAe;EACjCC,OAAO,EAAEN,IAAI,CAACO,MAAM;EACpBC,QAAQ,EAAEX,OAAO,CAACY,SAAS;EAC3BC,OAAO,EAAEZ,IAAI,CAACa;CACf,CAAC;AAEF,OAAM,MAAOI,iBAAkB,sBAAQnB,MAAM,CAACO,WAAW,EAAqB,CAAC,eAAe,EAAE;EAC9FC,EAAE,EAAEL,aAAa,CAACM,eAAe;EACjCC,OAAO,EAAEN,IAAI,CAACO,MAAM;EACpBC,QAAQ,EAAEX,OAAO,CAACY,SAAS;EAC3BC,OAAO,EAAEZ,IAAI,CAACa,MAAM;EACpBC,SAAS,EAAEhB,MAAM,CAACiB,MAAM;EACxBG,cAAc,EAAEf,UAAU,CAACgB,YAAY;EACvCC,eAAe,EAAErB,OAAO,CAACY;CAC1B,CAAC;AAEF,OAAM,MAAOU,mBAAoB,sBAAQvB,MAAM,CAACO,WAAW,EAAuB,CAChF,iBAAiB,EACjB;EACEC,EAAE,EAAEL,aAAa,CAACM,eAAe;EACjCC,OAAO,EAAEN,IAAI,CAACO,MAAM;EACpBC,QAAQ,EAAEX,OAAO,CAACY,SAAS;EAC3BC,OAAO,EAAEZ,IAAI,CAACa,MAAM;EACpBK,cAAc,EAAEf,UAAU,CAACgB,YAAY;EACvCC,eAAe,EAAErB,OAAO,CAACY;CAC1B,CACF;AAED,OAAO,MAAMW,oBAAoB,gBAAGxB,MAAM,CAACyB,KAAK,CAC9CnB,gBAAgB,EAChBY,gBAAgB,EAChBC,iBAAiB,EACjBI,mBAAmB,CACpB","ignoreList":[]}
@@ -0,0 +1,38 @@
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
+ export const RoleRpcGroup = /*#__PURE__*/RpcGroup.make(Rpc.make('GetUnprocessedEvents', {
7
+ payload: {
8
+ limit: Schema.Number
9
+ },
10
+ success: Schema.Array(UnprocessedRoleEvent)
11
+ }), Rpc.make('MarkEventProcessed', {
12
+ payload: {
13
+ id: RoleSyncEvent.RoleSyncEventId
14
+ }
15
+ }), Rpc.make('MarkEventFailed', {
16
+ payload: {
17
+ id: RoleSyncEvent.RoleSyncEventId,
18
+ error: Schema.String
19
+ }
20
+ }), Rpc.make('GetMapping', {
21
+ payload: {
22
+ team_id: Team.TeamId,
23
+ role_id: Role.RoleId
24
+ },
25
+ success: Schema.OptionFromNullOr(RoleMapping)
26
+ }), Rpc.make('UpsertMapping', {
27
+ payload: {
28
+ team_id: Team.TeamId,
29
+ role_id: Role.RoleId,
30
+ discord_role_id: Discord.Snowflake
31
+ }
32
+ }), Rpc.make('DeleteMapping', {
33
+ payload: {
34
+ team_id: Team.TeamId,
35
+ role_id: Role.RoleId
36
+ }
37
+ })).prefix('Role/');
38
+ //# sourceMappingURL=RoleRpcGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RoleRpcGroup.js","names":["Rpc","RpcGroup","Schema","Discord","Role","RoleSyncEvent","Team","UnprocessedRoleEvent","RoleMapping","RoleRpcGroup","make","payload","limit","Number","success","Array","id","RoleSyncEventId","error","String","team_id","TeamId","role_id","RoleId","OptionFromNullOr","discord_role_id","Snowflake","prefix"],"sources":["../../../../src/rpc/role/RoleRpcGroup.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAG,EAAEC,QAAQ,QAAQ,aAAa;AAC3C,SAASC,MAAM,QAAQ,QAAQ;AAC/B,SAASC,OAAO,EAAEC,IAAI,EAAEC,aAAa,EAAEC,IAAI,QAAQ,gBAAa;AAChE,SAASC,oBAAoB,QAAQ,oBAAoB;AACzD,SAASC,WAAW,QAAQ,oBAAoB;AAEhD,OAAO,MAAMC,YAAY,gBAAGR,QAAQ,CAACS,IAAI,CACvCV,GAAG,CAACU,IAAI,CAAC,sBAAsB,EAAE;EAC/BC,OAAO,EAAE;IAAEC,KAAK,EAAEV,MAAM,CAACW;EAAM,CAAE;EACjCC,OAAO,EAAEZ,MAAM,CAACa,KAAK,CAACR,oBAAoB;CAC3C,CAAC,EACFP,GAAG,CAACU,IAAI,CAAC,oBAAoB,EAAE;EAC7BC,OAAO,EAAE;IAAEK,EAAE,EAAEX,aAAa,CAACY;EAAe;CAC7C,CAAC,EACFjB,GAAG,CAACU,IAAI,CAAC,iBAAiB,EAAE;EAC1BC,OAAO,EAAE;IAAEK,EAAE,EAAEX,aAAa,CAACY,eAAe;IAAEC,KAAK,EAAEhB,MAAM,CAACiB;EAAM;CACnE,CAAC,EACFnB,GAAG,CAACU,IAAI,CAAC,YAAY,EAAE;EACrBC,OAAO,EAAE;IAAES,OAAO,EAAEd,IAAI,CAACe,MAAM;IAAEC,OAAO,EAAElB,IAAI,CAACmB;EAAM,CAAE;EACvDT,OAAO,EAAEZ,MAAM,CAACsB,gBAAgB,CAAChB,WAAW;CAC7C,CAAC,EACFR,GAAG,CAACU,IAAI,CAAC,eAAe,EAAE;EACxBC,OAAO,EAAE;IACPS,OAAO,EAAEd,IAAI,CAACe,MAAM;IACpBC,OAAO,EAAElB,IAAI,CAACmB,MAAM;IACpBE,eAAe,EAAEtB,OAAO,CAACuB;;CAE5B,CAAC,EAEF1B,GAAG,CAACU,IAAI,CAAC,eAAe,EAAE;EACxBC,OAAO,EAAE;IAAES,OAAO,EAAEd,IAAI,CAACe,MAAM;IAAEC,OAAO,EAAElB,IAAI,CAACmB;EAAM;CACtD,CAAC,CACH,CAACI,MAAM,CAAC,OAAO,CAAC","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ import { Schema } from 'effect';
2
+ import { Discord, DiscordRoleMapping, Role, Team } from '../../index.js';
3
+ export class RoleMapping extends /*#__PURE__*/Schema.Class('RoleMapping')({
4
+ id: DiscordRoleMapping.DiscordRoleMappingId,
5
+ team_id: Team.TeamId,
6
+ role_id: Role.RoleId,
7
+ discord_role_id: Discord.Snowflake
8
+ }) {}
9
+ //# sourceMappingURL=RoleRpcModels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RoleRpcModels.js","names":["Schema","Discord","DiscordRoleMapping","Role","Team","RoleMapping","Class","id","DiscordRoleMappingId","team_id","TeamId","role_id","RoleId","discord_role_id","Snowflake"],"sources":["../../../../src/rpc/role/RoleRpcModels.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAM,QAAQ,QAAQ;AAC/B,SAASC,OAAO,EAAEC,kBAAkB,EAAEC,IAAI,EAAEC,IAAI,QAAQ,gBAAa;AAErE,OAAM,MAAOC,WAAY,sBAAQL,MAAM,CAACM,KAAK,CAAc,aAAa,CAAC,CAAC;EACxEC,EAAE,EAAEL,kBAAkB,CAACM,oBAAoB;EAC3CC,OAAO,EAAEL,IAAI,CAACM,MAAM;EACpBC,OAAO,EAAER,IAAI,CAACS,MAAM;EACpBC,eAAe,EAAEZ,OAAO,CAACa;CAC1B,CAAC","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sideline/domain",
3
- "version": "0.2.0",
3
+ "version": "0.4.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
  },
@@ -11,8 +11,8 @@ export class AgeThresholdInfo extends Schema.Class<AgeThresholdInfo>('AgeThresho
11
11
  teamId: TeamId,
12
12
  roleId: RoleId,
13
13
  roleName: Schema.String,
14
- minAge: Schema.NullOr(Schema.Number),
15
- maxAge: Schema.NullOr(Schema.Number),
14
+ minAge: Schema.OptionFromNullOr(Schema.Number),
15
+ maxAge: Schema.OptionFromNullOr(Schema.Number),
16
16
  }) {}
17
17
 
18
18
  export class AgeRoleChange extends Schema.Class<AgeRoleChange>('AgeRoleChange')({
@@ -27,15 +27,15 @@ export class CreateAgeThresholdRequest extends Schema.Class<CreateAgeThresholdRe
27
27
  'CreateAgeThresholdRequest',
28
28
  )({
29
29
  roleId: RoleId,
30
- minAge: Schema.NullOr(Schema.Number),
31
- maxAge: Schema.NullOr(Schema.Number),
30
+ minAge: Schema.OptionFromNullOr(Schema.Number),
31
+ maxAge: Schema.OptionFromNullOr(Schema.Number),
32
32
  }) {}
33
33
 
34
34
  export class UpdateAgeThresholdRequest extends Schema.Class<UpdateAgeThresholdRequest>(
35
35
  'UpdateAgeThresholdRequest',
36
36
  )({
37
- minAge: Schema.NullOr(Schema.Number),
38
- maxAge: Schema.NullOr(Schema.Number),
37
+ minAge: Schema.OptionFromNullOr(Schema.Number),
38
+ maxAge: Schema.OptionFromNullOr(Schema.Number),
39
39
  }) {}
40
40
 
41
41
  export class Forbidden extends Schema.TaggedError<Forbidden>()(
package/src/api/Auth.ts CHANGED
@@ -8,7 +8,7 @@ import {
8
8
  import { Context, Schema } from 'effect';
9
9
  import { Permission } from '~/models/Role.js';
10
10
  import { TeamId } from '~/models/Team.js';
11
- import { Gender, Locale, Position, Proficiency, UserId } from '~/models/User.js';
11
+ import { Gender, Locale, UserId } from '~/models/User.js';
12
12
 
13
13
  export { UserId } from '~/models/User.js';
14
14
 
@@ -30,9 +30,6 @@ export class CurrentUser extends Schema.Class<CurrentUser>('CurrentUser')({
30
30
  name: Schema.NullOr(Schema.String),
31
31
  birthYear: Schema.NullOr(Schema.Number),
32
32
  gender: Schema.NullOr(Gender),
33
- jerseyNumber: Schema.NullOr(Schema.Number),
34
- position: Schema.NullOr(Position),
35
- proficiency: Schema.NullOr(Proficiency),
36
33
  locale: Locale,
37
34
  }) {}
38
35
 
@@ -56,11 +53,6 @@ export class CompleteProfileRequest extends Schema.Class<CompleteProfileRequest>
56
53
  }),
57
54
  ),
58
55
  gender: Gender,
59
- jerseyNumber: Schema.optionalWith(Schema.Number.pipe(Schema.int(), Schema.between(0, 99)), {
60
- as: 'Option',
61
- }),
62
- position: Position,
63
- proficiency: Proficiency,
64
56
  }) {}
65
57
 
66
58
  export class UpdateProfileRequest extends Schema.Class<UpdateProfileRequest>(
@@ -77,9 +69,6 @@ export class UpdateProfileRequest extends Schema.Class<UpdateProfileRequest>(
77
69
  ),
78
70
  ),
79
71
  gender: Schema.NullOr(Gender),
80
- jerseyNumber: Schema.NullOr(Schema.Number.pipe(Schema.int(), Schema.between(0, 99))),
81
- position: Schema.NullOr(Position),
82
- proficiency: Schema.NullOr(Proficiency),
83
72
  }) {}
84
73
 
85
74
  export class Unauthorized extends Schema.TaggedError<Unauthorized>()(
package/src/api/Roster.ts CHANGED
@@ -5,7 +5,7 @@ import { Permission } from '~/models/Role.js';
5
5
  import { RosterId } from '~/models/RosterModel.js';
6
6
  import { TeamId } from '~/models/Team.js';
7
7
  import { TeamMemberId } from '~/models/TeamMember.js';
8
- import { Gender, Position, Proficiency, UserId } from '~/models/User.js';
8
+ import { Gender, UserId } from '~/models/User.js';
9
9
 
10
10
  export class RosterPlayer extends Schema.Class<RosterPlayer>('RosterPlayer')({
11
11
  memberId: TeamMemberId,
@@ -16,8 +16,6 @@ export class RosterPlayer extends Schema.Class<RosterPlayer>('RosterPlayer')({
16
16
  birthYear: Schema.NullOr(Schema.Number),
17
17
  gender: Schema.NullOr(Gender),
18
18
  jerseyNumber: Schema.NullOr(Schema.Number),
19
- position: Schema.NullOr(Position),
20
- proficiency: Schema.NullOr(Proficiency),
21
19
  discordUsername: Schema.String,
22
20
  discordAvatar: Schema.NullOr(Schema.String),
23
21
  }) {}
@@ -27,8 +25,6 @@ export class UpdatePlayerRequest extends Schema.Class<UpdatePlayerRequest>('Upda
27
25
  birthYear: Schema.NullOr(Schema.Number),
28
26
  gender: Schema.NullOr(Gender),
29
27
  jerseyNumber: Schema.NullOr(Schema.Number),
30
- position: Schema.NullOr(Position),
31
- proficiency: Schema.NullOr(Proficiency),
32
28
  }) {}
33
29
 
34
30
  export class PlayerNotFound extends Schema.TaggedError<PlayerNotFound>()(
@@ -0,0 +1,143 @@
1
+ import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from '@effect/platform';
2
+ import { Schema } from 'effect';
3
+ import { AuthMiddleware } from '~/api/Auth.js';
4
+ import { TeamId } from '~/models/Team.js';
5
+ import { TeamMemberId } from '~/models/TeamMember.js';
6
+ import { TrainingTypeId } from '~/models/TrainingType.js';
7
+
8
+ export class TrainingTypeInfo extends Schema.Class<TrainingTypeInfo>('TrainingTypeInfo')({
9
+ trainingTypeId: TrainingTypeId,
10
+ teamId: TeamId,
11
+ name: Schema.String,
12
+ coachCount: Schema.Number,
13
+ }) {}
14
+
15
+ export class TrainingTypeDetail extends Schema.Class<TrainingTypeDetail>('TrainingTypeDetail')({
16
+ trainingTypeId: TrainingTypeId,
17
+ teamId: TeamId,
18
+ name: Schema.String,
19
+ canAdmin: Schema.Boolean,
20
+ coaches: Schema.Array(
21
+ Schema.Struct({
22
+ memberId: TeamMemberId,
23
+ name: Schema.NullOr(Schema.String),
24
+ discordUsername: Schema.String,
25
+ }),
26
+ ),
27
+ }) {}
28
+
29
+ export class TrainingTypeListResponse extends Schema.Class<TrainingTypeListResponse>(
30
+ 'TrainingTypeListResponse',
31
+ )({
32
+ canAdmin: Schema.Boolean,
33
+ trainingTypes: Schema.Array(TrainingTypeInfo),
34
+ }) {}
35
+
36
+ export class CreateTrainingTypeRequest extends Schema.Class<CreateTrainingTypeRequest>(
37
+ 'CreateTrainingTypeRequest',
38
+ )({
39
+ name: Schema.NonEmptyString,
40
+ }) {}
41
+
42
+ export class UpdateTrainingTypeRequest extends Schema.Class<UpdateTrainingTypeRequest>(
43
+ 'UpdateTrainingTypeRequest',
44
+ )({
45
+ name: Schema.NonEmptyString,
46
+ }) {}
47
+
48
+ export class AddTrainingTypeCoachRequest extends Schema.Class<AddTrainingTypeCoachRequest>(
49
+ 'AddTrainingTypeCoachRequest',
50
+ )({
51
+ memberId: TeamMemberId,
52
+ }) {}
53
+
54
+ export class TrainingTypeNotFound extends Schema.TaggedError<TrainingTypeNotFound>()(
55
+ 'TrainingTypeNotFound',
56
+ {},
57
+ HttpApiSchema.annotations({ status: 404 }),
58
+ ) {}
59
+
60
+ export class Forbidden extends Schema.TaggedError<Forbidden>()(
61
+ 'TrainingTypeForbidden',
62
+ {},
63
+ HttpApiSchema.annotations({ status: 403 }),
64
+ ) {}
65
+
66
+ export class MemberNotFound extends Schema.TaggedError<MemberNotFound>()(
67
+ 'TrainingTypeMemberNotFound',
68
+ {},
69
+ HttpApiSchema.annotations({ status: 404 }),
70
+ ) {}
71
+
72
+ export class TrainingTypeApiGroup extends HttpApiGroup.make('trainingType')
73
+ .add(
74
+ HttpApiEndpoint.get('listTrainingTypes', '/teams/:teamId/training-types')
75
+ .addSuccess(TrainingTypeListResponse)
76
+ .addError(Forbidden, { status: 403 })
77
+ .setPath(Schema.Struct({ teamId: TeamId }))
78
+ .middleware(AuthMiddleware),
79
+ )
80
+ .add(
81
+ HttpApiEndpoint.post('createTrainingType', '/teams/:teamId/training-types')
82
+ .addSuccess(TrainingTypeInfo, { status: 201 })
83
+ .addError(Forbidden, { status: 403 })
84
+ .setPath(Schema.Struct({ teamId: TeamId }))
85
+ .setPayload(CreateTrainingTypeRequest)
86
+ .middleware(AuthMiddleware),
87
+ )
88
+ .add(
89
+ HttpApiEndpoint.get('getTrainingType', '/teams/:teamId/training-types/:trainingTypeId')
90
+ .addSuccess(TrainingTypeDetail)
91
+ .addError(Forbidden, { status: 403 })
92
+ .addError(TrainingTypeNotFound, { status: 404 })
93
+ .setPath(Schema.Struct({ teamId: TeamId, trainingTypeId: TrainingTypeId }))
94
+ .middleware(AuthMiddleware),
95
+ )
96
+ .add(
97
+ HttpApiEndpoint.patch('updateTrainingType', '/teams/:teamId/training-types/:trainingTypeId')
98
+ .addSuccess(TrainingTypeInfo)
99
+ .addError(Forbidden, { status: 403 })
100
+ .addError(TrainingTypeNotFound, { status: 404 })
101
+ .setPath(Schema.Struct({ teamId: TeamId, trainingTypeId: TrainingTypeId }))
102
+ .setPayload(UpdateTrainingTypeRequest)
103
+ .middleware(AuthMiddleware),
104
+ )
105
+ .add(
106
+ HttpApiEndpoint.del('deleteTrainingType', '/teams/:teamId/training-types/:trainingTypeId')
107
+ .addSuccess(Schema.Void)
108
+ .addError(Forbidden, { status: 403 })
109
+ .addError(TrainingTypeNotFound, { status: 404 })
110
+ .setPath(Schema.Struct({ teamId: TeamId, trainingTypeId: TrainingTypeId }))
111
+ .middleware(AuthMiddleware),
112
+ )
113
+ .add(
114
+ HttpApiEndpoint.post(
115
+ 'addTrainingTypeCoach',
116
+ '/teams/:teamId/training-types/:trainingTypeId/coaches',
117
+ )
118
+ .addSuccess(Schema.Void, { status: 204 })
119
+ .addError(Forbidden, { status: 403 })
120
+ .addError(TrainingTypeNotFound, { status: 404 })
121
+ .addError(MemberNotFound, { status: 404 })
122
+ .setPath(Schema.Struct({ teamId: TeamId, trainingTypeId: TrainingTypeId }))
123
+ .setPayload(AddTrainingTypeCoachRequest)
124
+ .middleware(AuthMiddleware),
125
+ )
126
+ .add(
127
+ HttpApiEndpoint.del(
128
+ 'removeTrainingTypeCoach',
129
+ '/teams/:teamId/training-types/:trainingTypeId/coaches/:memberId',
130
+ )
131
+ .addSuccess(Schema.Void)
132
+ .addError(Forbidden, { status: 403 })
133
+ .addError(TrainingTypeNotFound, { status: 404 })
134
+ .addError(MemberNotFound, { status: 404 })
135
+ .setPath(
136
+ Schema.Struct({
137
+ teamId: TeamId,
138
+ trainingTypeId: TrainingTypeId,
139
+ memberId: TeamMemberId,
140
+ }),
141
+ )
142
+ .middleware(AuthMiddleware),
143
+ ) {}
package/src/index.ts CHANGED
@@ -14,14 +14,26 @@ export * as Roster from './api/Roster.js';
14
14
 
15
15
  export * as SubgroupApi from './api/SubgroupApi.js';
16
16
 
17
+ export * as TrainingTypeApi from './api/TrainingTypeApi.js';
18
+
17
19
  export * as AgeThresholdRule from './models/AgeThresholdRule.js';
18
20
 
21
+ export * as ChannelSyncEvent from './models/ChannelSyncEvent.js';
22
+
23
+ export * as Discord from './models/Discord.js';
24
+
25
+ export * as DiscordChannelMapping from './models/DiscordChannelMapping.js';
26
+
27
+ export * as DiscordRoleMapping from './models/DiscordRoleMapping.js';
28
+
19
29
  export * as MemberRole from './models/MemberRole.js';
20
30
 
21
31
  export * as Notification from './models/Notification.js';
22
32
 
23
33
  export * as Role from './models/Role.js';
24
34
 
35
+ export * as RoleSyncEvent from './models/RoleSyncEvent.js';
36
+
25
37
  export * as RosterMemberModel from './models/RosterMemberModel.js';
26
38
 
27
39
  export * as RosterModel from './models/RosterModel.js';
@@ -36,4 +48,13 @@ export * as TeamInvite from './models/TeamInvite.js';
36
48
 
37
49
  export * as TeamMember from './models/TeamMember.js';
38
50
 
51
+ export * as TrainingType from './models/TrainingType.js';
52
+
39
53
  export * as User from './models/User.js';
54
+ export * as ChannelRpcEvents from './rpc/channel/ChannelRpcEvents.js';
55
+ export * as ChannelRpcGroup from './rpc/channel/ChannelRpcGroup.js';
56
+ export * as ChannelRpcModels from './rpc/channel/ChannelRpcModels.js';
57
+ export * as RoleRpcEvents from './rpc/role/RoleRpcEvents.js';
58
+ export * as RoleRpcGroup from './rpc/role/RoleRpcGroup.js';
59
+ export * as RoleRpcModels from './rpc/role/RoleRpcModels.js';
60
+ export * as SyncRpcs from './rpc/SyncRpcs.js';