@glissandoo/lib 1.123.1 → 1.123.2

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/.firebaserc +7 -0
  2. package/.husky/pre-commit +4 -0
  3. package/README.md +70 -0
  4. package/{models → lib/models}/User/index.d.ts +7 -1
  5. package/{models → lib/models}/User/index.js +9 -0
  6. package/{models → lib/models}/User/types.d.ts +6 -0
  7. package/{models → lib/models}/User/types.js +5 -1
  8. package/package.json +1 -1
  9. package/scripts/setHusky.js +11 -0
  10. package/supabase/.dev.env +1 -0
  11. package/supabase/.prod.env +1 -0
  12. package/supabase/.sample.env +2 -0
  13. package/supabase/README.md +126 -0
  14. package/supabase/config.toml +68 -0
  15. package/supabase/migrations/20231117044943_remote_schema.sql +228 -0
  16. package/supabase/migrations/20231117124947_event_selection_mode_closed_at_nullable.sql +1 -0
  17. package/supabase/migrations/20231121002132_remote_schema.sql +31 -0
  18. package/supabase/migrations/20231121004031_references_nullable.sql +3 -0
  19. package/supabase/migrations/20231121014339_updated_at_trigger.sql +13 -0
  20. package/supabase/migrations/20231122111241_remote_schema.sql +25 -0
  21. package/supabase/migrations/20231124151424_snake_case_to_camel_case.sql +105 -0
  22. package/supabase/migrations/20231129133721_add_columns_for_sites.sql +11 -0
  23. package/supabase/migrations/20231129142806_promoter_can_be_null.sql +3 -0
  24. package/supabase/migrations/20231130125327_group_location_latlon.sql +3 -0
  25. package/supabase/migrations/20231130150154_error_solvings.sql +9 -0
  26. package/supabase/migrations/20240405115914_new_columns.sql +9 -0
  27. package/supabase/migrations/20240405121956_init_offer.sql +81 -0
  28. package/supabase/migrations/20240503032440_add_columns_to_offer.sql +11 -0
  29. package/supabase/migrations/20240503101641_add_column_createdOn.sql +19 -0
  30. package/supabase/migrations/20240506035104_add_groupInfo_to_offer.sql +10 -0
  31. package/supabase/migrations/20240510110328_add_relationships_to_offer.sql +9 -0
  32. package/supabase/migrations/20240514100316_offers_public.sql +9 -0
  33. package/supabase/migrations/20260506013030_add_user_mirror.sql +50 -0
  34. package/supabase/migrations/20260506013031_add_user_group_mirror.sql +31 -0
  35. package/supabase/migrations/20260529000000_init_group_payment.sql +79 -0
  36. package/supabase/migrations/20260529120000_group_payment_realtime.sql +19 -0
  37. package/supabase/migrations/20260529130000_group_payment_anon_read.sql +16 -0
  38. package/supabase/migrations/20260601000000_group_payment_concept_norm.sql +20 -0
  39. package/supabase/migrations/20260605000000_init_partnership_domain.sql +333 -0
  40. package/supabase/migrations/20260605000100_partnership_recurring_rpc.sql +62 -0
  41. package/supabase/migrations/20260606000000_partnership_payer.sql +83 -0
  42. package/supabase/migrations/20260607000000_partnership_partner_number_not_unique.sql +10 -0
  43. package/supabase/migrations/20260608000000_partnership_payment_method_bizum.sql +2 -0
  44. package/supabase/migrations/20260609000000_partnership_payment_sepa_end_to_end.sql +13 -0
  45. package/supabase/migrations/20260617000000_partnership_portal_query_indexes.sql +23 -0
  46. package/supabase/migrations/20260618000000_partnership_communication_attachments.sql +5 -0
  47. package/supabase/migrations/20260701000000_partnership_recurring_rpc_drop_ambiguous.sql +29 -0
  48. package/supabase/migrations/20260713191700_add_personal_calendar_feed.sql +506 -0
  49. package/supabase/migrations/20260714193734_add_pending_calendar_invitations.sql +403 -0
  50. package/supabase/migrations/20260714205623_add_event_datetime_end_backfill.sql +64 -0
  51. package/supabase/migrations/20260729161126_remove_calendar_event_history_dependency.sql +19 -0
  52. package/supabase/migrations/20260729161202_reconcile_production_remote_schema.sql +135 -0
  53. package/supabase/migrations/20260804120000_add_calendar_feed_token_cipher.sql +9 -0
  54. package/supabase/migrations/20260805120000_replace_usergroup_with_group_playerids.sql +363 -0
  55. package/supabase/seed.sql +2973 -0
  56. package/types/firestore.ts +0 -1998
  57. package/types/messagebirdChatWidget.ts +0 -20
  58. package/types/minVersion.ts +0 -4
  59. package/types/payoutRule.ts +0 -132
  60. package/types/supabase/generated.ts +0 -1682
  61. package/types/supabase/index.ts +0 -36
  62. package/types/supabase/overwrites/comm.ts +0 -18
  63. package/types/supabase/overwrites/comm_history.ts +0 -10
  64. package/types/supabase/overwrites/event.ts +0 -28
  65. package/types/supabase/overwrites/event_history.ts +0 -10
  66. package/types/supabase/overwrites/group.ts +0 -49
  67. package/types/supabase/overwrites/group_history.ts +0 -9
  68. package/types/supabase/overwrites/index.ts +0 -7
  69. package/types/supabase/overwrites/offer.ts +0 -15
  70. package/types/supabase/overwrites/offer_history.ts +0 -10
  71. package/types/supabase/overwrites/repertoire.ts +0 -12
  72. package/types/supabase/overwrites/repertoire_history.ts +0 -10
  73. package/types/supabase/overwrites/utils.ts +0 -4
  74. /package/{functions → lib/functions}/auth.d.ts +0 -0
  75. /package/{functions → lib/functions}/auth.js +0 -0
  76. /package/{functions → lib/functions}/calendarFeed.d.ts +0 -0
  77. /package/{functions → lib/functions}/calendarFeed.js +0 -0
  78. /package/{functions → lib/functions}/communication.d.ts +0 -0
  79. /package/{functions → lib/functions}/communication.js +0 -0
  80. /package/{functions → lib/functions}/communicationComment.d.ts +0 -0
  81. /package/{functions → lib/functions}/communicationComment.js +0 -0
  82. /package/{functions → lib/functions}/customer.d.ts +0 -0
  83. /package/{functions → lib/functions}/customer.js +0 -0
  84. /package/{functions → lib/functions}/customerGroup.d.ts +0 -0
  85. /package/{functions → lib/functions}/customerGroup.js +0 -0
  86. /package/{functions → lib/functions}/event.d.ts +0 -0
  87. /package/{functions → lib/functions}/event.js +0 -0
  88. /package/{functions → lib/functions}/eventPlayer.d.ts +0 -0
  89. /package/{functions → lib/functions}/eventPlayer.js +0 -0
  90. /package/{functions → lib/functions}/eventRepertory.d.ts +0 -0
  91. /package/{functions → lib/functions}/eventRepertory.js +0 -0
  92. /package/{functions → lib/functions}/eventoPayout.d.ts +0 -0
  93. /package/{functions → lib/functions}/eventoPayout.js +0 -0
  94. /package/{functions → lib/functions}/federation.d.ts +0 -0
  95. /package/{functions → lib/functions}/federation.js +0 -0
  96. /package/{functions → lib/functions}/federationPartnership.d.ts +0 -0
  97. /package/{functions → lib/functions}/federationPartnership.js +0 -0
  98. /package/{functions → lib/functions}/group.d.ts +0 -0
  99. /package/{functions → lib/functions}/group.js +0 -0
  100. /package/{functions → lib/functions}/groupEventStage.d.ts +0 -0
  101. /package/{functions → lib/functions}/groupEventStage.js +0 -0
  102. /package/{functions → lib/functions}/groupModule.d.ts +0 -0
  103. /package/{functions → lib/functions}/groupModule.js +0 -0
  104. /package/{functions → lib/functions}/groupPayment.d.ts +0 -0
  105. /package/{functions → lib/functions}/groupPayment.js +0 -0
  106. /package/{functions → lib/functions}/groupPayoutRule.d.ts +0 -0
  107. /package/{functions → lib/functions}/groupPayoutRule.js +0 -0
  108. /package/{functions → lib/functions}/groupPlayer.d.ts +0 -0
  109. /package/{functions → lib/functions}/groupPlayer.js +0 -0
  110. /package/{functions → lib/functions}/groupRepertory.d.ts +0 -0
  111. /package/{functions → lib/functions}/groupRepertory.js +0 -0
  112. /package/{functions → lib/functions}/index.d.ts +0 -0
  113. /package/{functions → lib/functions}/index.js +0 -0
  114. /package/{functions → lib/functions}/inventory.d.ts +0 -0
  115. /package/{functions → lib/functions}/inventory.js +0 -0
  116. /package/{functions → lib/functions}/inventoryItem.d.ts +0 -0
  117. /package/{functions → lib/functions}/inventoryItem.js +0 -0
  118. /package/{functions → lib/functions}/jwt.d.ts +0 -0
  119. /package/{functions → lib/functions}/jwt.js +0 -0
  120. /package/{functions → lib/functions}/misc.d.ts +0 -0
  121. /package/{functions → lib/functions}/misc.js +0 -0
  122. /package/{functions → lib/functions}/notification.d.ts +0 -0
  123. /package/{functions → lib/functions}/notification.js +0 -0
  124. /package/{functions → lib/functions}/offer.d.ts +0 -0
  125. /package/{functions → lib/functions}/offer.js +0 -0
  126. /package/{functions → lib/functions}/offerApplicant.d.ts +0 -0
  127. /package/{functions → lib/functions}/offerApplicant.js +0 -0
  128. /package/{functions → lib/functions}/partnership.d.ts +0 -0
  129. /package/{functions → lib/functions}/partnership.js +0 -0
  130. /package/{functions → lib/functions}/partnershipCommunication.d.ts +0 -0
  131. /package/{functions → lib/functions}/partnershipCommunication.js +0 -0
  132. /package/{functions → lib/functions}/partnershipGroup.d.ts +0 -0
  133. /package/{functions → lib/functions}/partnershipGroup.js +0 -0
  134. /package/{functions → lib/functions}/partnershipPartner.d.ts +0 -0
  135. /package/{functions → lib/functions}/partnershipPartner.js +0 -0
  136. /package/{functions → lib/functions}/partnershipPayment.d.ts +0 -0
  137. /package/{functions → lib/functions}/partnershipPayment.js +0 -0
  138. /package/{functions → lib/functions}/partnershipPlan.d.ts +0 -0
  139. /package/{functions → lib/functions}/partnershipPlan.js +0 -0
  140. /package/{functions → lib/functions}/partnershipSepaPaymentGroup.d.ts +0 -0
  141. /package/{functions → lib/functions}/partnershipSepaPaymentGroup.js +0 -0
  142. /package/{functions → lib/functions}/partnershipSubscription.d.ts +0 -0
  143. /package/{functions → lib/functions}/partnershipSubscription.js +0 -0
  144. /package/{functions → lib/functions}/regions.d.ts +0 -0
  145. /package/{functions → lib/functions}/regions.js +0 -0
  146. /package/{functions → lib/functions}/subscription.d.ts +0 -0
  147. /package/{functions → lib/functions}/subscription.js +0 -0
  148. /package/{functions → lib/functions}/user.d.ts +0 -0
  149. /package/{functions → lib/functions}/user.js +0 -0
  150. /package/{functions → lib/functions}/userNotification.d.ts +0 -0
  151. /package/{functions → lib/functions}/userNotification.js +0 -0
  152. /package/{helpers → lib/helpers}/appScenes.d.ts +0 -0
  153. /package/{helpers → lib/helpers}/appScenes.js +0 -0
  154. /package/{helpers → lib/helpers}/audios.d.ts +0 -0
  155. /package/{helpers → lib/helpers}/audios.js +0 -0
  156. /package/{helpers → lib/helpers}/auth.d.ts +0 -0
  157. /package/{helpers → lib/helpers}/auth.js +0 -0
  158. /package/{helpers → lib/helpers}/badges.d.ts +0 -0
  159. /package/{helpers → lib/helpers}/badges.js +0 -0
  160. /package/{helpers → lib/helpers}/collections.d.ts +0 -0
  161. /package/{helpers → lib/helpers}/collections.js +0 -0
  162. /package/{helpers → lib/helpers}/communicationTemplate/index.d.ts +0 -0
  163. /package/{helpers → lib/helpers}/communicationTemplate/index.js +0 -0
  164. /package/{helpers → lib/helpers}/communicationTemplate/newGroup.d.ts +0 -0
  165. /package/{helpers → lib/helpers}/communicationTemplate/newGroup.js +0 -0
  166. /package/{helpers → lib/helpers}/communicationTemplate/newMember.d.ts +0 -0
  167. /package/{helpers → lib/helpers}/communicationTemplate/newMember.js +0 -0
  168. /package/{helpers → lib/helpers}/countries.d.ts +0 -0
  169. /package/{helpers → lib/helpers}/countries.js +0 -0
  170. /package/{helpers → lib/helpers}/currency.d.ts +0 -0
  171. /package/{helpers → lib/helpers}/currency.js +0 -0
  172. /package/{helpers → lib/helpers}/dlinks.d.ts +0 -0
  173. /package/{helpers → lib/helpers}/dlinks.js +0 -0
  174. /package/{helpers → lib/helpers}/errors.d.ts +0 -0
  175. /package/{helpers → lib/helpers}/errors.js +0 -0
  176. /package/{helpers → lib/helpers}/fileSections/index.d.ts +0 -0
  177. /package/{helpers → lib/helpers}/fileSections/index.js +0 -0
  178. /package/{helpers → lib/helpers}/fileSections/orders.d.ts +0 -0
  179. /package/{helpers → lib/helpers}/fileSections/orders.js +0 -0
  180. /package/{helpers → lib/helpers}/glissandooAdmin.d.ts +0 -0
  181. /package/{helpers → lib/helpers}/glissandooAdmin.js +0 -0
  182. /package/{helpers → lib/helpers}/instruments/index.d.ts +0 -0
  183. /package/{helpers → lib/helpers}/instruments/index.js +0 -0
  184. /package/{helpers → lib/helpers}/instruments/lists.d.ts +0 -0
  185. /package/{helpers → lib/helpers}/instruments/lists.js +0 -0
  186. /package/{helpers → lib/helpers}/instruments/orders.d.ts +0 -0
  187. /package/{helpers → lib/helpers}/instruments/orders.js +0 -0
  188. /package/{helpers → lib/helpers}/musicStyles/index.d.ts +0 -0
  189. /package/{helpers → lib/helpers}/musicStyles/index.js +0 -0
  190. /package/{helpers → lib/helpers}/musicStyles/orders.d.ts +0 -0
  191. /package/{helpers → lib/helpers}/musicStyles/orders.js +0 -0
  192. /package/{helpers → lib/helpers}/notifications/index.d.ts +0 -0
  193. /package/{helpers → lib/helpers}/notifications/index.js +0 -0
  194. /package/{helpers → lib/helpers}/notifications/placeholders.d.ts +0 -0
  195. /package/{helpers → lib/helpers}/notifications/placeholders.js +0 -0
  196. /package/{helpers → lib/helpers}/objects.d.ts +0 -0
  197. /package/{helpers → lib/helpers}/objects.js +0 -0
  198. /package/{helpers → lib/helpers}/paymentForecast.d.ts +0 -0
  199. /package/{helpers → lib/helpers}/paymentForecast.js +0 -0
  200. /package/{helpers → lib/helpers}/payoutRules.d.ts +0 -0
  201. /package/{helpers → lib/helpers}/payoutRules.js +0 -0
  202. /package/{helpers → lib/helpers}/plans.d.ts +0 -0
  203. /package/{helpers → lib/helpers}/plans.js +0 -0
  204. /package/{helpers → lib/helpers}/rates.d.ts +0 -0
  205. /package/{helpers → lib/helpers}/rates.js +0 -0
  206. /package/{helpers → lib/helpers}/reasons.d.ts +0 -0
  207. /package/{helpers → lib/helpers}/reasons.js +0 -0
  208. /package/{helpers → lib/helpers}/slate.d.ts +0 -0
  209. /package/{helpers → lib/helpers}/slate.js +0 -0
  210. /package/{helpers → lib/helpers}/styles.d.ts +0 -0
  211. /package/{helpers → lib/helpers}/styles.js +0 -0
  212. /package/{helpers → lib/helpers}/ts-extras/array-includes.d.ts +0 -0
  213. /package/{helpers → lib/helpers}/ts-extras/array-includes.js +0 -0
  214. /package/{helpers → lib/helpers}/ts-extras/as-mutable.d.ts +0 -0
  215. /package/{helpers → lib/helpers}/ts-extras/as-mutable.js +0 -0
  216. /package/{helpers → lib/helpers}/ts-extras/assert-error.d.ts +0 -0
  217. /package/{helpers → lib/helpers}/ts-extras/assert-error.js +0 -0
  218. /package/{helpers → lib/helpers}/ts-extras/index.d.ts +0 -0
  219. /package/{helpers → lib/helpers}/ts-extras/index.js +0 -0
  220. /package/{helpers → lib/helpers}/ts-extras/is-defined.d.ts +0 -0
  221. /package/{helpers → lib/helpers}/ts-extras/is-defined.js +0 -0
  222. /package/{helpers → lib/helpers}/ts-extras/is-empty.d.ts +0 -0
  223. /package/{helpers → lib/helpers}/ts-extras/is-empty.js +0 -0
  224. /package/{helpers → lib/helpers}/ts-extras/is-finite.d.ts +0 -0
  225. /package/{helpers → lib/helpers}/ts-extras/is-finite.js +0 -0
  226. /package/{helpers → lib/helpers}/ts-extras/is-infinite.d.ts +0 -0
  227. /package/{helpers → lib/helpers}/ts-extras/is-infinite.js +0 -0
  228. /package/{helpers → lib/helpers}/ts-extras/is-integer.d.ts +0 -0
  229. /package/{helpers → lib/helpers}/ts-extras/is-integer.js +0 -0
  230. /package/{helpers → lib/helpers}/ts-extras/is-present.d.ts +0 -0
  231. /package/{helpers → lib/helpers}/ts-extras/is-present.js +0 -0
  232. /package/{helpers → lib/helpers}/ts-extras/is-safe-integer.d.ts +0 -0
  233. /package/{helpers → lib/helpers}/ts-extras/is-safe-integer.js +0 -0
  234. /package/{helpers → lib/helpers}/ts-extras/object-entries.d.ts +0 -0
  235. /package/{helpers → lib/helpers}/ts-extras/object-entries.js +0 -0
  236. /package/{helpers → lib/helpers}/ts-extras/object-from-entries.d.ts +0 -0
  237. /package/{helpers → lib/helpers}/ts-extras/object-from-entries.js +0 -0
  238. /package/{helpers → lib/helpers}/ts-extras/object-has-own.d.ts +0 -0
  239. /package/{helpers → lib/helpers}/ts-extras/object-has-own.js +0 -0
  240. /package/{helpers → lib/helpers}/ts-extras/object-keys.d.ts +0 -0
  241. /package/{helpers → lib/helpers}/ts-extras/object-keys.js +0 -0
  242. /package/{helpers → lib/helpers}/ts-extras/set-has.d.ts +0 -0
  243. /package/{helpers → lib/helpers}/ts-extras/set-has.js +0 -0
  244. /package/{helpers → lib/helpers}/types.d.ts +0 -0
  245. /package/{helpers → lib/helpers}/types.js +0 -0
  246. /package/{helpers → lib/helpers}/utils.d.ts +0 -0
  247. /package/{helpers → lib/helpers}/utils.js +0 -0
  248. /package/{index.d.ts → lib/index.d.ts} +0 -0
  249. /package/{index.js → lib/index.js} +0 -0
  250. /package/{lang → lib/lang}/ca.json +0 -0
  251. /package/{lang → lib/lang}/de.json +0 -0
  252. /package/{lang → lib/lang}/en.json +0 -0
  253. /package/{lang → lib/lang}/es.json +0 -0
  254. /package/{lang → lib/lang}/eu.json +0 -0
  255. /package/{lang → lib/lang}/fr.json +0 -0
  256. /package/{lang → lib/lang}/gl.json +0 -0
  257. /package/{lang → lib/lang}/index.d.ts +0 -0
  258. /package/{lang → lib/lang}/index.js +0 -0
  259. /package/{lang → lib/lang}/it.json +0 -0
  260. /package/{lang → lib/lang}/nl.json +0 -0
  261. /package/{lang → lib/lang}/pt.json +0 -0
  262. /package/{models → lib/models}/Communication/Comment/index.d.ts +0 -0
  263. /package/{models → lib/models}/Communication/Comment/index.js +0 -0
  264. /package/{models → lib/models}/Communication/Comment/types.d.ts +0 -0
  265. /package/{models → lib/models}/Communication/Comment/types.js +0 -0
  266. /package/{models → lib/models}/Communication/index.d.ts +0 -0
  267. /package/{models → lib/models}/Communication/index.js +0 -0
  268. /package/{models → lib/models}/Communication/types.d.ts +0 -0
  269. /package/{models → lib/models}/Communication/types.js +0 -0
  270. /package/{models → lib/models}/Counters/Group/Analytics/index.d.ts +0 -0
  271. /package/{models → lib/models}/Counters/Group/Analytics/index.js +0 -0
  272. /package/{models → lib/models}/Counters/Group/Analytics/types.d.ts +0 -0
  273. /package/{models → lib/models}/Counters/Group/Analytics/types.js +0 -0
  274. /package/{models → lib/models}/Counters/Group/index.d.ts +0 -0
  275. /package/{models → lib/models}/Counters/Group/index.js +0 -0
  276. /package/{models → lib/models}/Counters/Group/types.d.ts +0 -0
  277. /package/{models → lib/models}/Counters/Group/types.js +0 -0
  278. /package/{models → lib/models}/Counters/event.d.ts +0 -0
  279. /package/{models → lib/models}/Counters/event.js +0 -0
  280. /package/{models → lib/models}/Counters/index.d.ts +0 -0
  281. /package/{models → lib/models}/Counters/index.js +0 -0
  282. /package/{models → lib/models}/Counters/types.d.ts +0 -0
  283. /package/{models → lib/models}/Counters/types.js +0 -0
  284. /package/{models → lib/models}/Customer/Group/index.d.ts +0 -0
  285. /package/{models → lib/models}/Customer/Group/index.js +0 -0
  286. /package/{models → lib/models}/Customer/Group/types.d.ts +0 -0
  287. /package/{models → lib/models}/Customer/Group/types.js +0 -0
  288. /package/{models → lib/models}/Customer/basic.d.ts +0 -0
  289. /package/{models → lib/models}/Customer/basic.js +0 -0
  290. /package/{models → lib/models}/Customer/index.d.ts +0 -0
  291. /package/{models → lib/models}/Customer/index.js +0 -0
  292. /package/{models → lib/models}/Customer/types.d.ts +0 -0
  293. /package/{models → lib/models}/Customer/types.js +0 -0
  294. /package/{models → lib/models}/Evento/Player/basic.d.ts +0 -0
  295. /package/{models → lib/models}/Evento/Player/basic.js +0 -0
  296. /package/{models → lib/models}/Evento/Player/index.d.ts +0 -0
  297. /package/{models → lib/models}/Evento/Player/index.js +0 -0
  298. /package/{models → lib/models}/Evento/Player/types.d.ts +0 -0
  299. /package/{models → lib/models}/Evento/Player/types.js +0 -0
  300. /package/{models → lib/models}/Evento/Repertory/index.d.ts +0 -0
  301. /package/{models → lib/models}/Evento/Repertory/index.js +0 -0
  302. /package/{models → lib/models}/Evento/Repertory/types.d.ts +0 -0
  303. /package/{models → lib/models}/Evento/Repertory/types.js +0 -0
  304. /package/{models → lib/models}/Evento/basic.d.ts +0 -0
  305. /package/{models → lib/models}/Evento/basic.js +0 -0
  306. /package/{models → lib/models}/Evento/index.d.ts +0 -0
  307. /package/{models → lib/models}/Evento/index.js +0 -0
  308. /package/{models → lib/models}/Evento/promoter.d.ts +0 -0
  309. /package/{models → lib/models}/Evento/promoter.js +0 -0
  310. /package/{models → lib/models}/Evento/tiny.d.ts +0 -0
  311. /package/{models → lib/models}/Evento/tiny.js +0 -0
  312. /package/{models → lib/models}/Evento/types.d.ts +0 -0
  313. /package/{models → lib/models}/Evento/types.js +0 -0
  314. /package/{models → lib/models}/Federation/Partnership/index.d.ts +0 -0
  315. /package/{models → lib/models}/Federation/Partnership/index.js +0 -0
  316. /package/{models → lib/models}/Federation/Partnership/types.d.ts +0 -0
  317. /package/{models → lib/models}/Federation/Partnership/types.js +0 -0
  318. /package/{models → lib/models}/Federation/index.d.ts +0 -0
  319. /package/{models → lib/models}/Federation/index.js +0 -0
  320. /package/{models → lib/models}/Federation/types.d.ts +0 -0
  321. /package/{models → lib/models}/Federation/types.js +0 -0
  322. /package/{models → lib/models}/Group/Analytics/index.d.ts +0 -0
  323. /package/{models → lib/models}/Group/Analytics/index.js +0 -0
  324. /package/{models → lib/models}/Group/Analytics/types.d.ts +0 -0
  325. /package/{models → lib/models}/Group/Analytics/types.js +0 -0
  326. /package/{models → lib/models}/Group/Event/index.d.ts +0 -0
  327. /package/{models → lib/models}/Group/Event/index.js +0 -0
  328. /package/{models → lib/models}/Group/Event/types.d.ts +0 -0
  329. /package/{models → lib/models}/Group/Event/types.js +0 -0
  330. /package/{models → lib/models}/Group/Payment/index.d.ts +0 -0
  331. /package/{models → lib/models}/Group/Payment/index.js +0 -0
  332. /package/{models → lib/models}/Group/Payment/supabase.d.ts +0 -0
  333. /package/{models → lib/models}/Group/Payment/supabase.js +0 -0
  334. /package/{models → lib/models}/Group/Payment/types.d.ts +0 -0
  335. /package/{models → lib/models}/Group/Payment/types.js +0 -0
  336. /package/{models → lib/models}/Group/Player/Event/index.d.ts +0 -0
  337. /package/{models → lib/models}/Group/Player/Event/index.js +0 -0
  338. /package/{models → lib/models}/Group/Player/Event/types.d.ts +0 -0
  339. /package/{models → lib/models}/Group/Player/Event/types.js +0 -0
  340. /package/{models → lib/models}/Group/Player/Log/index.d.ts +0 -0
  341. /package/{models → lib/models}/Group/Player/Log/index.js +0 -0
  342. /package/{models → lib/models}/Group/Player/Log/types.d.ts +0 -0
  343. /package/{models → lib/models}/Group/Player/Log/types.js +0 -0
  344. /package/{models → lib/models}/Group/Player/index.d.ts +0 -0
  345. /package/{models → lib/models}/Group/Player/index.js +0 -0
  346. /package/{models → lib/models}/Group/Player/types.d.ts +0 -0
  347. /package/{models → lib/models}/Group/Player/types.js +0 -0
  348. /package/{models → lib/models}/Group/Repertory/File/Section/index.d.ts +0 -0
  349. /package/{models → lib/models}/Group/Repertory/File/Section/index.js +0 -0
  350. /package/{models → lib/models}/Group/Repertory/File/Section/types.d.ts +0 -0
  351. /package/{models → lib/models}/Group/Repertory/File/Section/types.js +0 -0
  352. /package/{models → lib/models}/Group/Repertory/File/index.d.ts +0 -0
  353. /package/{models → lib/models}/Group/Repertory/File/index.js +0 -0
  354. /package/{models → lib/models}/Group/Repertory/File/types.d.ts +0 -0
  355. /package/{models → lib/models}/Group/Repertory/File/types.js +0 -0
  356. /package/{models → lib/models}/Group/Repertory/FilePath/index.d.ts +0 -0
  357. /package/{models → lib/models}/Group/Repertory/FilePath/index.js +0 -0
  358. /package/{models → lib/models}/Group/Repertory/index.d.ts +0 -0
  359. /package/{models → lib/models}/Group/Repertory/index.js +0 -0
  360. /package/{models → lib/models}/Group/Repertory/types.d.ts +0 -0
  361. /package/{models → lib/models}/Group/Repertory/types.js +0 -0
  362. /package/{models → lib/models}/Group/StageTemplate/index.d.ts +0 -0
  363. /package/{models → lib/models}/Group/StageTemplate/index.js +0 -0
  364. /package/{models → lib/models}/Group/StageTemplate/types.d.ts +0 -0
  365. /package/{models → lib/models}/Group/StageTemplate/types.js +0 -0
  366. /package/{models → lib/models}/Group/basic.d.ts +0 -0
  367. /package/{models → lib/models}/Group/basic.js +0 -0
  368. /package/{models → lib/models}/Group/index.d.ts +0 -0
  369. /package/{models → lib/models}/Group/index.js +0 -0
  370. /package/{models → lib/models}/Group/types.d.ts +0 -0
  371. /package/{models → lib/models}/Group/types.js +0 -0
  372. /package/{models → lib/models}/Instrument/group.d.ts +0 -0
  373. /package/{models → lib/models}/Instrument/group.js +0 -0
  374. /package/{models → lib/models}/Instrument/index.d.ts +0 -0
  375. /package/{models → lib/models}/Instrument/index.js +0 -0
  376. /package/{models → lib/models}/Inventory/Item/index.d.ts +0 -0
  377. /package/{models → lib/models}/Inventory/Item/index.js +0 -0
  378. /package/{models → lib/models}/Inventory/Item/types.d.ts +0 -0
  379. /package/{models → lib/models}/Inventory/Item/types.js +0 -0
  380. /package/{models → lib/models}/Inventory/index.d.ts +0 -0
  381. /package/{models → lib/models}/Inventory/index.js +0 -0
  382. /package/{models → lib/models}/Inventory/types.d.ts +0 -0
  383. /package/{models → lib/models}/Inventory/types.js +0 -0
  384. /package/{models → lib/models}/Metrics/index.d.ts +0 -0
  385. /package/{models → lib/models}/Metrics/index.js +0 -0
  386. /package/{models → lib/models}/Metrics/types.d.ts +0 -0
  387. /package/{models → lib/models}/Metrics/types.js +0 -0
  388. /package/{models → lib/models}/Model/index.d.ts +0 -0
  389. /package/{models → lib/models}/Model/index.js +0 -0
  390. /package/{models → lib/models}/Model/lang.d.ts +0 -0
  391. /package/{models → lib/models}/Model/lang.js +0 -0
  392. /package/{models → lib/models}/MusicStyle/index.d.ts +0 -0
  393. /package/{models → lib/models}/MusicStyle/index.js +0 -0
  394. /package/{models → lib/models}/Notification/index.d.ts +0 -0
  395. /package/{models → lib/models}/Notification/index.js +0 -0
  396. /package/{models → lib/models}/Notification/types.d.ts +0 -0
  397. /package/{models → lib/models}/Notification/types.js +0 -0
  398. /package/{models → lib/models}/Offer/Applicant/index.d.ts +0 -0
  399. /package/{models → lib/models}/Offer/Applicant/index.js +0 -0
  400. /package/{models → lib/models}/Offer/Applicant/types.d.ts +0 -0
  401. /package/{models → lib/models}/Offer/Applicant/types.js +0 -0
  402. /package/{models → lib/models}/Offer/index.d.ts +0 -0
  403. /package/{models → lib/models}/Offer/index.js +0 -0
  404. /package/{models → lib/models}/Offer/types.d.ts +0 -0
  405. /package/{models → lib/models}/Offer/types.js +0 -0
  406. /package/{models → lib/models}/Partnership/Communication/index.d.ts +0 -0
  407. /package/{models → lib/models}/Partnership/Communication/index.js +0 -0
  408. /package/{models → lib/models}/Partnership/Communication/supabase.d.ts +0 -0
  409. /package/{models → lib/models}/Partnership/Communication/supabase.js +0 -0
  410. /package/{models → lib/models}/Partnership/Communication/types.d.ts +0 -0
  411. /package/{models → lib/models}/Partnership/Communication/types.js +0 -0
  412. /package/{models → lib/models}/Partnership/Group/index.d.ts +0 -0
  413. /package/{models → lib/models}/Partnership/Group/index.js +0 -0
  414. /package/{models → lib/models}/Partnership/Group/supabase.d.ts +0 -0
  415. /package/{models → lib/models}/Partnership/Group/supabase.js +0 -0
  416. /package/{models → lib/models}/Partnership/Group/types.d.ts +0 -0
  417. /package/{models → lib/models}/Partnership/Group/types.js +0 -0
  418. /package/{models → lib/models}/Partnership/Partner/index.d.ts +0 -0
  419. /package/{models → lib/models}/Partnership/Partner/index.js +0 -0
  420. /package/{models → lib/models}/Partnership/Partner/supabase.d.ts +0 -0
  421. /package/{models → lib/models}/Partnership/Partner/supabase.js +0 -0
  422. /package/{models → lib/models}/Partnership/Partner/types.d.ts +0 -0
  423. /package/{models → lib/models}/Partnership/Partner/types.js +0 -0
  424. /package/{models → lib/models}/Partnership/Payment/index.d.ts +0 -0
  425. /package/{models → lib/models}/Partnership/Payment/index.js +0 -0
  426. /package/{models → lib/models}/Partnership/Payment/supabase.d.ts +0 -0
  427. /package/{models → lib/models}/Partnership/Payment/supabase.js +0 -0
  428. /package/{models → lib/models}/Partnership/Payment/types.d.ts +0 -0
  429. /package/{models → lib/models}/Partnership/Payment/types.js +0 -0
  430. /package/{models → lib/models}/Partnership/Plan/index.d.ts +0 -0
  431. /package/{models → lib/models}/Partnership/Plan/index.js +0 -0
  432. /package/{models → lib/models}/Partnership/Plan/supabase.d.ts +0 -0
  433. /package/{models → lib/models}/Partnership/Plan/supabase.js +0 -0
  434. /package/{models → lib/models}/Partnership/Plan/types.d.ts +0 -0
  435. /package/{models → lib/models}/Partnership/Plan/types.js +0 -0
  436. /package/{models → lib/models}/Partnership/SepaPaymentGroup/index.d.ts +0 -0
  437. /package/{models → lib/models}/Partnership/SepaPaymentGroup/index.js +0 -0
  438. /package/{models → lib/models}/Partnership/SepaPaymentGroup/supabase.d.ts +0 -0
  439. /package/{models → lib/models}/Partnership/SepaPaymentGroup/supabase.js +0 -0
  440. /package/{models → lib/models}/Partnership/SepaPaymentGroup/types.d.ts +0 -0
  441. /package/{models → lib/models}/Partnership/SepaPaymentGroup/types.js +0 -0
  442. /package/{models → lib/models}/Partnership/Subscription/index.d.ts +0 -0
  443. /package/{models → lib/models}/Partnership/Subscription/index.js +0 -0
  444. /package/{models → lib/models}/Partnership/Subscription/supabase.d.ts +0 -0
  445. /package/{models → lib/models}/Partnership/Subscription/supabase.js +0 -0
  446. /package/{models → lib/models}/Partnership/Subscription/types.d.ts +0 -0
  447. /package/{models → lib/models}/Partnership/Subscription/types.js +0 -0
  448. /package/{models → lib/models}/Partnership/basic.d.ts +0 -0
  449. /package/{models → lib/models}/Partnership/basic.js +0 -0
  450. /package/{models → lib/models}/Partnership/index.d.ts +0 -0
  451. /package/{models → lib/models}/Partnership/index.js +0 -0
  452. /package/{models → lib/models}/Partnership/types.d.ts +0 -0
  453. /package/{models → lib/models}/Partnership/types.js +0 -0
  454. /package/{models → lib/models}/Player/basic.d.ts +0 -0
  455. /package/{models → lib/models}/Player/basic.js +0 -0
  456. /package/{models → lib/models}/Player/types.d.ts +0 -0
  457. /package/{models → lib/models}/Player/types.js +0 -0
  458. /package/{models → lib/models}/Repertory/basic.d.ts +0 -0
  459. /package/{models → lib/models}/Repertory/basic.js +0 -0
  460. /package/{models → lib/models}/Repertory/types.d.ts +0 -0
  461. /package/{models → lib/models}/Repertory/types.js +0 -0
  462. /package/{models → lib/models}/User/Group/index.d.ts +0 -0
  463. /package/{models → lib/models}/User/Group/index.js +0 -0
  464. /package/{models → lib/models}/User/Group/types.d.ts +0 -0
  465. /package/{models → lib/models}/User/Group/types.js +0 -0
  466. /package/{models → lib/models}/User/Notification/index.d.ts +0 -0
  467. /package/{models → lib/models}/User/Notification/index.js +0 -0
  468. /package/{models → lib/models}/User/Notification/types.d.ts +0 -0
  469. /package/{models → lib/models}/User/Notification/types.js +0 -0
  470. /package/{models → lib/models}/User/OfferAlarm/index.d.ts +0 -0
  471. /package/{models → lib/models}/User/OfferAlarm/index.js +0 -0
  472. /package/{models → lib/models}/User/OfferAlarm/types.d.ts +0 -0
  473. /package/{models → lib/models}/User/OfferAlarm/types.js +0 -0
  474. /package/{models → lib/models}/User/Partnership/index.d.ts +0 -0
  475. /package/{models → lib/models}/User/Partnership/index.js +0 -0
  476. /package/{models → lib/models}/User/Partnership/types.d.ts +0 -0
  477. /package/{models → lib/models}/User/Partnership/types.js +0 -0
  478. /package/{models → lib/models}/User/basic.d.ts +0 -0
  479. /package/{models → lib/models}/User/basic.js +0 -0
  480. /package/{models → lib/models}/User/extended.d.ts +0 -0
  481. /package/{models → lib/models}/User/extended.js +0 -0
  482. /package/{models → lib/models}/WebhookEvent/index.d.ts +0 -0
  483. /package/{models → lib/models}/WebhookEvent/index.js +0 -0
  484. /package/{models → lib/models}/WebhookEvent/types.d.ts +0 -0
  485. /package/{models → lib/models}/WebhookEvent/types.js +0 -0
  486. /package/{types → lib/types}/firestore.d.ts +0 -0
  487. /package/{types → lib/types}/firestore.js +0 -0
  488. /package/{types → lib/types}/messagebirdChatWidget.d.ts +0 -0
  489. /package/{types → lib/types}/messagebirdChatWidget.js +0 -0
  490. /package/{types → lib/types}/minVersion.d.ts +0 -0
  491. /package/{types → lib/types}/minVersion.js +0 -0
  492. /package/{types → lib/types}/payoutRule.d.ts +0 -0
  493. /package/{types → lib/types}/payoutRule.js +0 -0
  494. /package/{types → lib/types}/supabase/generated.d.ts +0 -0
  495. /package/{types → lib/types}/supabase/generated.js +0 -0
  496. /package/{types → lib/types}/supabase/index.d.ts +0 -0
  497. /package/{types → lib/types}/supabase/index.js +0 -0
  498. /package/{types → lib/types}/supabase/overwrites/comm.d.ts +0 -0
  499. /package/{types → lib/types}/supabase/overwrites/comm.js +0 -0
  500. /package/{types → lib/types}/supabase/overwrites/comm_history.d.ts +0 -0
  501. /package/{types → lib/types}/supabase/overwrites/comm_history.js +0 -0
  502. /package/{types → lib/types}/supabase/overwrites/event.d.ts +0 -0
  503. /package/{types → lib/types}/supabase/overwrites/event.js +0 -0
  504. /package/{types → lib/types}/supabase/overwrites/event_history.d.ts +0 -0
  505. /package/{types → lib/types}/supabase/overwrites/event_history.js +0 -0
  506. /package/{types → lib/types}/supabase/overwrites/group.d.ts +0 -0
  507. /package/{types → lib/types}/supabase/overwrites/group.js +0 -0
  508. /package/{types → lib/types}/supabase/overwrites/group_history.d.ts +0 -0
  509. /package/{types → lib/types}/supabase/overwrites/group_history.js +0 -0
  510. /package/{types → lib/types}/supabase/overwrites/index.d.ts +0 -0
  511. /package/{types → lib/types}/supabase/overwrites/index.js +0 -0
  512. /package/{types → lib/types}/supabase/overwrites/offer.d.ts +0 -0
  513. /package/{types → lib/types}/supabase/overwrites/offer.js +0 -0
  514. /package/{types → lib/types}/supabase/overwrites/offer_history.d.ts +0 -0
  515. /package/{types → lib/types}/supabase/overwrites/offer_history.js +0 -0
  516. /package/{types → lib/types}/supabase/overwrites/repertoire.d.ts +0 -0
  517. /package/{types → lib/types}/supabase/overwrites/repertoire.js +0 -0
  518. /package/{types → lib/types}/supabase/overwrites/repertoire_history.d.ts +0 -0
  519. /package/{types → lib/types}/supabase/overwrites/repertoire_history.js +0 -0
  520. /package/{types → lib/types}/supabase/overwrites/utils.d.ts +0 -0
  521. /package/{types → lib/types}/supabase/overwrites/utils.js +0 -0
