@glissandoo/lib 1.123.2 → 1.123.3

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 (521) hide show
  1. package/package.json +1 -1
  2. package/types/firestore.ts +1998 -0
  3. package/types/messagebirdChatWidget.ts +20 -0
  4. package/types/minVersion.ts +4 -0
  5. package/types/payoutRule.ts +132 -0
  6. package/types/supabase/generated.ts +1682 -0
  7. package/types/supabase/index.ts +36 -0
  8. package/types/supabase/overwrites/comm.ts +18 -0
  9. package/types/supabase/overwrites/comm_history.ts +10 -0
  10. package/types/supabase/overwrites/event.ts +28 -0
  11. package/types/supabase/overwrites/event_history.ts +10 -0
  12. package/types/supabase/overwrites/group.ts +49 -0
  13. package/types/supabase/overwrites/group_history.ts +9 -0
  14. package/types/supabase/overwrites/index.ts +7 -0
  15. package/types/supabase/overwrites/offer.ts +15 -0
  16. package/types/supabase/overwrites/offer_history.ts +10 -0
  17. package/types/supabase/overwrites/repertoire.ts +12 -0
  18. package/types/supabase/overwrites/repertoire_history.ts +10 -0
  19. package/types/supabase/overwrites/utils.ts +4 -0
  20. package/.firebaserc +0 -7
  21. package/.husky/pre-commit +0 -4
  22. package/README.md +0 -70
  23. package/scripts/setHusky.js +0 -11
  24. package/supabase/.dev.env +0 -1
  25. package/supabase/.prod.env +0 -1
  26. package/supabase/.sample.env +0 -2
  27. package/supabase/README.md +0 -126
  28. package/supabase/config.toml +0 -68
  29. package/supabase/migrations/20231117044943_remote_schema.sql +0 -228
  30. package/supabase/migrations/20231117124947_event_selection_mode_closed_at_nullable.sql +0 -1
  31. package/supabase/migrations/20231121002132_remote_schema.sql +0 -31
  32. package/supabase/migrations/20231121004031_references_nullable.sql +0 -3
  33. package/supabase/migrations/20231121014339_updated_at_trigger.sql +0 -13
  34. package/supabase/migrations/20231122111241_remote_schema.sql +0 -25
  35. package/supabase/migrations/20231124151424_snake_case_to_camel_case.sql +0 -105
  36. package/supabase/migrations/20231129133721_add_columns_for_sites.sql +0 -11
  37. package/supabase/migrations/20231129142806_promoter_can_be_null.sql +0 -3
  38. package/supabase/migrations/20231130125327_group_location_latlon.sql +0 -3
  39. package/supabase/migrations/20231130150154_error_solvings.sql +0 -9
  40. package/supabase/migrations/20240405115914_new_columns.sql +0 -9
  41. package/supabase/migrations/20240405121956_init_offer.sql +0 -81
  42. package/supabase/migrations/20240503032440_add_columns_to_offer.sql +0 -11
  43. package/supabase/migrations/20240503101641_add_column_createdOn.sql +0 -19
  44. package/supabase/migrations/20240506035104_add_groupInfo_to_offer.sql +0 -10
  45. package/supabase/migrations/20240510110328_add_relationships_to_offer.sql +0 -9
  46. package/supabase/migrations/20240514100316_offers_public.sql +0 -9
  47. package/supabase/migrations/20260506013030_add_user_mirror.sql +0 -50
  48. package/supabase/migrations/20260506013031_add_user_group_mirror.sql +0 -31
  49. package/supabase/migrations/20260529000000_init_group_payment.sql +0 -79
  50. package/supabase/migrations/20260529120000_group_payment_realtime.sql +0 -19
  51. package/supabase/migrations/20260529130000_group_payment_anon_read.sql +0 -16
  52. package/supabase/migrations/20260601000000_group_payment_concept_norm.sql +0 -20
  53. package/supabase/migrations/20260605000000_init_partnership_domain.sql +0 -333
  54. package/supabase/migrations/20260605000100_partnership_recurring_rpc.sql +0 -62
  55. package/supabase/migrations/20260606000000_partnership_payer.sql +0 -83
  56. package/supabase/migrations/20260607000000_partnership_partner_number_not_unique.sql +0 -10
  57. package/supabase/migrations/20260608000000_partnership_payment_method_bizum.sql +0 -2
  58. package/supabase/migrations/20260609000000_partnership_payment_sepa_end_to_end.sql +0 -13
  59. package/supabase/migrations/20260617000000_partnership_portal_query_indexes.sql +0 -23
  60. package/supabase/migrations/20260618000000_partnership_communication_attachments.sql +0 -5
  61. package/supabase/migrations/20260701000000_partnership_recurring_rpc_drop_ambiguous.sql +0 -29
  62. package/supabase/migrations/20260713191700_add_personal_calendar_feed.sql +0 -506
  63. package/supabase/migrations/20260714193734_add_pending_calendar_invitations.sql +0 -403
  64. package/supabase/migrations/20260714205623_add_event_datetime_end_backfill.sql +0 -64
  65. package/supabase/migrations/20260729161126_remove_calendar_event_history_dependency.sql +0 -19
  66. package/supabase/migrations/20260729161202_reconcile_production_remote_schema.sql +0 -135
  67. package/supabase/migrations/20260804120000_add_calendar_feed_token_cipher.sql +0 -9
  68. package/supabase/migrations/20260805120000_replace_usergroup_with_group_playerids.sql +0 -363
  69. package/supabase/seed.sql +0 -2973
  70. /package/{lib/functions → functions}/auth.d.ts +0 -0
  71. /package/{lib/functions → functions}/auth.js +0 -0
  72. /package/{lib/functions → functions}/calendarFeed.d.ts +0 -0
  73. /package/{lib/functions → functions}/calendarFeed.js +0 -0
  74. /package/{lib/functions → functions}/communication.d.ts +0 -0
  75. /package/{lib/functions → functions}/communication.js +0 -0
  76. /package/{lib/functions → functions}/communicationComment.d.ts +0 -0
  77. /package/{lib/functions → functions}/communicationComment.js +0 -0
  78. /package/{lib/functions → functions}/customer.d.ts +0 -0
  79. /package/{lib/functions → functions}/customer.js +0 -0
  80. /package/{lib/functions → functions}/customerGroup.d.ts +0 -0
  81. /package/{lib/functions → functions}/customerGroup.js +0 -0
  82. /package/{lib/functions → functions}/event.d.ts +0 -0
  83. /package/{lib/functions → functions}/event.js +0 -0
  84. /package/{lib/functions → functions}/eventPlayer.d.ts +0 -0
  85. /package/{lib/functions → functions}/eventPlayer.js +0 -0
  86. /package/{lib/functions → functions}/eventRepertory.d.ts +0 -0
  87. /package/{lib/functions → functions}/eventRepertory.js +0 -0
  88. /package/{lib/functions → functions}/eventoPayout.d.ts +0 -0
  89. /package/{lib/functions → functions}/eventoPayout.js +0 -0
  90. /package/{lib/functions → functions}/federation.d.ts +0 -0
  91. /package/{lib/functions → functions}/federation.js +0 -0
  92. /package/{lib/functions → functions}/federationPartnership.d.ts +0 -0
  93. /package/{lib/functions → functions}/federationPartnership.js +0 -0
  94. /package/{lib/functions → functions}/group.d.ts +0 -0
  95. /package/{lib/functions → functions}/group.js +0 -0
  96. /package/{lib/functions → functions}/groupEventStage.d.ts +0 -0
  97. /package/{lib/functions → functions}/groupEventStage.js +0 -0
  98. /package/{lib/functions → functions}/groupModule.d.ts +0 -0
  99. /package/{lib/functions → functions}/groupModule.js +0 -0
  100. /package/{lib/functions → functions}/groupPayment.d.ts +0 -0
  101. /package/{lib/functions → functions}/groupPayment.js +0 -0
  102. /package/{lib/functions → functions}/groupPayoutRule.d.ts +0 -0
  103. /package/{lib/functions → functions}/groupPayoutRule.js +0 -0
  104. /package/{lib/functions → functions}/groupPlayer.d.ts +0 -0
  105. /package/{lib/functions → functions}/groupPlayer.js +0 -0
  106. /package/{lib/functions → functions}/groupRepertory.d.ts +0 -0
  107. /package/{lib/functions → functions}/groupRepertory.js +0 -0
  108. /package/{lib/functions → functions}/index.d.ts +0 -0
  109. /package/{lib/functions → functions}/index.js +0 -0
  110. /package/{lib/functions → functions}/inventory.d.ts +0 -0
  111. /package/{lib/functions → functions}/inventory.js +0 -0
  112. /package/{lib/functions → functions}/inventoryItem.d.ts +0 -0
  113. /package/{lib/functions → functions}/inventoryItem.js +0 -0
  114. /package/{lib/functions → functions}/jwt.d.ts +0 -0
  115. /package/{lib/functions → functions}/jwt.js +0 -0
  116. /package/{lib/functions → functions}/misc.d.ts +0 -0
  117. /package/{lib/functions → functions}/misc.js +0 -0
  118. /package/{lib/functions → functions}/notification.d.ts +0 -0
  119. /package/{lib/functions → functions}/notification.js +0 -0
  120. /package/{lib/functions → functions}/offer.d.ts +0 -0
  121. /package/{lib/functions → functions}/offer.js +0 -0
  122. /package/{lib/functions → functions}/offerApplicant.d.ts +0 -0
  123. /package/{lib/functions → functions}/offerApplicant.js +0 -0
  124. /package/{lib/functions → functions}/partnership.d.ts +0 -0
  125. /package/{lib/functions → functions}/partnership.js +0 -0
  126. /package/{lib/functions → functions}/partnershipCommunication.d.ts +0 -0
  127. /package/{lib/functions → functions}/partnershipCommunication.js +0 -0
  128. /package/{lib/functions → functions}/partnershipGroup.d.ts +0 -0
  129. /package/{lib/functions → functions}/partnershipGroup.js +0 -0
  130. /package/{lib/functions → functions}/partnershipPartner.d.ts +0 -0
  131. /package/{lib/functions → functions}/partnershipPartner.js +0 -0
  132. /package/{lib/functions → functions}/partnershipPayment.d.ts +0 -0
  133. /package/{lib/functions → functions}/partnershipPayment.js +0 -0
  134. /package/{lib/functions → functions}/partnershipPlan.d.ts +0 -0
  135. /package/{lib/functions → functions}/partnershipPlan.js +0 -0
  136. /package/{lib/functions → functions}/partnershipSepaPaymentGroup.d.ts +0 -0
  137. /package/{lib/functions → functions}/partnershipSepaPaymentGroup.js +0 -0
  138. /package/{lib/functions → functions}/partnershipSubscription.d.ts +0 -0
  139. /package/{lib/functions → functions}/partnershipSubscription.js +0 -0
  140. /package/{lib/functions → functions}/regions.d.ts +0 -0
  141. /package/{lib/functions → functions}/regions.js +0 -0
  142. /package/{lib/functions → functions}/subscription.d.ts +0 -0
  143. /package/{lib/functions → functions}/subscription.js +0 -0
  144. /package/{lib/functions → functions}/user.d.ts +0 -0
  145. /package/{lib/functions → functions}/user.js +0 -0
  146. /package/{lib/functions → functions}/userNotification.d.ts +0 -0
  147. /package/{lib/functions → functions}/userNotification.js +0 -0
  148. /package/{lib/helpers → helpers}/appScenes.d.ts +0 -0
  149. /package/{lib/helpers → helpers}/appScenes.js +0 -0
  150. /package/{lib/helpers → helpers}/audios.d.ts +0 -0
  151. /package/{lib/helpers → helpers}/audios.js +0 -0
  152. /package/{lib/helpers → helpers}/auth.d.ts +0 -0
  153. /package/{lib/helpers → helpers}/auth.js +0 -0
  154. /package/{lib/helpers → helpers}/badges.d.ts +0 -0
  155. /package/{lib/helpers → helpers}/badges.js +0 -0
  156. /package/{lib/helpers → helpers}/collections.d.ts +0 -0
  157. /package/{lib/helpers → helpers}/collections.js +0 -0
  158. /package/{lib/helpers → helpers}/communicationTemplate/index.d.ts +0 -0
  159. /package/{lib/helpers → helpers}/communicationTemplate/index.js +0 -0
  160. /package/{lib/helpers → helpers}/communicationTemplate/newGroup.d.ts +0 -0
  161. /package/{lib/helpers → helpers}/communicationTemplate/newGroup.js +0 -0
  162. /package/{lib/helpers → helpers}/communicationTemplate/newMember.d.ts +0 -0
  163. /package/{lib/helpers → helpers}/communicationTemplate/newMember.js +0 -0
  164. /package/{lib/helpers → helpers}/countries.d.ts +0 -0
  165. /package/{lib/helpers → helpers}/countries.js +0 -0
  166. /package/{lib/helpers → helpers}/currency.d.ts +0 -0
  167. /package/{lib/helpers → helpers}/currency.js +0 -0
  168. /package/{lib/helpers → helpers}/dlinks.d.ts +0 -0
  169. /package/{lib/helpers → helpers}/dlinks.js +0 -0
  170. /package/{lib/helpers → helpers}/errors.d.ts +0 -0
  171. /package/{lib/helpers → helpers}/errors.js +0 -0
  172. /package/{lib/helpers → helpers}/fileSections/index.d.ts +0 -0
  173. /package/{lib/helpers → helpers}/fileSections/index.js +0 -0
  174. /package/{lib/helpers → helpers}/fileSections/orders.d.ts +0 -0
  175. /package/{lib/helpers → helpers}/fileSections/orders.js +0 -0
  176. /package/{lib/helpers → helpers}/glissandooAdmin.d.ts +0 -0
  177. /package/{lib/helpers → helpers}/glissandooAdmin.js +0 -0
  178. /package/{lib/helpers → helpers}/instruments/index.d.ts +0 -0
  179. /package/{lib/helpers → helpers}/instruments/index.js +0 -0
  180. /package/{lib/helpers → helpers}/instruments/lists.d.ts +0 -0
  181. /package/{lib/helpers → helpers}/instruments/lists.js +0 -0
  182. /package/{lib/helpers → helpers}/instruments/orders.d.ts +0 -0
  183. /package/{lib/helpers → helpers}/instruments/orders.js +0 -0
  184. /package/{lib/helpers → helpers}/musicStyles/index.d.ts +0 -0
  185. /package/{lib/helpers → helpers}/musicStyles/index.js +0 -0
  186. /package/{lib/helpers → helpers}/musicStyles/orders.d.ts +0 -0
  187. /package/{lib/helpers → helpers}/musicStyles/orders.js +0 -0
  188. /package/{lib/helpers → helpers}/notifications/index.d.ts +0 -0
  189. /package/{lib/helpers → helpers}/notifications/index.js +0 -0
  190. /package/{lib/helpers → helpers}/notifications/placeholders.d.ts +0 -0
  191. /package/{lib/helpers → helpers}/notifications/placeholders.js +0 -0
  192. /package/{lib/helpers → helpers}/objects.d.ts +0 -0
  193. /package/{lib/helpers → helpers}/objects.js +0 -0
  194. /package/{lib/helpers → helpers}/paymentForecast.d.ts +0 -0
  195. /package/{lib/helpers → helpers}/paymentForecast.js +0 -0
  196. /package/{lib/helpers → helpers}/payoutRules.d.ts +0 -0
  197. /package/{lib/helpers → helpers}/payoutRules.js +0 -0
  198. /package/{lib/helpers → helpers}/plans.d.ts +0 -0
  199. /package/{lib/helpers → helpers}/plans.js +0 -0
  200. /package/{lib/helpers → helpers}/rates.d.ts +0 -0
  201. /package/{lib/helpers → helpers}/rates.js +0 -0
  202. /package/{lib/helpers → helpers}/reasons.d.ts +0 -0
  203. /package/{lib/helpers → helpers}/reasons.js +0 -0
  204. /package/{lib/helpers → helpers}/slate.d.ts +0 -0
  205. /package/{lib/helpers → helpers}/slate.js +0 -0
  206. /package/{lib/helpers → helpers}/styles.d.ts +0 -0
  207. /package/{lib/helpers → helpers}/styles.js +0 -0
  208. /package/{lib/helpers → helpers}/ts-extras/array-includes.d.ts +0 -0
  209. /package/{lib/helpers → helpers}/ts-extras/array-includes.js +0 -0
  210. /package/{lib/helpers → helpers}/ts-extras/as-mutable.d.ts +0 -0
  211. /package/{lib/helpers → helpers}/ts-extras/as-mutable.js +0 -0
  212. /package/{lib/helpers → helpers}/ts-extras/assert-error.d.ts +0 -0
  213. /package/{lib/helpers → helpers}/ts-extras/assert-error.js +0 -0
  214. /package/{lib/helpers → helpers}/ts-extras/index.d.ts +0 -0
  215. /package/{lib/helpers → helpers}/ts-extras/index.js +0 -0
  216. /package/{lib/helpers → helpers}/ts-extras/is-defined.d.ts +0 -0
  217. /package/{lib/helpers → helpers}/ts-extras/is-defined.js +0 -0
  218. /package/{lib/helpers → helpers}/ts-extras/is-empty.d.ts +0 -0
  219. /package/{lib/helpers → helpers}/ts-extras/is-empty.js +0 -0
  220. /package/{lib/helpers → helpers}/ts-extras/is-finite.d.ts +0 -0
  221. /package/{lib/helpers → helpers}/ts-extras/is-finite.js +0 -0
  222. /package/{lib/helpers → helpers}/ts-extras/is-infinite.d.ts +0 -0
  223. /package/{lib/helpers → helpers}/ts-extras/is-infinite.js +0 -0
  224. /package/{lib/helpers → helpers}/ts-extras/is-integer.d.ts +0 -0
  225. /package/{lib/helpers → helpers}/ts-extras/is-integer.js +0 -0
  226. /package/{lib/helpers → helpers}/ts-extras/is-present.d.ts +0 -0
  227. /package/{lib/helpers → helpers}/ts-extras/is-present.js +0 -0
  228. /package/{lib/helpers → helpers}/ts-extras/is-safe-integer.d.ts +0 -0
  229. /package/{lib/helpers → helpers}/ts-extras/is-safe-integer.js +0 -0
  230. /package/{lib/helpers → helpers}/ts-extras/object-entries.d.ts +0 -0
  231. /package/{lib/helpers → helpers}/ts-extras/object-entries.js +0 -0
  232. /package/{lib/helpers → helpers}/ts-extras/object-from-entries.d.ts +0 -0
  233. /package/{lib/helpers → helpers}/ts-extras/object-from-entries.js +0 -0
  234. /package/{lib/helpers → helpers}/ts-extras/object-has-own.d.ts +0 -0
  235. /package/{lib/helpers → helpers}/ts-extras/object-has-own.js +0 -0
  236. /package/{lib/helpers → helpers}/ts-extras/object-keys.d.ts +0 -0
  237. /package/{lib/helpers → helpers}/ts-extras/object-keys.js +0 -0
  238. /package/{lib/helpers → helpers}/ts-extras/set-has.d.ts +0 -0
  239. /package/{lib/helpers → helpers}/ts-extras/set-has.js +0 -0
  240. /package/{lib/helpers → helpers}/types.d.ts +0 -0
  241. /package/{lib/helpers → helpers}/types.js +0 -0
  242. /package/{lib/helpers → helpers}/utils.d.ts +0 -0
  243. /package/{lib/helpers → helpers}/utils.js +0 -0
  244. /package/{lib/index.d.ts → index.d.ts} +0 -0
  245. /package/{lib/index.js → index.js} +0 -0
  246. /package/{lib/lang → lang}/ca.json +0 -0
  247. /package/{lib/lang → lang}/de.json +0 -0
  248. /package/{lib/lang → lang}/en.json +0 -0
  249. /package/{lib/lang → lang}/es.json +0 -0
  250. /package/{lib/lang → lang}/eu.json +0 -0
  251. /package/{lib/lang → lang}/fr.json +0 -0
  252. /package/{lib/lang → lang}/gl.json +0 -0
  253. /package/{lib/lang → lang}/index.d.ts +0 -0
  254. /package/{lib/lang → lang}/index.js +0 -0
  255. /package/{lib/lang → lang}/it.json +0 -0
  256. /package/{lib/lang → lang}/nl.json +0 -0
  257. /package/{lib/lang → lang}/pt.json +0 -0
  258. /package/{lib/models → models}/Communication/Comment/index.d.ts +0 -0
  259. /package/{lib/models → models}/Communication/Comment/index.js +0 -0
  260. /package/{lib/models → models}/Communication/Comment/types.d.ts +0 -0
  261. /package/{lib/models → models}/Communication/Comment/types.js +0 -0
  262. /package/{lib/models → models}/Communication/index.d.ts +0 -0
  263. /package/{lib/models → models}/Communication/index.js +0 -0
  264. /package/{lib/models → models}/Communication/types.d.ts +0 -0
  265. /package/{lib/models → models}/Communication/types.js +0 -0
  266. /package/{lib/models → models}/Counters/Group/Analytics/index.d.ts +0 -0
  267. /package/{lib/models → models}/Counters/Group/Analytics/index.js +0 -0
  268. /package/{lib/models → models}/Counters/Group/Analytics/types.d.ts +0 -0
  269. /package/{lib/models → models}/Counters/Group/Analytics/types.js +0 -0
  270. /package/{lib/models → models}/Counters/Group/index.d.ts +0 -0
  271. /package/{lib/models → models}/Counters/Group/index.js +0 -0
  272. /package/{lib/models → models}/Counters/Group/types.d.ts +0 -0
  273. /package/{lib/models → models}/Counters/Group/types.js +0 -0
  274. /package/{lib/models → models}/Counters/event.d.ts +0 -0
  275. /package/{lib/models → models}/Counters/event.js +0 -0
  276. /package/{lib/models → models}/Counters/index.d.ts +0 -0
  277. /package/{lib/models → models}/Counters/index.js +0 -0
  278. /package/{lib/models → models}/Counters/types.d.ts +0 -0
  279. /package/{lib/models → models}/Counters/types.js +0 -0
  280. /package/{lib/models → models}/Customer/Group/index.d.ts +0 -0
  281. /package/{lib/models → models}/Customer/Group/index.js +0 -0
  282. /package/{lib/models → models}/Customer/Group/types.d.ts +0 -0
  283. /package/{lib/models → models}/Customer/Group/types.js +0 -0
  284. /package/{lib/models → models}/Customer/basic.d.ts +0 -0
  285. /package/{lib/models → models}/Customer/basic.js +0 -0
  286. /package/{lib/models → models}/Customer/index.d.ts +0 -0
  287. /package/{lib/models → models}/Customer/index.js +0 -0
  288. /package/{lib/models → models}/Customer/types.d.ts +0 -0
  289. /package/{lib/models → models}/Customer/types.js +0 -0
  290. /package/{lib/models → models}/Evento/Player/basic.d.ts +0 -0
  291. /package/{lib/models → models}/Evento/Player/basic.js +0 -0
  292. /package/{lib/models → models}/Evento/Player/index.d.ts +0 -0
  293. /package/{lib/models → models}/Evento/Player/index.js +0 -0
  294. /package/{lib/models → models}/Evento/Player/types.d.ts +0 -0
  295. /package/{lib/models → models}/Evento/Player/types.js +0 -0
  296. /package/{lib/models → models}/Evento/Repertory/index.d.ts +0 -0
  297. /package/{lib/models → models}/Evento/Repertory/index.js +0 -0
  298. /package/{lib/models → models}/Evento/Repertory/types.d.ts +0 -0
  299. /package/{lib/models → models}/Evento/Repertory/types.js +0 -0
  300. /package/{lib/models → models}/Evento/basic.d.ts +0 -0
  301. /package/{lib/models → models}/Evento/basic.js +0 -0
  302. /package/{lib/models → models}/Evento/index.d.ts +0 -0
  303. /package/{lib/models → models}/Evento/index.js +0 -0
  304. /package/{lib/models → models}/Evento/promoter.d.ts +0 -0
  305. /package/{lib/models → models}/Evento/promoter.js +0 -0
  306. /package/{lib/models → models}/Evento/tiny.d.ts +0 -0
  307. /package/{lib/models → models}/Evento/tiny.js +0 -0
  308. /package/{lib/models → models}/Evento/types.d.ts +0 -0
  309. /package/{lib/models → models}/Evento/types.js +0 -0
  310. /package/{lib/models → models}/Federation/Partnership/index.d.ts +0 -0
  311. /package/{lib/models → models}/Federation/Partnership/index.js +0 -0
  312. /package/{lib/models → models}/Federation/Partnership/types.d.ts +0 -0
  313. /package/{lib/models → models}/Federation/Partnership/types.js +0 -0
  314. /package/{lib/models → models}/Federation/index.d.ts +0 -0
  315. /package/{lib/models → models}/Federation/index.js +0 -0
  316. /package/{lib/models → models}/Federation/types.d.ts +0 -0
  317. /package/{lib/models → models}/Federation/types.js +0 -0
  318. /package/{lib/models → models}/Group/Analytics/index.d.ts +0 -0
  319. /package/{lib/models → models}/Group/Analytics/index.js +0 -0
  320. /package/{lib/models → models}/Group/Analytics/types.d.ts +0 -0
  321. /package/{lib/models → models}/Group/Analytics/types.js +0 -0
  322. /package/{lib/models → models}/Group/Event/index.d.ts +0 -0
  323. /package/{lib/models → models}/Group/Event/index.js +0 -0
  324. /package/{lib/models → models}/Group/Event/types.d.ts +0 -0
  325. /package/{lib/models → models}/Group/Event/types.js +0 -0
  326. /package/{lib/models → models}/Group/Payment/index.d.ts +0 -0
  327. /package/{lib/models → models}/Group/Payment/index.js +0 -0
  328. /package/{lib/models → models}/Group/Payment/supabase.d.ts +0 -0
  329. /package/{lib/models → models}/Group/Payment/supabase.js +0 -0
  330. /package/{lib/models → models}/Group/Payment/types.d.ts +0 -0
  331. /package/{lib/models → models}/Group/Payment/types.js +0 -0
  332. /package/{lib/models → models}/Group/Player/Event/index.d.ts +0 -0
  333. /package/{lib/models → models}/Group/Player/Event/index.js +0 -0
  334. /package/{lib/models → models}/Group/Player/Event/types.d.ts +0 -0
  335. /package/{lib/models → models}/Group/Player/Event/types.js +0 -0
  336. /package/{lib/models → models}/Group/Player/Log/index.d.ts +0 -0
  337. /package/{lib/models → models}/Group/Player/Log/index.js +0 -0
  338. /package/{lib/models → models}/Group/Player/Log/types.d.ts +0 -0
  339. /package/{lib/models → models}/Group/Player/Log/types.js +0 -0
  340. /package/{lib/models → models}/Group/Player/index.d.ts +0 -0
  341. /package/{lib/models → models}/Group/Player/index.js +0 -0
  342. /package/{lib/models → models}/Group/Player/types.d.ts +0 -0
  343. /package/{lib/models → models}/Group/Player/types.js +0 -0
  344. /package/{lib/models → models}/Group/Repertory/File/Section/index.d.ts +0 -0
  345. /package/{lib/models → models}/Group/Repertory/File/Section/index.js +0 -0
  346. /package/{lib/models → models}/Group/Repertory/File/Section/types.d.ts +0 -0
  347. /package/{lib/models → models}/Group/Repertory/File/Section/types.js +0 -0
  348. /package/{lib/models → models}/Group/Repertory/File/index.d.ts +0 -0
  349. /package/{lib/models → models}/Group/Repertory/File/index.js +0 -0
  350. /package/{lib/models → models}/Group/Repertory/File/types.d.ts +0 -0
  351. /package/{lib/models → models}/Group/Repertory/File/types.js +0 -0
  352. /package/{lib/models → models}/Group/Repertory/FilePath/index.d.ts +0 -0
  353. /package/{lib/models → models}/Group/Repertory/FilePath/index.js +0 -0
  354. /package/{lib/models → models}/Group/Repertory/index.d.ts +0 -0
  355. /package/{lib/models → models}/Group/Repertory/index.js +0 -0
  356. /package/{lib/models → models}/Group/Repertory/types.d.ts +0 -0
  357. /package/{lib/models → models}/Group/Repertory/types.js +0 -0
  358. /package/{lib/models → models}/Group/StageTemplate/index.d.ts +0 -0
  359. /package/{lib/models → models}/Group/StageTemplate/index.js +0 -0
  360. /package/{lib/models → models}/Group/StageTemplate/types.d.ts +0 -0
  361. /package/{lib/models → models}/Group/StageTemplate/types.js +0 -0
  362. /package/{lib/models → models}/Group/basic.d.ts +0 -0
  363. /package/{lib/models → models}/Group/basic.js +0 -0
  364. /package/{lib/models → models}/Group/index.d.ts +0 -0
  365. /package/{lib/models → models}/Group/index.js +0 -0
  366. /package/{lib/models → models}/Group/types.d.ts +0 -0
  367. /package/{lib/models → models}/Group/types.js +0 -0
  368. /package/{lib/models → models}/Instrument/group.d.ts +0 -0
  369. /package/{lib/models → models}/Instrument/group.js +0 -0
  370. /package/{lib/models → models}/Instrument/index.d.ts +0 -0
  371. /package/{lib/models → models}/Instrument/index.js +0 -0
  372. /package/{lib/models → models}/Inventory/Item/index.d.ts +0 -0
  373. /package/{lib/models → models}/Inventory/Item/index.js +0 -0
  374. /package/{lib/models → models}/Inventory/Item/types.d.ts +0 -0
  375. /package/{lib/models → models}/Inventory/Item/types.js +0 -0
  376. /package/{lib/models → models}/Inventory/index.d.ts +0 -0
  377. /package/{lib/models → models}/Inventory/index.js +0 -0
  378. /package/{lib/models → models}/Inventory/types.d.ts +0 -0
  379. /package/{lib/models → models}/Inventory/types.js +0 -0
  380. /package/{lib/models → models}/Metrics/index.d.ts +0 -0
  381. /package/{lib/models → models}/Metrics/index.js +0 -0
  382. /package/{lib/models → models}/Metrics/types.d.ts +0 -0
  383. /package/{lib/models → models}/Metrics/types.js +0 -0
  384. /package/{lib/models → models}/Model/index.d.ts +0 -0
  385. /package/{lib/models → models}/Model/index.js +0 -0
  386. /package/{lib/models → models}/Model/lang.d.ts +0 -0
  387. /package/{lib/models → models}/Model/lang.js +0 -0
  388. /package/{lib/models → models}/MusicStyle/index.d.ts +0 -0
  389. /package/{lib/models → models}/MusicStyle/index.js +0 -0
  390. /package/{lib/models → models}/Notification/index.d.ts +0 -0
  391. /package/{lib/models → models}/Notification/index.js +0 -0
  392. /package/{lib/models → models}/Notification/types.d.ts +0 -0
  393. /package/{lib/models → models}/Notification/types.js +0 -0
  394. /package/{lib/models → models}/Offer/Applicant/index.d.ts +0 -0
  395. /package/{lib/models → models}/Offer/Applicant/index.js +0 -0
  396. /package/{lib/models → models}/Offer/Applicant/types.d.ts +0 -0
  397. /package/{lib/models → models}/Offer/Applicant/types.js +0 -0
  398. /package/{lib/models → models}/Offer/index.d.ts +0 -0
  399. /package/{lib/models → models}/Offer/index.js +0 -0
  400. /package/{lib/models → models}/Offer/types.d.ts +0 -0
  401. /package/{lib/models → models}/Offer/types.js +0 -0
  402. /package/{lib/models → models}/Partnership/Communication/index.d.ts +0 -0
  403. /package/{lib/models → models}/Partnership/Communication/index.js +0 -0
  404. /package/{lib/models → models}/Partnership/Communication/supabase.d.ts +0 -0
  405. /package/{lib/models → models}/Partnership/Communication/supabase.js +0 -0
  406. /package/{lib/models → models}/Partnership/Communication/types.d.ts +0 -0
  407. /package/{lib/models → models}/Partnership/Communication/types.js +0 -0
  408. /package/{lib/models → models}/Partnership/Group/index.d.ts +0 -0
  409. /package/{lib/models → models}/Partnership/Group/index.js +0 -0
  410. /package/{lib/models → models}/Partnership/Group/supabase.d.ts +0 -0
  411. /package/{lib/models → models}/Partnership/Group/supabase.js +0 -0
  412. /package/{lib/models → models}/Partnership/Group/types.d.ts +0 -0
  413. /package/{lib/models → models}/Partnership/Group/types.js +0 -0
  414. /package/{lib/models → models}/Partnership/Partner/index.d.ts +0 -0
  415. /package/{lib/models → models}/Partnership/Partner/index.js +0 -0
  416. /package/{lib/models → models}/Partnership/Partner/supabase.d.ts +0 -0
  417. /package/{lib/models → models}/Partnership/Partner/supabase.js +0 -0
  418. /package/{lib/models → models}/Partnership/Partner/types.d.ts +0 -0
  419. /package/{lib/models → models}/Partnership/Partner/types.js +0 -0
  420. /package/{lib/models → models}/Partnership/Payment/index.d.ts +0 -0
  421. /package/{lib/models → models}/Partnership/Payment/index.js +0 -0
  422. /package/{lib/models → models}/Partnership/Payment/supabase.d.ts +0 -0
  423. /package/{lib/models → models}/Partnership/Payment/supabase.js +0 -0
  424. /package/{lib/models → models}/Partnership/Payment/types.d.ts +0 -0
  425. /package/{lib/models → models}/Partnership/Payment/types.js +0 -0
  426. /package/{lib/models → models}/Partnership/Plan/index.d.ts +0 -0
  427. /package/{lib/models → models}/Partnership/Plan/index.js +0 -0
  428. /package/{lib/models → models}/Partnership/Plan/supabase.d.ts +0 -0
  429. /package/{lib/models → models}/Partnership/Plan/supabase.js +0 -0
  430. /package/{lib/models → models}/Partnership/Plan/types.d.ts +0 -0
  431. /package/{lib/models → models}/Partnership/Plan/types.js +0 -0
  432. /package/{lib/models → models}/Partnership/SepaPaymentGroup/index.d.ts +0 -0
  433. /package/{lib/models → models}/Partnership/SepaPaymentGroup/index.js +0 -0
  434. /package/{lib/models → models}/Partnership/SepaPaymentGroup/supabase.d.ts +0 -0
  435. /package/{lib/models → models}/Partnership/SepaPaymentGroup/supabase.js +0 -0
  436. /package/{lib/models → models}/Partnership/SepaPaymentGroup/types.d.ts +0 -0
  437. /package/{lib/models → models}/Partnership/SepaPaymentGroup/types.js +0 -0
  438. /package/{lib/models → models}/Partnership/Subscription/index.d.ts +0 -0
  439. /package/{lib/models → models}/Partnership/Subscription/index.js +0 -0
  440. /package/{lib/models → models}/Partnership/Subscription/supabase.d.ts +0 -0
  441. /package/{lib/models → models}/Partnership/Subscription/supabase.js +0 -0
  442. /package/{lib/models → models}/Partnership/Subscription/types.d.ts +0 -0
  443. /package/{lib/models → models}/Partnership/Subscription/types.js +0 -0
  444. /package/{lib/models → models}/Partnership/basic.d.ts +0 -0
  445. /package/{lib/models → models}/Partnership/basic.js +0 -0
  446. /package/{lib/models → models}/Partnership/index.d.ts +0 -0
  447. /package/{lib/models → models}/Partnership/index.js +0 -0
  448. /package/{lib/models → models}/Partnership/types.d.ts +0 -0
  449. /package/{lib/models → models}/Partnership/types.js +0 -0
  450. /package/{lib/models → models}/Player/basic.d.ts +0 -0
  451. /package/{lib/models → models}/Player/basic.js +0 -0
  452. /package/{lib/models → models}/Player/types.d.ts +0 -0
  453. /package/{lib/models → models}/Player/types.js +0 -0
  454. /package/{lib/models → models}/Repertory/basic.d.ts +0 -0
  455. /package/{lib/models → models}/Repertory/basic.js +0 -0
  456. /package/{lib/models → models}/Repertory/types.d.ts +0 -0
  457. /package/{lib/models → models}/Repertory/types.js +0 -0
  458. /package/{lib/models → models}/User/Group/index.d.ts +0 -0
  459. /package/{lib/models → models}/User/Group/index.js +0 -0
  460. /package/{lib/models → models}/User/Group/types.d.ts +0 -0
  461. /package/{lib/models → models}/User/Group/types.js +0 -0
  462. /package/{lib/models → models}/User/Notification/index.d.ts +0 -0
  463. /package/{lib/models → models}/User/Notification/index.js +0 -0
  464. /package/{lib/models → models}/User/Notification/types.d.ts +0 -0
  465. /package/{lib/models → models}/User/Notification/types.js +0 -0
  466. /package/{lib/models → models}/User/OfferAlarm/index.d.ts +0 -0
  467. /package/{lib/models → models}/User/OfferAlarm/index.js +0 -0
  468. /package/{lib/models → models}/User/OfferAlarm/types.d.ts +0 -0
  469. /package/{lib/models → models}/User/OfferAlarm/types.js +0 -0
  470. /package/{lib/models → models}/User/Partnership/index.d.ts +0 -0
  471. /package/{lib/models → models}/User/Partnership/index.js +0 -0
  472. /package/{lib/models → models}/User/Partnership/types.d.ts +0 -0
  473. /package/{lib/models → models}/User/Partnership/types.js +0 -0
  474. /package/{lib/models → models}/User/basic.d.ts +0 -0
  475. /package/{lib/models → models}/User/basic.js +0 -0
  476. /package/{lib/models → models}/User/extended.d.ts +0 -0
  477. /package/{lib/models → models}/User/extended.js +0 -0
  478. /package/{lib/models → models}/User/index.d.ts +0 -0
  479. /package/{lib/models → models}/User/index.js +0 -0
  480. /package/{lib/models → models}/User/types.d.ts +0 -0
  481. /package/{lib/models → models}/User/types.js +0 -0
  482. /package/{lib/models → models}/WebhookEvent/index.d.ts +0 -0
  483. /package/{lib/models → models}/WebhookEvent/index.js +0 -0
  484. /package/{lib/models → models}/WebhookEvent/types.d.ts +0 -0
  485. /package/{lib/models → models}/WebhookEvent/types.js +0 -0
  486. /package/{lib/types → types}/firestore.d.ts +0 -0
  487. /package/{lib/types → types}/firestore.js +0 -0
  488. /package/{lib/types → types}/messagebirdChatWidget.d.ts +0 -0
  489. /package/{lib/types → types}/messagebirdChatWidget.js +0 -0
  490. /package/{lib/types → types}/minVersion.d.ts +0 -0
  491. /package/{lib/types → types}/minVersion.js +0 -0
  492. /package/{lib/types → types}/payoutRule.d.ts +0 -0
  493. /package/{lib/types → types}/payoutRule.js +0 -0
  494. /package/{lib/types → types}/supabase/generated.d.ts +0 -0
  495. /package/{lib/types → types}/supabase/generated.js +0 -0
  496. /package/{lib/types → types}/supabase/index.d.ts +0 -0
  497. /package/{lib/types → types}/supabase/index.js +0 -0
  498. /package/{lib/types → types}/supabase/overwrites/comm.d.ts +0 -0
  499. /package/{lib/types → types}/supabase/overwrites/comm.js +0 -0
  500. /package/{lib/types → types}/supabase/overwrites/comm_history.d.ts +0 -0
  501. /package/{lib/types → types}/supabase/overwrites/comm_history.js +0 -0
  502. /package/{lib/types → types}/supabase/overwrites/event.d.ts +0 -0
  503. /package/{lib/types → types}/supabase/overwrites/event.js +0 -0
  504. /package/{lib/types → types}/supabase/overwrites/event_history.d.ts +0 -0
  505. /package/{lib/types → types}/supabase/overwrites/event_history.js +0 -0
  506. /package/{lib/types → types}/supabase/overwrites/group.d.ts +0 -0
  507. /package/{lib/types → types}/supabase/overwrites/group.js +0 -0
  508. /package/{lib/types → types}/supabase/overwrites/group_history.d.ts +0 -0
  509. /package/{lib/types → types}/supabase/overwrites/group_history.js +0 -0
  510. /package/{lib/types → types}/supabase/overwrites/index.d.ts +0 -0
  511. /package/{lib/types → types}/supabase/overwrites/index.js +0 -0
  512. /package/{lib/types → types}/supabase/overwrites/offer.d.ts +0 -0
  513. /package/{lib/types → types}/supabase/overwrites/offer.js +0 -0
  514. /package/{lib/types → types}/supabase/overwrites/offer_history.d.ts +0 -0
  515. /package/{lib/types → types}/supabase/overwrites/offer_history.js +0 -0
  516. /package/{lib/types → types}/supabase/overwrites/repertoire.d.ts +0 -0
  517. /package/{lib/types → types}/supabase/overwrites/repertoire.js +0 -0
  518. /package/{lib/types → types}/supabase/overwrites/repertoire_history.d.ts +0 -0
  519. /package/{lib/types → types}/supabase/overwrites/repertoire_history.js +0 -0
  520. /package/{lib/types → types}/supabase/overwrites/utils.d.ts +0 -0
  521. /package/{lib/types → types}/supabase/overwrites/utils.js +0 -0