@@ -0,0 +1,333 @@
1
+ -- =============================================================================
2
+ -- Migración del dominio Partnership de Firestore a Postgres/Supabase.
3
+ -- Tablas: partner, plan, subscription, payment (+ history), sepa_payment_group,
4
+ -- communication y group (join table sin denormalización).
5
+ -- Las escrituras van vía Cloud Functions con service_role (ignora RLS); el
6
+ -- dashboard/app leen con anon/authenticated mediante políticas `select`.
7
+ -- =============================================================================
8
+
9
+ -- ---------- Enums -----------------------------------------------------------
10
+ create type "public"."partnership_payment_method" as enum ('CASH', 'TRANSFER', 'SEPA');
11
+ create type "public"."partnership_payment_status" as enum ('pending', 'charged', 'returned', 'canceled');
12
+ create type "public"."partnership_partner_status" as enum ('active', 'pending', 'inactive');
13
+ create type "public"."partnership_communication_status" as enum ('sent', 'scheduled');
14
+
15
+ -- ---------- partnership_partner ---------------------------------------------
16
+ create table "public"."partnership_partner" (
17
+ "id" uuid not null default gen_random_uuid(),
18
+ "partnershipId" text not null,
19
+ "userId" text,
20
+ "partnerNumber" integer not null,
21
+ "email" text,
22
+ "name" text not null,
23
+ "lastname" text not null default '',
24
+ "photoURL" text not null default '',
25
+ "birthDate" timestamp with time zone,
26
+ "address" jsonb,
27
+ "phone" text,
28
+ "NIF" text,
29
+ "sepaMandate" jsonb,
30
+ "paymentMethod" partnership_payment_method,
31
+ "groupIds" text[] not null default '{}',
32
+ "tagIds" text[] not null default '{}',
33
+ "subscriptionIds" text[] not null default '{}',
34
+ "subscriptions" jsonb not null default '{}'::jsonb,
35
+ "customFields" jsonb not null default '{}'::jsonb,
36
+ "acceptsCommunications" boolean not null default false,
37
+ "status" partnership_partner_status not null default 'pending',
38
+ "createdAt" timestamp with time zone not null default now(),
39
+ "createdBy" text not null,
40
+ "updatedAt" timestamp with time zone not null default now(),
41
+ "editedBy" text,
42
+ "acceptedAt" timestamp with time zone,
43
+ "acceptedBy" text,
44
+ "deletedAt" timestamp with time zone,
45
+ "deletedBy" text
46
+ );
47
+
48
+ alter table "public"."partnership_partner" enable row level security;
49
+
50
+ CREATE UNIQUE INDEX partnership_partner_pkey ON public.partnership_partner USING btree (id);
51
+ alter table "public"."partnership_partner" add constraint "partnership_partner_pkey" PRIMARY KEY using index "partnership_partner_pkey";
52
+
53
+ -- partnerNumber es el número de socio interno de cada asociación; NO es único
54
+ -- (puede haber duplicados/ausencias). Índice no único solo para búsquedas.
55
+ CREATE INDEX partnership_partner_number_idx
56
+ ON public.partnership_partner USING btree ("partnershipId", "partnerNumber");
57
+ CREATE INDEX partnership_partner_partnership_idx
58
+ ON public.partnership_partner USING btree ("partnershipId");
59
+ CREATE INDEX partnership_partner_user_idx
60
+ ON public.partnership_partner USING btree ("partnershipId", "userId")
61
+ WHERE "userId" is not null;
62
+
63
+ CREATE TRIGGER partnership_partner__handle_updatedat
64
+ BEFORE UPDATE ON public.partnership_partner
65
+ FOR EACH ROW EXECUTE FUNCTION extensions.moddatetime('updatedAt');
66
+
67
+ -- ---------- partnership_plan ------------------------------------------------
68
+ create table "public"."partnership_plan" (
69
+ "id" uuid not null default gen_random_uuid(),
70
+ "partnershipId" text not null,
71
+ "name" text not null,
72
+ "description" text not null default '',
73
+ "price" numeric(12, 2) not null,
74
+ "schedule" jsonb not null,
75
+ "subscriptionsCount" integer not null default 0,
76
+ "createdAt" timestamp with time zone not null default now(),
77
+ "createdBy" text not null,
78
+ "updatedAt" timestamp with time zone not null default now(),
79
+ "editedBy" text,
80
+ "deletedAt" timestamp with time zone,
81
+ "deletedBy" text
82
+ );
83
+
84
+ alter table "public"."partnership_plan" enable row level security;
85
+
86
+ CREATE UNIQUE INDEX partnership_plan_pkey ON public.partnership_plan USING btree (id);
87
+ alter table "public"."partnership_plan" add constraint "partnership_plan_pkey" PRIMARY KEY using index "partnership_plan_pkey";
88
+
89
+ CREATE INDEX partnership_plan_partnership_idx
90
+ ON public.partnership_plan USING btree ("partnershipId")
91
+ WHERE "deletedAt" is null;
92
+
93
+ CREATE TRIGGER partnership_plan__handle_updatedat
94
+ BEFORE UPDATE ON public.partnership_plan
95
+ FOR EACH ROW EXECUTE FUNCTION extensions.moddatetime('updatedAt');
96
+
97
+ -- ---------- partnership_subscription ----------------------------------------
98
+ create table "public"."partnership_subscription" (
99
+ "id" uuid not null default gen_random_uuid(),
100
+ "partnershipId" text not null,
101
+ "planId" uuid not null,
102
+ "partnerId" text not null,
103
+ "partnerInfo" jsonb not null,
104
+ "planInfo" jsonb not null,
105
+ "nextPaymentDate" timestamp with time zone,
106
+ "endDate" timestamp with time zone,
107
+ "createdAt" timestamp with time zone not null default now(),
108
+ "createdBy" text not null,
109
+ "updatedAt" timestamp with time zone not null default now(),
110
+ "editedBy" text,
111
+ "deletedAt" timestamp with time zone,
112
+ "deletedBy" text
113
+ );
114
+
115
+ alter table "public"."partnership_subscription" enable row level security;
116
+
117
+ CREATE UNIQUE INDEX partnership_subscription_pkey ON public.partnership_subscription USING btree (id);
118
+ alter table "public"."partnership_subscription" add constraint "partnership_subscription_pkey" PRIMARY KEY using index "partnership_subscription_pkey";
119
+
120
+ alter table "public"."partnership_subscription"
121
+ add constraint "partnership_subscription_plan_id_fkey"
122
+ FOREIGN KEY ("planId") REFERENCES public.partnership_plan(id)
123
+ ON UPDATE CASCADE ON DELETE CASCADE;
124
+
125
+ CREATE INDEX partnership_subscription_partnership_idx
126
+ ON public.partnership_subscription USING btree ("partnershipId")
127
+ WHERE "deletedAt" is null;
128
+ CREATE INDEX partnership_subscription_plan_idx
129
+ ON public.partnership_subscription USING btree ("planId")
130
+ WHERE "deletedAt" is null;
131
+ CREATE INDEX partnership_subscription_next_payment_idx
132
+ ON public.partnership_subscription USING btree ("nextPaymentDate")
133
+ WHERE "deletedAt" is null;
134
+
135
+ CREATE TRIGGER partnership_subscription__handle_updatedat
136
+ BEFORE UPDATE ON public.partnership_subscription
137
+ FOR EACH ROW EXECUTE FUNCTION extensions.moddatetime('updatedAt');
138
+
139
+ -- ---------- partnership_sepa_payment_group ----------------------------------
140
+ create table "public"."partnership_sepa_payment_group" (
141
+ "id" uuid not null default gen_random_uuid(),
142
+ "partnershipId" text not null,
143
+ "creditorInfo" jsonb not null,
144
+ "paymentsIds" text[] not null default '{}',
145
+ "filePath" text,
146
+ "createdAt" timestamp with time zone not null default now(),
147
+ "createdBy" text not null,
148
+ "updatedAt" timestamp with time zone not null default now(),
149
+ "editedBy" text
150
+ );
151
+
152
+ alter table "public"."partnership_sepa_payment_group" enable row level security;
153
+
154
+ CREATE UNIQUE INDEX partnership_sepa_payment_group_pkey ON public.partnership_sepa_payment_group USING btree (id);
155
+ alter table "public"."partnership_sepa_payment_group" add constraint "partnership_sepa_payment_group_pkey" PRIMARY KEY using index "partnership_sepa_payment_group_pkey";
156
+
157
+ CREATE INDEX partnership_sepa_payment_group_partnership_idx
158
+ ON public.partnership_sepa_payment_group USING btree ("partnershipId");
159
+
160
+ CREATE TRIGGER partnership_sepa_payment_group__handle_updatedat
161
+ BEFORE UPDATE ON public.partnership_sepa_payment_group
162
+ FOR EACH ROW EXECUTE FUNCTION extensions.moddatetime('updatedAt');
163
+
164
+ -- ---------- partnership_payment ---------------------------------------------
165
+ create table "public"."partnership_payment" (
166
+ "id" uuid not null default gen_random_uuid(),
167
+ "partnershipId" text not null,
168
+ "title" text not null,
169
+ "amount" numeric(12, 2) not null,
170
+ "paymentMethod" partnership_payment_method,
171
+ "subscriptionId" uuid,
172
+ "partnerId" text not null,
173
+ "status" partnership_payment_status not null default 'pending',
174
+ "sepaPaymentGroupId" uuid,
175
+ "sepaEndToEndId" text,
176
+ "dueDate" timestamp with time zone not null,
177
+ "receiptFilePath" text,
178
+ "createdAt" timestamp with time zone not null default now(),
179
+ "createdBy" text,
180
+ "updatedAt" timestamp with time zone not null default now(),
181
+ "editedBy" text
182
+ );
183
+
184
+ alter table "public"."partnership_payment" enable row level security;
185
+
186
+ CREATE UNIQUE INDEX partnership_payment_pkey ON public.partnership_payment USING btree (id);
187
+ alter table "public"."partnership_payment" add constraint "partnership_payment_pkey" PRIMARY KEY using index "partnership_payment_pkey";
188
+
189
+ -- Idempotencia de la generación recurrente: misma subscription + mismo dueDate
190
+ -- nunca produce dos pagos. Sustituye al id determinista `subscriptionId_yyyy-MM-dd`.
191
+ CREATE UNIQUE INDEX partnership_payment_subscription_due_idx
192
+ ON public.partnership_payment USING btree ("subscriptionId", "dueDate")
193
+ WHERE "subscriptionId" is not null;
194
+
195
+ alter table "public"."partnership_payment"
196
+ add constraint "partnership_payment_subscription_id_fkey"
197
+ FOREIGN KEY ("subscriptionId") REFERENCES public.partnership_subscription(id)
198
+ ON UPDATE CASCADE ON DELETE SET NULL;
199
+
200
+ alter table "public"."partnership_payment"
201
+ add constraint "partnership_payment_sepa_group_id_fkey"
202
+ FOREIGN KEY ("sepaPaymentGroupId") REFERENCES public.partnership_sepa_payment_group(id)
203
+ ON UPDATE CASCADE ON DELETE SET NULL;
204
+
205
+ CREATE INDEX partnership_payment_partnership_created_idx
206
+ ON public.partnership_payment USING btree ("partnershipId", "createdAt" desc);
207
+ CREATE INDEX partnership_payment_partnership_status_idx
208
+ ON public.partnership_payment USING btree ("partnershipId", "status");
209
+ CREATE INDEX partnership_payment_partnership_partner_idx
210
+ ON public.partnership_payment USING btree ("partnershipId", "partnerId");
211
+
212
+ CREATE TRIGGER partnership_payment__handle_updatedat
213
+ BEFORE UPDATE ON public.partnership_payment
214
+ FOR EACH ROW EXECUTE FUNCTION extensions.moddatetime('updatedAt');
215
+
216
+ -- ---------- partnership_payment_history -------------------------------------
217
+ create table "public"."partnership_payment_history" (
218
+ "id" uuid not null default gen_random_uuid(),
219
+ "payment_id" uuid not null,
220
+ "status" partnership_payment_status not null,
221
+ "changed_at" timestamp with time zone not null default now(),
222
+ "changed_by" text not null
223
+ );
224
+
225
+ alter table "public"."partnership_payment_history" enable row level security;
226
+
227
+ CREATE UNIQUE INDEX partnership_payment_history_pkey ON public.partnership_payment_history USING btree (id);
228
+ alter table "public"."partnership_payment_history" add constraint "partnership_payment_history_pkey" PRIMARY KEY using index "partnership_payment_history_pkey";
229
+
230
+ alter table "public"."partnership_payment_history"
231
+ add constraint "partnership_payment_history_payment_id_fkey"
232
+ FOREIGN KEY ("payment_id") REFERENCES public.partnership_payment(id)
233
+ ON UPDATE CASCADE ON DELETE CASCADE;
234
+
235
+ CREATE INDEX partnership_payment_history_payment_idx
236
+ ON public.partnership_payment_history USING btree ("payment_id", "changed_at" desc);
237
+
238
+ -- ---------- partnership_communication ---------------------------------------
239
+ create table "public"."partnership_communication" (
240
+ "id" uuid not null default gen_random_uuid(),
241
+ "partnershipId" text not null,
242
+ "title" text not null,
243
+ "message" jsonb not null default '[]'::jsonb,
244
+ "messageHtml" text not null default '',
245
+ "imageURL" text,
246
+ "ownerName" text not null,
247
+ "ownerId" text not null,
248
+ "recipients" text[] not null default '{}',
249
+ "recipientsCount" integer not null default 0,
250
+ "imagesPath" text[] not null default '{}',
251
+ "status" partnership_communication_status not null,
252
+ "scheduledAt" timestamp with time zone,
253
+ "createdAt" timestamp with time zone not null default now(),
254
+ "deletedAt" timestamp with time zone
255
+ );
256
+
257
+ alter table "public"."partnership_communication" enable row level security;
258
+
259
+ CREATE UNIQUE INDEX partnership_communication_pkey ON public.partnership_communication USING btree (id);
260
+ alter table "public"."partnership_communication" add constraint "partnership_communication_pkey" PRIMARY KEY using index "partnership_communication_pkey";
261
+
262
+ CREATE INDEX partnership_communication_partnership_idx
263
+ ON public.partnership_communication USING btree ("partnershipId", "createdAt" desc);
264
+ CREATE INDEX partnership_communication_scheduled_idx
265
+ ON public.partnership_communication USING btree ("scheduledAt")
266
+ WHERE "status" = 'scheduled';
267
+
268
+ -- ---------- partnership_group (join table, sin denormalización) --------------
269
+ create table "public"."partnership_group" (
270
+ "partnershipId" text not null,
271
+ "groupId" text not null,
272
+ "linkedBy" text,
273
+ "linkedAt" timestamp with time zone not null default now()
274
+ );
275
+
276
+ alter table "public"."partnership_group" enable row level security;
277
+
278
+ CREATE UNIQUE INDEX partnership_group_pkey ON public.partnership_group USING btree ("partnershipId", "groupId");
279
+ alter table "public"."partnership_group" add constraint "partnership_group_pkey" PRIMARY KEY using index "partnership_group_pkey";
280
+
281
+ alter table "public"."partnership_group"
282
+ add constraint "partnership_group_group_id_fkey"
283
+ FOREIGN KEY ("groupId") REFERENCES public."group"(id)
284
+ ON UPDATE CASCADE ON DELETE CASCADE;
285
+
286
+ CREATE INDEX partnership_group_group_idx
287
+ ON public.partnership_group USING btree ("groupId");
288
+
289
+ -- ---------- Grants ----------------------------------------------------------
290
+ grant delete, insert, references, select, trigger, truncate, update
291
+ on table "public"."partnership_partner" to "anon", "authenticated", "service_role";
292
+ grant delete, insert, references, select, trigger, truncate, update
293
+ on table "public"."partnership_plan" to "anon", "authenticated", "service_role";
294
+ grant delete, insert, references, select, trigger, truncate, update
295
+ on table "public"."partnership_subscription" to "anon", "authenticated", "service_role";
296
+ grant delete, insert, references, select, trigger, truncate, update
297
+ on table "public"."partnership_payment" to "anon", "authenticated", "service_role";
298
+ grant delete, insert, references, select, trigger, truncate, update
299
+ on table "public"."partnership_payment_history" to "anon", "authenticated", "service_role";
300
+ grant delete, insert, references, select, trigger, truncate, update
301
+ on table "public"."partnership_sepa_payment_group" to "anon", "authenticated", "service_role";
302
+ grant delete, insert, references, select, trigger, truncate, update
303
+ on table "public"."partnership_communication" to "anon", "authenticated", "service_role";
304
+ grant delete, insert, references, select, trigger, truncate, update
305
+ on table "public"."partnership_group" to "anon", "authenticated", "service_role";
306
+
307
+ -- ---------- RLS: solo lectura para anon/authenticated -----------------------
308
+ -- (Las escrituras van exclusivamente vía Cloud Functions con service_role.)
309
+ create policy "Authenticated can read partnership_partner" on "public"."partnership_partner" as permissive for select to authenticated using (true);
310
+ create policy "Anon can read partnership_partner" on "public"."partnership_partner" as permissive for select to anon using (true);
311
+ create policy "Authenticated can read partnership_plan" on "public"."partnership_plan" as permissive for select to authenticated using (true);
312
+ create policy "Anon can read partnership_plan" on "public"."partnership_plan" as permissive for select to anon using (true);
313
+ create policy "Authenticated can read partnership_subscription" on "public"."partnership_subscription" as permissive for select to authenticated using (true);
314
+ create policy "Anon can read partnership_subscription" on "public"."partnership_subscription" as permissive for select to anon using (true);
315
+ create policy "Authenticated can read partnership_payment" on "public"."partnership_payment" as permissive for select to authenticated using (true);
316
+ create policy "Anon can read partnership_payment" on "public"."partnership_payment" as permissive for select to anon using (true);
317
+ create policy "Authenticated can read partnership_payment_history" on "public"."partnership_payment_history" as permissive for select to authenticated using (true);
318
+ create policy "Anon can read partnership_payment_history" on "public"."partnership_payment_history" as permissive for select to anon using (true);
319
+ create policy "Authenticated can read partnership_sepa_payment_group" on "public"."partnership_sepa_payment_group" as permissive for select to authenticated using (true);
320
+ create policy "Anon can read partnership_sepa_payment_group" on "public"."partnership_sepa_payment_group" as permissive for select to anon using (true);
321
+ create policy "Authenticated can read partnership_communication" on "public"."partnership_communication" as permissive for select to authenticated using (true);
322
+ create policy "Anon can read partnership_communication" on "public"."partnership_communication" as permissive for select to anon using (true);
323
+ create policy "Authenticated can read partnership_group" on "public"."partnership_group" as permissive for select to authenticated using (true);
324
+ create policy "Anon can read partnership_group" on "public"."partnership_group" as permissive for select to anon using (true);
325
+
326
+ -- ---------- Realtime --------------------------------------------------------
327
+ alter publication supabase_realtime add table public.partnership_partner;
328
+ alter publication supabase_realtime add table public.partnership_plan;
329
+ alter publication supabase_realtime add table public.partnership_subscription;
330
+ alter publication supabase_realtime add table public.partnership_payment;
331
+ alter publication supabase_realtime add table public.partnership_sepa_payment_group;
332
+ alter publication supabase_realtime add table public.partnership_communication;
333
+ alter publication supabase_realtime add table public.partnership_group;
@@ -0,0 +1,62 @@
1
+ -- =============================================================================
2
+ -- RPC atómica para la generación de pagos recurrentes.
3
+ -- Reemplaza la transacción Firestore de PartnershipPayment.Creates#setRecurring:
4
+ -- inserta el pago (idempotente por unique (subscriptionId, dueDate)), crea su
5
+ -- entrada de historial y, solo si insertó, avanza nextPaymentDate de la
6
+ -- subscription. Todo en una única transacción Postgres.
7
+ -- =============================================================================
8
+
9
+ create or replace function public.generate_partnership_recurring_payment(
10
+ p_partnership_id text,
11
+ p_subscription_id uuid,
12
+ p_partner_id text,
13
+ p_title text,
14
+ p_amount numeric,
15
+ p_payment_method partnership_payment_method,
16
+ p_due_date timestamptz,
17
+ p_next_payment_date timestamptz
18
+ )
19
+ returns table (created boolean, payment_id uuid)
20
+ language plpgsql
21
+ security definer
22
+ set search_path = public
23
+ as $$
24
+ declare
25
+ v_payment_id uuid;
26
+ v_now timestamptz := now();
27
+ begin
28
+ insert into public.partnership_payment (
29
+ "partnershipId", "title", "amount", "paymentMethod", "subscriptionId",
30
+ "partnerId", "status", "dueDate", "createdAt", "createdBy"
31
+ ) values (
32
+ p_partnership_id, p_title, p_amount, p_payment_method, p_subscription_id,
33
+ p_partner_id, 'pending', p_due_date, v_now, 'system'
34
+ )
35
+ on conflict ("subscriptionId", "dueDate") where "subscriptionId" is not null
36
+ do nothing
37
+ returning id into v_payment_id;
38
+
39
+ if v_payment_id is null then
40
+ -- Ya existía para esta subscription + dueDate: no-op idempotente.
41
+ return query
42
+ select false as created,
43
+ (select id from public.partnership_payment
44
+ where "subscriptionId" = p_subscription_id and "dueDate" = p_due_date
45
+ limit 1) as payment_id;
46
+ return;
47
+ end if;
48
+
49
+ insert into public.partnership_payment_history ("payment_id", "status", "changed_at", "changed_by")
50
+ values (v_payment_id, 'pending', v_now, 'system');
51
+
52
+ update public.partnership_subscription
53
+ set "nextPaymentDate" = p_next_payment_date
54
+ where id = p_subscription_id;
55
+
56
+ return query select true as created, v_payment_id as payment_id;
57
+ end;
58
+ $$;
59
+
60
+ grant execute on function public.generate_partnership_recurring_payment(
61
+ text, uuid, text, text, numeric, partnership_payment_method, timestamptz, timestamptz
62
+ ) to "service_role";
@@ -0,0 +1,83 @@
1
+ -- =============================================================================
2
+ -- Pagador familiar: un socio puede cobrarse al método/mandato de otro socio.
3
+ -- `payerId` en partnership_partner apunta a otro socio del mismo partnership.
4
+ -- `payerId` en partnership_payment es un snapshot del pagador resuelto en la
5
+ -- generación del cobro (para que el XML SEPA y el recibo giren al deudor correcto
6
+ -- aunque luego cambie el pagador del socio).
7
+ -- =============================================================================
8
+
9
+ alter table "public"."partnership_partner"
10
+ add column "payerId" uuid;
11
+
12
+ alter table "public"."partnership_partner"
13
+ add constraint "partnership_partner_payer_id_fkey"
14
+ FOREIGN KEY ("payerId") REFERENCES public.partnership_partner(id)
15
+ ON UPDATE CASCADE ON DELETE SET NULL;
16
+
17
+ CREATE INDEX partnership_partner_payer_idx
18
+ ON public.partnership_partner USING btree ("payerId")
19
+ WHERE "payerId" is not null;
20
+
21
+ alter table "public"."partnership_payment"
22
+ add column "payerId" uuid;
23
+
24
+ alter table "public"."partnership_payment"
25
+ add constraint "partnership_payment_payer_id_fkey"
26
+ FOREIGN KEY ("payerId") REFERENCES public.partnership_partner(id)
27
+ ON UPDATE CASCADE ON DELETE SET NULL;
28
+
29
+ -- ---------- RPC: añade p_payer_id ------------------------------------------
30
+ create or replace function public.generate_partnership_recurring_payment(
31
+ p_partnership_id text,
32
+ p_subscription_id uuid,
33
+ p_partner_id text,
34
+ p_title text,
35
+ p_amount numeric,
36
+ p_payment_method partnership_payment_method,
37
+ p_due_date timestamptz,
38
+ p_next_payment_date timestamptz,
39
+ p_payer_id uuid default null
40
+ )
41
+ returns table (created boolean, payment_id uuid)
42
+ language plpgsql
43
+ security definer
44
+ set search_path = public
45
+ as $$
46
+ declare
47
+ v_payment_id uuid;
48
+ v_now timestamptz := now();
49
+ begin
50
+ insert into public.partnership_payment (
51
+ "partnershipId", "title", "amount", "paymentMethod", "subscriptionId",
52
+ "partnerId", "payerId", "status", "dueDate", "createdAt", "createdBy"
53
+ ) values (
54
+ p_partnership_id, p_title, p_amount, p_payment_method, p_subscription_id,
55
+ p_partner_id, p_payer_id, 'pending', p_due_date, v_now, 'system'
56
+ )
57
+ on conflict ("subscriptionId", "dueDate") where "subscriptionId" is not null
58
+ do nothing
59
+ returning id into v_payment_id;
60
+
61
+ if v_payment_id is null then
62
+ return query
63
+ select false as created,
64
+ (select id from public.partnership_payment
65
+ where "subscriptionId" = p_subscription_id and "dueDate" = p_due_date
66
+ limit 1) as payment_id;
67
+ return;
68
+ end if;
69
+
70
+ insert into public.partnership_payment_history ("payment_id", "status", "changed_at", "changed_by")
71
+ values (v_payment_id, 'pending', v_now, 'system');
72
+
73
+ update public.partnership_subscription
74
+ set "nextPaymentDate" = p_next_payment_date
75
+ where id = p_subscription_id;
76
+
77
+ return query select true as created, v_payment_id as payment_id;
78
+ end;
79
+ $$;
80
+
81
+ grant execute on function public.generate_partnership_recurring_payment(
82
+ text, uuid, text, text, numeric, partnership_payment_method, timestamptz, timestamptz, uuid
83
+ ) to "service_role";
@@ -0,0 +1,10 @@
1
+ -- =============================================================================
2
+ -- partnerNumber es el número de socio interno de cada asociación: NO debe ser
3
+ -- único (puede haber duplicados o ausencias). Se sustituye el índice único por
4
+ -- uno normal (para búsquedas) en BDs donde ya se aplicó el init.
5
+ -- =============================================================================
6
+
7
+ drop index if exists public.partnership_partner_number_idx;
8
+
9
+ create index partnership_partner_number_idx
10
+ on public.partnership_partner using btree ("partnershipId", "partnerNumber");
@@ -0,0 +1,2 @@
1
+ -- Añade el valor BIZUM al enum partnership_payment_method.
2
+ alter type "public"."partnership_payment_method" add value if not exists 'BIZUM';
@@ -0,0 +1,13 @@
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;
@@ -0,0 +1,23 @@
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;
@@ -0,0 +1,5 @@
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;
@@ -0,0 +1,29 @@
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
+ );