@@ -1,13 +0,0 @@
1
- -- =============================================================================
2
- -- Remesa SEPA consolidada por pagador (unidad familiar): se persiste en cada
3
- -- pago el EndToEndId de la transacción SEPA a la que pertenece, para poder
4
- -- gestionar devoluciones (marcar como devueltos todos los pagos de la misma
5
- -- transacción consolidada).
6
- -- =============================================================================
7
-
8
- alter table "public"."partnership_payment"
9
- add column if not exists "sepaEndToEndId" text;
10
-
11
- create index if not exists partnership_payment_end_to_end_idx
12
- on public.partnership_payment using btree ("partnershipId", "sepaEndToEndId")
13
- where "sepaEndToEndId" is not null;
@@ -1,23 +0,0 @@
1
- -- =============================================================================
2
- -- Índices para acelerar la hidratación del portal del socio
3
- -- (Cloud Function PartnershipPartnerPortalGetData → portalGetData).
4
- --
5
- -- Las queries del portal filtran por socio y, en comunicaciones, por contención
6
- -- de array (`recipients @> [partnerId]`). Sin estos índices Postgres ordena en
7
- -- memoria (pagos) o escanea de más (suscripciones, comunicaciones).
8
- -- =============================================================================
9
-
10
- -- Comunicaciones: `recipients @> [partnerId]` es contención de array → GIN.
11
- -- Filtrado adicional por `deletedAt is null` como índice parcial.
12
- create index if not exists partnership_communication_recipients_idx
13
- on public.partnership_communication using gin ("recipients")
14
- where "deletedAt" is null;
15
-
16
- -- Pagos del socio ordenados por vencimiento sin sort en memoria.
17
- create index if not exists partnership_payment_partner_due_idx
18
- on public.partnership_payment using btree ("partnershipId", "partnerId", "dueDate" desc);
19
-
20
- -- Suscripciones por socio (no por toda la asociación).
21
- create index if not exists partnership_subscription_partner_idx
22
- on public.partnership_subscription using btree ("partnershipId", "partnerId")
23
- where "deletedAt" is null;
@@ -1,5 +0,0 @@
1
- -- Añade soporte de archivos adjuntos a las comunicaciones del partnership.
2
- -- Cada adjunto es { name, url, path, size } y se entrega como enlace de descarga
3
- -- en el email y en el portal del socio.
4
- alter table "public"."partnership_communication"
5
- add column "attachments" jsonb not null default '[]'::jsonb;
@@ -1,29 +0,0 @@
1
- -- =============================================================================
2
- -- Fix PGRST203: overload ambiguo de `generate_partnership_recurring_payment`.
3
- --
4
- -- La migración 20260605000100 creó la función con 8 parámetros. La migración
5
- -- 20260606000000 usó `create or replace` pero añadió un 9º parámetro
6
- -- (`p_payer_id uuid default null`); al cambiar la firma, Postgres NO reemplazó
7
- -- la función original: creó una SEGUNDA función sobrecargada. Al quedar ambas
8
- -- en la base de datos, PostgREST no puede elegir candidata cuando el cliente
9
- -- llama sin `p_payer_id` (las dos son válidas porque la de 9 params tiene
10
- -- default) y devuelve PGRST203.
11
- --
12
- -- Esta migración elimina la versión antigua de 8 parámetros, dejando como
13
- -- única la versión con `p_payer_id`.
14
- -- =============================================================================
15
-
16
- drop function if exists public.generate_partnership_recurring_payment(
17
- text, uuid, text, text, numeric, partnership_payment_method, timestamptz, timestamptz
18
- -- Fix PGRST203 by removing the obsolete overload created before payer support.
19
- -- The nine-argument version has a default p_payer_id and remains available.
20
- drop function if exists public.generate_partnership_recurring_payment(
21
- text,
22
- uuid,
23
- text,
24
- text,
25
- numeric,
26
- partnership_payment_method,
27
- timestamptz,
28
- timestamptz
29
- );
@@ -1,506 +0,0 @@
1
- -- Building the GIN index on "event"."players" over a large table can exceed the
2
- -- default statement timeout. Disable it for this migration's transaction.
3
- SET statement_timeout = 0;
4
-
5
- CREATE SCHEMA IF NOT EXISTS "private";
6
- REVOKE ALL ON SCHEMA "private" FROM PUBLIC, "anon", "authenticated";
7
- GRANT USAGE ON SCHEMA "private" TO "service_role";
8
-
9
- CREATE TABLE "public"."calendar_feed" (
10
- "user_id" TEXT PRIMARY KEY REFERENCES "public"."user" ("userId") ON DELETE CASCADE,
11
- "token_hash" TEXT NOT NULL UNIQUE CHECK ("token_hash" ~ '^[0-9a-f]{64}$'),
12
- "enabled" BOOLEAN NOT NULL DEFAULT true,
13
- "include_tentative" BOOLEAN NOT NULL DEFAULT true,
14
- "content_revision" BIGINT NOT NULL DEFAULT 0 CHECK ("content_revision" >= 0),
15
- "created_at" TIMESTAMPTZ NOT NULL DEFAULT now(),
16
- "updated_at" TIMESTAMPTZ NOT NULL DEFAULT now(),
17
- "revoked_at" TIMESTAMPTZ,
18
- CHECK (NOT "enabled" OR "revoked_at" IS NULL)
19
- );
20
-
21
- CREATE INDEX "calendar_feed_enabled_token_hash_idx"
22
- ON "public"."calendar_feed" ("token_hash")
23
- WHERE "enabled" AND "revoked_at" IS NULL;
24
-
25
- CREATE TRIGGER "calendar_feed__handle_updated_at"
26
- BEFORE UPDATE ON "public"."calendar_feed"
27
- FOR EACH ROW EXECUTE FUNCTION extensions.moddatetime('updated_at');
28
-
29
- ALTER TABLE "public"."calendar_feed" ENABLE ROW LEVEL SECURITY;
30
-
31
- REVOKE ALL ON TABLE "public"."calendar_feed" FROM "anon", "authenticated";
32
- GRANT ALL ON TABLE "public"."calendar_feed" TO "service_role";
33
-
34
- CREATE TABLE "public"."calendar_event_cancellation" (
35
- "user_id" TEXT NOT NULL REFERENCES "public"."calendar_feed" ("user_id") ON DELETE CASCADE,
36
- "event_id" TEXT NOT NULL,
37
- "starts_at" TIMESTAMPTZ NOT NULL,
38
- "ends_at" TIMESTAMPTZ NOT NULL,
39
- "all_day" BOOLEAN NOT NULL DEFAULT false,
40
- "event_type" TEXT NOT NULL,
41
- "display_name" TEXT,
42
- "group_name" TEXT NOT NULL,
43
- "latitude" DOUBLE PRECISION,
44
- "longitude" DOUBLE PRECISION,
45
- "description" TEXT,
46
- "location" TEXT,
47
- "timezone" TEXT NOT NULL,
48
- "last_modified" TIMESTAMPTZ NOT NULL,
49
- "sequence" BIGINT NOT NULL CHECK ("sequence" >= 0),
50
- "url" TEXT,
51
- "cancelled_at" TIMESTAMPTZ NOT NULL DEFAULT now(),
52
- "expires_at" TIMESTAMPTZ NOT NULL DEFAULT (now() + INTERVAL '90 days'),
53
- PRIMARY KEY ("user_id", "event_id")
54
- );
55
-
56
- CREATE INDEX "calendar_event_cancellation_user_expiry_idx"
57
- ON "public"."calendar_event_cancellation" ("user_id", "expires_at");
58
-
59
- ALTER TABLE "public"."calendar_event_cancellation" ENABLE ROW LEVEL SECURITY;
60
-
61
- REVOKE ALL ON TABLE "public"."calendar_event_cancellation" FROM "anon", "authenticated";
62
- GRANT ALL ON TABLE "public"."calendar_event_cancellation" TO "service_role";
63
-
64
- ALTER TABLE "public"."event"
65
- ADD COLUMN "calendarSequence" BIGINT NOT NULL DEFAULT 0
66
- CHECK ("calendarSequence" >= 0);
67
-
68
- CREATE INDEX "event_calendar_datetime_idx"
69
- ON "public"."event" ("datetime", "datetimeEnd")
70
- WHERE "deletedAt" IS NULL;
71
-
72
- CREATE INDEX "event_calendar_players_idx"
73
- ON "public"."event" USING GIN ("players")
74
- WHERE "deletedAt" IS NULL;
75
-
76
- CREATE OR REPLACE FUNCTION "private"."calendarPlayerState"(
77
- "player" JSONB,
78
- "selection_mode" TEXT
79
- )
80
- RETURNS TEXT
81
- LANGUAGE sql
82
- IMMUTABLE
83
- SECURITY INVOKER
84
- SET search_path = ''
85
- AS $$
86
- SELECT CASE
87
- WHEN "player" IS NULL THEN 'unauthorized'
88
- WHEN "player"->>'status' = 'declined' THEN 'declined'
89
- WHEN COALESCE(("player"->>'selected')::BOOLEAN, true) = false THEN 'declined'
90
- WHEN COALESCE(("player"->>'selected')::BOOLEAN, false) THEN 'accepted'
91
- WHEN "player"->>'status' = 'confirmed' AND "selection_mode" IS NULL THEN 'accepted'
92
- WHEN "player"->>'status' = 'confirmed' THEN 'tentative'
93
- WHEN COALESCE(("player"->>'interested')::BOOLEAN, false) THEN 'tentative'
94
- ELSE 'unanswered'
95
- END;
96
- $$;
97
-
98
- REVOKE ALL ON FUNCTION "private"."calendarPlayerState"(JSONB, TEXT) FROM PUBLIC, "anon", "authenticated";
99
- GRANT EXECUTE ON FUNCTION "private"."calendarPlayerState"(JSONB, TEXT) TO "service_role";
100
-
101
- CREATE OR REPLACE FUNCTION "private"."updateCalendarFeedLanguageRevision"()
102
- RETURNS trigger
103
- LANGUAGE plpgsql
104
- SECURITY INVOKER
105
- SET search_path = ''
106
- AS $$
107
- BEGIN
108
- IF NEW."language" IS DISTINCT FROM OLD."language" THEN
109
- UPDATE "public"."calendar_feed"
110
- SET "content_revision" = "content_revision" + 1
111
- WHERE "user_id" = NEW."userId";
112
- END IF;
113
-
114
- RETURN NEW;
115
- END;
116
- $$;
117
-
118
- REVOKE ALL ON FUNCTION "private"."updateCalendarFeedLanguageRevision"()
119
- FROM PUBLIC, "anon", "authenticated";
120
- GRANT EXECUTE ON FUNCTION "private"."updateCalendarFeedLanguageRevision"() TO "service_role";
121
-
122
- CREATE TRIGGER "user__update_calendar_feed_language_revision"
123
- AFTER UPDATE OF "language" ON "public"."user"
124
- FOR EACH ROW EXECUTE FUNCTION "private"."updateCalendarFeedLanguageRevision"();
125
-
126
- CREATE OR REPLACE FUNCTION "private"."updateEventCalendarRevision"()
127
- RETURNS trigger
128
- LANGUAGE plpgsql
129
- SECURITY INVOKER
130
- SET search_path = ''
131
- AS $$
132
- BEGIN
133
- IF ROW(
134
- NEW."promoter",
135
- NEW."displayName",
136
- NEW."datetime",
137
- NEW."datetimeEnd",
138
- NEW."description",
139
- NEW."locality",
140
- NEW."online",
141
- NEW."timezone",
142
- NEW."selectionMode",
143
- NEW."shortDynamicLink",
144
- NEW."deletedAt",
145
- NEW."players"
146
- ) IS DISTINCT FROM ROW(
147
- OLD."promoter",
148
- OLD."displayName",
149
- OLD."datetime",
150
- OLD."datetimeEnd",
151
- OLD."description",
152
- OLD."locality",
153
- OLD."online",
154
- OLD."timezone",
155
- OLD."selectionMode",
156
- OLD."shortDynamicLink",
157
- OLD."deletedAt",
158
- OLD."players"
159
- ) THEN
160
- -- Only a state this feed previously published can create a cancellation.
161
- -- A direct decline or unanswered invitation therefore never creates a
162
- -- tombstone, while confirmed/tentative -> declined or selected=false does.
163
- INSERT INTO "public"."calendar_event_cancellation" (
164
- "user_id",
165
- "event_id",
166
- "starts_at",
167
- "ends_at",
168
- "event_type",
169
- "display_name",
170
- "group_name",
171
- "latitude",
172
- "longitude",
173
- "description",
174
- "location",
175
- "timezone",
176
- "last_modified",
177
- "sequence",
178
- "url",
179
- "cancelled_at",
180
- "expires_at"
181
- )
182
- SELECT
183
- feed."user_id",
184
- OLD."id",
185
- OLD."datetime",
186
- OLD."datetimeEnd",
187
- OLD."type"::TEXT,
188
- NULLIF(OLD."displayName", ''),
189
- event_group."displayName",
190
- CASE
191
- WHEN "extensions"."st_x"(OLD."location"::"extensions"."geometry") <> 0
192
- OR "extensions"."st_y"(OLD."location"::"extensions"."geometry") <> 0
193
- THEN "extensions"."st_x"(OLD."location"::"extensions"."geometry")
194
- ELSE NULL
195
- END,
196
- CASE
197
- WHEN "extensions"."st_x"(OLD."location"::"extensions"."geometry") <> 0
198
- OR "extensions"."st_y"(OLD."location"::"extensions"."geometry") <> 0
199
- THEN "extensions"."st_y"(OLD."location"::"extensions"."geometry")
200
- ELSE NULL
201
- END,
202
- OLD."description",
203
- NULLIF(OLD."locality", ''),
204
- OLD."timezone",
205
- now(),
206
- OLD."calendarSequence" + 1,
207
- CASE
208
- WHEN OLD."shortDynamicLink" ~ '^https://(app(-dev)?\.glissandoo\.com|glissandoo\.com|dev\.glissandoo\.com|glissandoo\.page\.link)/'
209
- THEN OLD."shortDynamicLink"
210
- ELSE NULL
211
- END,
212
- now(),
213
- now() + INTERVAL '90 days'
214
- FROM unnest(OLD."playerIds") AS invited("user_id")
215
- JOIN "public"."calendar_feed" AS feed
216
- ON feed."user_id" = invited."user_id"
217
- AND feed."enabled"
218
- AND feed."revoked_at" IS NULL
219
- JOIN "public"."group" AS event_group
220
- ON event_group."id" = OLD."promoter"
221
- WHERE
222
- OLD."datetimeEnd" >= now() - INTERVAL '30 days'
223
- AND OLD."datetime" <= now() + INTERVAL '18 months'
224
- AND (
225
- COALESCE((OLD."players" -> feed."user_id" ->> 'isGuest')::BOOLEAN, false)
226
- OR EXISTS (
227
- SELECT 1
228
- FROM "public"."userGroup" AS old_membership
229
- WHERE old_membership."userId" = feed."user_id"
230
- AND old_membership."groupId" = OLD."promoter"
231
- )
232
- )
233
- AND (
234
- CASE "private"."calendarPlayerState"(
235
- OLD."players" -> feed."user_id",
236
- OLD."selectionMode"::TEXT
237
- )
238
- WHEN 'accepted' THEN true
239
- WHEN 'tentative' THEN feed."include_tentative"
240
- ELSE false
241
- END
242
- OR (
243
- OLD."players" -> feed."user_id" -> 'selected'
244
- IS DISTINCT FROM 'false'::JSONB
245
- AND NEW."players" -> feed."user_id" -> 'selected' = 'false'::JSONB
246
- )
247
- )
248
- AND (
249
- NEW."deletedAt" IS NOT NULL
250
- OR NEW."datetimeEnd" < now() - INTERVAL '30 days'
251
- OR NEW."datetime" > now() + INTERVAL '18 months'
252
- OR NOT (
253
- CASE "private"."calendarPlayerState"(
254
- NEW."players" -> feed."user_id",
255
- NEW."selectionMode"::TEXT
256
- )
257
- WHEN 'accepted' THEN true
258
- WHEN 'tentative' THEN feed."include_tentative"
259
- ELSE false
260
- END
261
- AND (
262
- COALESCE(
263
- (NEW."players" -> feed."user_id" ->> 'isGuest')::BOOLEAN,
264
- false
265
- )
266
- OR EXISTS (
267
- SELECT 1
268
- FROM "public"."userGroup" AS new_membership
269
- WHERE new_membership."userId" = feed."user_id"
270
- AND new_membership."groupId" = NEW."promoter"
271
- )
272
- )
273
- )
274
- )
275
- ON CONFLICT ("user_id", "event_id") DO UPDATE SET
276
- "starts_at" = EXCLUDED."starts_at",
277
- "ends_at" = EXCLUDED."ends_at",
278
- "event_type" = EXCLUDED."event_type",
279
- "display_name" = EXCLUDED."display_name",
280
- "group_name" = EXCLUDED."group_name",
281
- "latitude" = EXCLUDED."latitude",
282
- "longitude" = EXCLUDED."longitude",
283
- "description" = EXCLUDED."description",
284
- "location" = EXCLUDED."location",
285
- "timezone" = EXCLUDED."timezone",
286
- "last_modified" = EXCLUDED."last_modified",
287
- "sequence" = GREATEST(
288
- "calendar_event_cancellation"."sequence" + 1,
289
- EXCLUDED."sequence"
290
- ),
291
- "url" = EXCLUDED."url",
292
- "cancelled_at" = EXCLUDED."cancelled_at",
293
- "expires_at" = EXCLUDED."expires_at";
294
-
295
- NEW."calendarSequence" := GREATEST(
296
- OLD."calendarSequence" + 1,
297
- NEW."calendarSequence"
298
- );
299
- ELSE
300
- NEW."calendarSequence" := GREATEST(
301
- OLD."calendarSequence",
302
- NEW."calendarSequence"
303
- );
304
- END IF;
305
-
306
- RETURN NEW;
307
- END;
308
- $$;
309
-
310
- REVOKE ALL ON FUNCTION "private"."updateEventCalendarRevision"() FROM PUBLIC, "anon", "authenticated";
311
-
312
- CREATE TRIGGER "event__update_calendar_revision"
313
- BEFORE UPDATE ON "public"."event"
314
- FOR EACH ROW EXECUTE FUNCTION "private"."updateEventCalendarRevision"();
315
-
316
- CREATE OR REPLACE FUNCTION "public"."resolveCalendarFeed"("p_token_hash" TEXT)
317
- RETURNS TABLE (
318
- "userId" TEXT,
319
- "includeTentative" BOOLEAN
320
- )
321
- LANGUAGE sql
322
- STABLE
323
- SECURITY INVOKER
324
- SET search_path = ''
325
- AS $$
326
- SELECT
327
- feed."user_id",
328
- feed."include_tentative"
329
- FROM "public"."calendar_feed" AS feed
330
- JOIN "public"."user" AS app_user ON app_user."userId" = feed."user_id"
331
- WHERE feed."token_hash" = "p_token_hash"
332
- AND feed."enabled"
333
- AND feed."revoked_at" IS NULL
334
- AND app_user."deletedAt" IS NULL
335
- LIMIT 1;
336
- $$;
337
-
338
- REVOKE ALL ON FUNCTION "public"."resolveCalendarFeed"(TEXT) FROM PUBLIC, "anon", "authenticated";
339
- GRANT EXECUTE ON FUNCTION "public"."resolveCalendarFeed"(TEXT) TO "service_role";
340
-
341
- CREATE OR REPLACE FUNCTION "public"."getCalendarFeedEvents"(
342
- "p_user_id" TEXT,
343
- "p_include_tentative" BOOLEAN,
344
- "p_range_start" TIMESTAMPTZ,
345
- "p_range_end" TIMESTAMPTZ
346
- )
347
- RETURNS TABLE (
348
- "eventId" TEXT,
349
- "startsAt" TIMESTAMPTZ,
350
- "endsAt" TIMESTAMPTZ,
351
- "allDay" BOOLEAN,
352
- "summary" TEXT,
353
- "eventType" TEXT,
354
- "groupName" TEXT,
355
- "language" TEXT,
356
- "description" TEXT,
357
- "location" TEXT,
358
- "latitude" DOUBLE PRECISION,
359
- "longitude" DOUBLE PRECISION,
360
- "timezone" TEXT,
361
- "lastModified" TIMESTAMPTZ,
362
- "sequence" BIGINT,
363
- "status" TEXT,
364
- "url" TEXT
365
- )
366
- LANGUAGE sql
367
- STABLE
368
- SECURITY INVOKER
369
- SET search_path = ''
370
- AS $$
371
- WITH current_events AS (
372
- SELECT
373
- e."id" AS "eventId",
374
- e."datetime" AS "startsAt",
375
- e."datetimeEnd" AS "endsAt",
376
- false AS "allDay",
377
- COALESCE(NULLIF(e."displayName", ''), '') AS "summary",
378
- e."type"::TEXT AS "eventType",
379
- g."displayName" AS "groupName",
380
- feed_user."language" AS "language",
381
- e."description" AS "description",
382
- NULLIF(e."locality", '') AS "location",
383
- CASE
384
- WHEN "extensions"."st_x"(e."location"::"extensions"."geometry") <> 0
385
- OR "extensions"."st_y"(e."location"::"extensions"."geometry") <> 0
386
- THEN "extensions"."st_x"(e."location"::"extensions"."geometry")
387
- ELSE NULL
388
- END AS "latitude",
389
- CASE
390
- WHEN "extensions"."st_x"(e."location"::"extensions"."geometry") <> 0
391
- OR "extensions"."st_y"(e."location"::"extensions"."geometry") <> 0
392
- THEN "extensions"."st_y"(e."location"::"extensions"."geometry")
393
- ELSE NULL
394
- END AS "longitude",
395
- e."timezone" AS "timezone",
396
- GREATEST(e."updatedAt", feed."updated_at") AS "lastModified",
397
- e."calendarSequence" + feed."content_revision" AS "sequence",
398
- "private"."calendarPlayerState"(
399
- e."players" -> "p_user_id",
400
- e."selectionMode"::TEXT
401
- ) AS "playerState",
402
- CASE
403
- WHEN e."shortDynamicLink" ~ '^https://(app(-dev)?\.glissandoo\.com|glissandoo\.com|dev\.glissandoo\.com|glissandoo\.page\.link)/'
404
- THEN e."shortDynamicLink"
405
- ELSE NULL
406
- END AS "url"
407
- FROM "public"."event" AS e
408
- JOIN "public"."group" AS g ON g."id" = e."promoter"
409
- JOIN "public"."user" AS feed_user ON feed_user."userId" = "p_user_id"
410
- JOIN "public"."calendar_feed" AS feed ON feed."user_id" = "p_user_id"
411
- WHERE e."deletedAt" IS NULL
412
- AND g."deletedAt" IS NULL
413
- AND feed_user."deletedAt" IS NULL
414
- AND e."datetimeEnd" >= "p_range_start"
415
- AND e."datetime" <= "p_range_end"
416
- AND e."players" ? "p_user_id"
417
- AND (
418
- COALESCE((e."players" -> "p_user_id" ->> 'isGuest')::BOOLEAN, false)
419
- OR EXISTS (
420
- SELECT 1
421
- FROM "public"."userGroup" AS membership
422
- WHERE membership."userId" = "p_user_id"
423
- AND membership."groupId" = e."promoter"
424
- )
425
- )
426
- ),
427
- visible_events AS (
428
- SELECT *
429
- FROM current_events
430
- WHERE CASE "playerState"
431
- WHEN 'accepted' THEN true
432
- WHEN 'tentative' THEN "p_include_tentative"
433
- ELSE false
434
- END
435
- )
436
- SELECT
437
- visible."eventId",
438
- visible."startsAt",
439
- visible."endsAt",
440
- visible."allDay",
441
- visible."summary",
442
- visible."eventType",
443
- visible."groupName",
444
- visible."language",
445
- visible."description",
446
- visible."location",
447
- visible."latitude",
448
- visible."longitude",
449
- visible."timezone",
450
- visible."lastModified",
451
- visible."sequence",
452
- CASE
453
- WHEN visible."playerState" = 'accepted' THEN 'CONFIRMED'
454
- ELSE 'TENTATIVE'
455
- END AS "status",
456
- visible."url"
457
- FROM visible_events AS visible
458
-
459
- UNION ALL
460
-
461
- SELECT
462
- cancelled."event_id",
463
- cancelled."starts_at",
464
- cancelled."ends_at",
465
- cancelled."all_day",
466
- COALESCE(cancelled."display_name", ''),
467
- cancelled."event_type",
468
- cancelled."group_name",
469
- feed_user."language",
470
- cancelled."description",
471
- cancelled."location",
472
- cancelled."latitude",
473
- cancelled."longitude",
474
- cancelled."timezone",
475
- GREATEST(cancelled."last_modified", feed."updated_at"),
476
- cancelled."sequence" + feed."content_revision",
477
- 'CANCELLED',
478
- cancelled."url"
479
- FROM "public"."calendar_event_cancellation" AS cancelled
480
- JOIN "public"."calendar_feed" AS feed
481
- ON feed."user_id" = cancelled."user_id"
482
- JOIN "public"."user" AS feed_user
483
- ON feed_user."userId" = cancelled."user_id"
484
- WHERE cancelled."user_id" = "p_user_id"
485
- AND cancelled."expires_at" > now()
486
- AND cancelled."ends_at" >= "p_range_start"
487
- AND cancelled."starts_at" <= "p_range_end"
488
- AND NOT EXISTS (
489
- SELECT 1
490
- FROM visible_events AS visible
491
- WHERE visible."eventId" = cancelled."event_id"
492
- );
493
- $$;
494
-
495
- REVOKE ALL ON FUNCTION "public"."getCalendarFeedEvents"(
496
- TEXT,
497
- BOOLEAN,
498
- TIMESTAMPTZ,
499
- TIMESTAMPTZ
500
- ) FROM PUBLIC, "anon", "authenticated";
501
- GRANT EXECUTE ON FUNCTION "public"."getCalendarFeedEvents"(
502
- TEXT,
503
- BOOLEAN,
504
- TIMESTAMPTZ,
505
- TIMESTAMPTZ
506
- ) TO "service_role";