@glissandoo/lib 1.115.0 → 1.117.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (372) hide show
  1. package/functions/auth.d.ts +1 -3
  2. package/functions/customer.d.ts +0 -4
  3. package/functions/event.d.ts +22 -0
  4. package/functions/event.js +1 -1
  5. package/functions/eventPlayer.d.ts +2 -0
  6. package/functions/eventPlayer.js +1 -1
  7. package/functions/eventRepertory.d.ts +0 -2
  8. package/functions/eventRepertory.js +1 -1
  9. package/functions/eventoPayout.d.ts +70 -0
  10. package/functions/groupModule.d.ts +13 -0
  11. package/functions/groupPayment.d.ts +62 -0
  12. package/functions/groupPayoutRule.d.ts +18 -0
  13. package/functions/groupRepertory.d.ts +0 -110
  14. package/functions/index.d.ts +12 -30
  15. package/functions/index.js +13 -31
  16. package/functions/misc.d.ts +0 -6
  17. package/functions/regions.js +13 -31
  18. package/helpers/appScenes.d.ts +2 -0
  19. package/helpers/appScenes.js +3 -1
  20. package/helpers/auth.d.ts +9 -2
  21. package/helpers/auth.js +14 -33
  22. package/helpers/badges.js +1 -1
  23. package/helpers/collections.js +2 -2
  24. package/helpers/communicationTemplate/index.d.ts +2 -3
  25. package/helpers/communicationTemplate/index.js +5 -5
  26. package/helpers/currency.d.ts +4 -19
  27. package/helpers/currency.js +264 -72
  28. package/helpers/dlinks.js +1 -1
  29. package/helpers/errors.d.ts +7 -2
  30. package/helpers/errors.js +7 -2
  31. package/helpers/glissandooAdmin.d.ts +3 -0
  32. package/helpers/glissandooAdmin.js +6 -0
  33. package/helpers/instruments/index.d.ts +0 -17
  34. package/helpers/instruments/index.js +1 -5
  35. package/helpers/instruments/lists.d.ts +3 -3
  36. package/helpers/instruments/lists.js +5 -5
  37. package/helpers/musicStyles/index.d.ts +4 -22
  38. package/helpers/musicStyles/index.js +35 -114
  39. package/helpers/notifications/index.js +1 -1
  40. package/helpers/objects.d.ts +1 -5
  41. package/helpers/objects.js +6 -7
  42. package/helpers/paymentForecast.d.ts +37 -0
  43. package/helpers/paymentForecast.js +58 -0
  44. package/helpers/payoutRules.d.ts +45 -0
  45. package/helpers/payoutRules.js +166 -0
  46. package/helpers/plans.js +2 -2
  47. package/helpers/rates.d.ts +1 -1
  48. package/helpers/slate.d.ts +5 -64
  49. package/helpers/slate.js +1 -7
  50. package/helpers/ts-extras/array-includes.js +2 -1
  51. package/helpers/ts-extras/as-mutable.js +2 -1
  52. package/helpers/ts-extras/assert-error.js +2 -1
  53. package/helpers/ts-extras/index.js +1 -1
  54. package/helpers/ts-extras/is-defined.js +2 -1
  55. package/helpers/ts-extras/is-empty.js +2 -1
  56. package/helpers/ts-extras/is-infinite.js +2 -1
  57. package/helpers/ts-extras/is-present.js +2 -1
  58. package/helpers/ts-extras/object-entries.d.ts +1 -1
  59. package/helpers/ts-extras/object-from-entries.d.ts +1 -1
  60. package/helpers/ts-extras/object-has-own.js +2 -1
  61. package/helpers/ts-extras/object-keys.d.ts +1 -1
  62. package/helpers/ts-extras/object-keys.js +1 -0
  63. package/helpers/ts-extras/set-has.js +2 -1
  64. package/helpers/types.d.ts +0 -26
  65. package/helpers/types.js +5 -25
  66. package/lang/ca.json +97 -325
  67. package/lang/de.json +97 -325
  68. package/lang/en.json +97 -325
  69. package/lang/es.json +97 -325
  70. package/lang/eu.json +97 -325
  71. package/lang/fr.json +97 -325
  72. package/lang/gl.json +97 -325
  73. package/lang/index.js +2 -3
  74. package/lang/it.json +97 -325
  75. package/lang/nl.json +97 -325
  76. package/lang/pt.json +97 -325
  77. package/models/Communication/types.d.ts +16 -0
  78. package/models/Communication/types.js +9 -3
  79. package/models/Counters/Group/Analytics/types.js +1 -1
  80. package/models/Customer/index.d.ts +1 -1
  81. package/models/Customer/index.js +3 -3
  82. package/models/Customer/types.js +1 -1
  83. package/models/Evento/Player/index.d.ts +1 -0
  84. package/models/Evento/Player/index.js +3 -0
  85. package/models/Evento/Player/types.d.ts +1 -0
  86. package/models/Evento/Player/types.js +3 -3
  87. package/models/Evento/Repertory/types.d.ts +1 -2
  88. package/models/Evento/index.d.ts +4 -3
  89. package/models/Evento/index.js +10 -5
  90. package/models/Evento/types.d.ts +43 -2
  91. package/models/Evento/types.js +42 -8
  92. package/models/Federation/index.d.ts +1 -1
  93. package/models/Federation/index.js +3 -3
  94. package/models/Group/Analytics/types.js +1 -1
  95. package/models/Group/Payment/index.d.ts +45 -0
  96. package/models/Group/Payment/index.js +110 -0
  97. package/models/Group/Payment/supabase.d.ts +16 -0
  98. package/models/Group/Payment/supabase.js +46 -0
  99. package/models/Group/Payment/types.d.ts +96 -0
  100. package/models/Group/Payment/types.js +26 -0
  101. package/models/Group/Player/types.js +1 -1
  102. package/models/Group/Repertory/File/Section/index.d.ts +3 -3
  103. package/models/Group/Repertory/File/Section/index.js +2 -3
  104. package/models/Group/Repertory/File/Section/types.d.ts +0 -7
  105. package/models/Group/Repertory/File/Section/types.js +1 -1
  106. package/models/Group/Repertory/File/index.d.ts +2 -4
  107. package/models/Group/Repertory/File/index.js +4 -4
  108. package/models/Group/Repertory/FilePath/index.d.ts +4 -3
  109. package/models/Group/Repertory/index.d.ts +4 -12
  110. package/models/Group/Repertory/index.js +0 -9
  111. package/models/Group/Repertory/types.d.ts +32 -21
  112. package/models/Group/Repertory/types.js +18 -8
  113. package/models/Group/index.d.ts +20 -15
  114. package/models/Group/index.js +34 -16
  115. package/models/Group/types.d.ts +96 -6
  116. package/models/Group/types.js +63 -8
  117. package/models/Instrument/{fromRecord.d.ts → group.d.ts} +5 -4
  118. package/models/Instrument/{fromRecord.js → group.js} +10 -10
  119. package/models/Instrument/index.d.ts +0 -2
  120. package/models/Instrument/index.js +1 -38
  121. package/models/Inventory/Item/types.js +2 -2
  122. package/models/Inventory/types.js +1 -1
  123. package/models/Notification/types.d.ts +4 -1
  124. package/models/Notification/types.js +5 -2
  125. package/models/Offer/types.d.ts +12 -0
  126. package/models/Offer/types.js +15 -2
  127. package/models/Partnership/Partner/types.js +1 -1
  128. package/models/Partnership/Payment/types.js +2 -2
  129. package/models/Partnership/index.d.ts +1 -1
  130. package/models/Partnership/index.js +3 -3
  131. package/models/Partnership/types.js +1 -1
  132. package/models/Repertory/types.d.ts +0 -12
  133. package/models/Repertory/types.js +2 -2
  134. package/models/User/Group/index.js +2 -1
  135. package/models/User/index.d.ts +1 -1
  136. package/models/User/index.js +3 -3
  137. package/models/User/types.d.ts +1 -2
  138. package/models/User/types.js +7 -7
  139. package/models/WebhookEvent/types.js +1 -1
  140. package/package.json +20 -28
  141. package/types/firestore.d.ts +1 -0
  142. package/types/firestore.js +1 -1
  143. package/types/payoutRule.d.ts +126 -0
  144. package/types/payoutRule.js +34 -0
  145. package/types/payoutRule.ts +132 -0
  146. package/types/supabase/generated.d.ts +545 -3113
  147. package/types/supabase/generated.js +0 -9
  148. package/types/supabase/generated.ts +581 -3080
  149. package/types/supabase/index.d.ts +19 -155
  150. package/types/supabase/index.js +0 -15
  151. package/types/supabase/index.ts +21 -288
  152. package/types/supabase/overwrites/comm.d.ts +18 -0
  153. package/types/supabase/overwrites/comm.ts +18 -0
  154. package/types/supabase/overwrites/comm_history.d.ts +10 -0
  155. package/types/supabase/overwrites/comm_history.ts +10 -0
  156. package/types/supabase/overwrites/{tables/event/index.d.ts → event.d.ts} +1 -1
  157. package/types/supabase/overwrites/{tables/event/index.ts → event.ts} +1 -1
  158. package/types/supabase/overwrites/event_history.d.ts +10 -0
  159. package/types/supabase/overwrites/event_history.ts +10 -0
  160. package/types/supabase/overwrites/{tables/group/index.d.ts → group.d.ts} +5 -2
  161. package/types/supabase/overwrites/{tables/group/index.ts → group.ts} +6 -2
  162. package/types/supabase/overwrites/group_history.d.ts +9 -0
  163. package/types/supabase/overwrites/group_history.ts +9 -0
  164. package/types/supabase/overwrites/index.d.ts +1 -1
  165. package/types/supabase/overwrites/index.ts +1 -1
  166. package/types/supabase/overwrites/{tables/offer/index.d.ts → offer.d.ts} +2 -6
  167. package/types/supabase/overwrites/{tables/offer/index.ts → offer.ts} +2 -7
  168. package/types/supabase/overwrites/offer_history.d.ts +10 -0
  169. package/types/supabase/overwrites/offer_history.ts +10 -0
  170. package/types/supabase/overwrites/repertoire.d.ts +12 -0
  171. package/types/supabase/overwrites/repertoire.ts +12 -0
  172. package/types/supabase/overwrites/repertoire_history.d.ts +10 -0
  173. package/types/supabase/overwrites/repertoire_history.ts +10 -0
  174. package/functions/composer.d.ts +0 -13
  175. package/functions/composerComposition.d.ts +0 -102
  176. package/functions/composerNotification.d.ts +0 -38
  177. package/functions/composerPayout.d.ts +0 -20
  178. package/helpers/catalogBridge.d.ts +0 -121
  179. package/helpers/catalogBridge.js +0 -95
  180. package/helpers/compositionCategories/genres.d.ts +0 -922
  181. package/helpers/compositionCategories/genres.js +0 -940
  182. package/helpers/compositionCategories/index.d.ts +0 -2
  183. package/helpers/compositionCategories/index.js +0 -18
  184. package/helpers/compositionCategories/styles.d.ts +0 -181
  185. package/helpers/compositionCategories/styles.js +0 -197
  186. package/helpers/compositionSoloistOffstageParts/index.d.ts +0 -34
  187. package/helpers/compositionSoloistOffstageParts/index.js +0 -117
  188. package/helpers/currencyConversion.d.ts +0 -45
  189. package/helpers/currencyConversion.js +0 -119
  190. package/helpers/dataStructures/trees/index.d.ts +0 -12
  191. package/helpers/dataStructures/trees/index.js +0 -71
  192. package/helpers/dataStructures/trees/types.d.ts +0 -14
  193. package/helpers/dataStructures/trees/types.js +0 -5
  194. package/helpers/externalUrls.d.ts +0 -12
  195. package/helpers/externalUrls.js +0 -40
  196. package/models/CompositionGenre/index.d.ts +0 -9
  197. package/models/CompositionGenre/index.js +0 -16
  198. package/models/CompositionStyle/index.d.ts +0 -9
  199. package/models/CompositionStyle/index.js +0 -16
  200. package/models/supabase/Comm/index.d.ts +0 -24
  201. package/models/supabase/Comm/index.js +0 -68
  202. package/models/supabase/Comm/types.d.ts +0 -6
  203. package/models/supabase/CommHistory/index.d.ts +0 -22
  204. package/models/supabase/CommHistory/index.js +0 -37
  205. package/models/supabase/CommHistory/types.d.ts +0 -11
  206. package/models/supabase/CommHistory/types.js +0 -9
  207. package/models/supabase/Composer/Composition/Acquisition/index.d.ts +0 -4
  208. package/models/supabase/Composer/Composition/Acquisition/index.js +0 -9
  209. package/models/supabase/Composer/Composition/Acquisition/types.d.ts +0 -36
  210. package/models/supabase/Composer/Composition/Favorite/index.d.ts +0 -4
  211. package/models/supabase/Composer/Composition/Favorite/index.js +0 -9
  212. package/models/supabase/Composer/Composition/Favorite/types.d.ts +0 -6
  213. package/models/supabase/Composer/Composition/View/index.d.ts +0 -4
  214. package/models/supabase/Composer/Composition/View/index.js +0 -9
  215. package/models/supabase/Composer/Composition/View/types.d.ts +0 -6
  216. package/models/supabase/Composer/Composition/index.d.ts +0 -5284
  217. package/models/supabase/Composer/Composition/index.js +0 -166
  218. package/models/supabase/Composer/Composition/types.d.ts +0 -96
  219. package/models/supabase/Composer/Composition/types.js +0 -32
  220. package/models/supabase/Composer/Notification/index.d.ts +0 -4
  221. package/models/supabase/Composer/Notification/index.js +0 -9
  222. package/models/supabase/Composer/Notification/types.d.ts +0 -39
  223. package/models/supabase/Composer/Notification/types.js +0 -27
  224. package/models/supabase/Composer/Payout/index.d.ts +0 -4
  225. package/models/supabase/Composer/Payout/index.js +0 -9
  226. package/models/supabase/Composer/Payout/status.d.ts +0 -1
  227. package/models/supabase/Composer/Payout/types.d.ts +0 -5
  228. package/models/supabase/Composer/PerformanceAttendance/types.d.ts +0 -4
  229. package/models/supabase/Composer/index.d.ts +0 -78
  230. package/models/supabase/Composer/index.js +0 -105
  231. package/models/supabase/Composer/types.d.ts +0 -6
  232. package/models/supabase/EventHistory/index.d.ts +0 -22
  233. package/models/supabase/EventHistory/index.js +0 -37
  234. package/models/supabase/EventHistory/types.d.ts +0 -36
  235. package/models/supabase/EventHistory/types.js +0 -34
  236. package/models/supabase/GroupHistory/index.d.ts +0 -21
  237. package/models/supabase/GroupHistory/index.js +0 -34
  238. package/models/supabase/GroupHistory/types.d.ts +0 -27
  239. package/models/supabase/GroupHistory/types.js +0 -25
  240. package/models/supabase/Model/index.d.ts +0 -10
  241. package/models/supabase/Model/index.js +0 -21
  242. package/models/supabase/OfferHistory/index.d.ts +0 -22
  243. package/models/supabase/OfferHistory/index.js +0 -37
  244. package/models/supabase/OfferHistory/types.d.ts +0 -18
  245. package/models/supabase/OfferHistory/types.js +0 -16
  246. package/models/supabase/Repertoire/index.d.ts +0 -16
  247. package/models/supabase/Repertoire/index.js +0 -43
  248. package/models/supabase/Repertoire/types.d.ts +0 -6
  249. package/models/supabase/RepertoireHistory/index.d.ts +0 -22
  250. package/models/supabase/RepertoireHistory/index.js +0 -37
  251. package/models/supabase/RepertoireHistory/types.d.ts +0 -21
  252. package/models/supabase/RepertoireHistory/types.js +0 -19
  253. package/models/supabase/User/Group/index.d.ts +0 -11
  254. package/models/supabase/User/Group/index.js +0 -30
  255. package/models/supabase/User/Group/types.d.ts +0 -6
  256. package/models/supabase/User/index.d.ts +0 -13
  257. package/models/supabase/User/index.js +0 -37
  258. package/models/supabase/User/types.d.ts +0 -6
  259. package/types/supabase/catalog.d.ts +0 -46
  260. package/types/supabase/catalog.js +0 -2
  261. package/types/supabase/catalog.ts +0 -67
  262. package/types/supabase/composerMetrics.d.ts +0 -27
  263. package/types/supabase/composerMetrics.js +0 -2
  264. package/types/supabase/composerMetrics.ts +0 -26
  265. package/types/supabase/overwrites/tables/comm/model.d.ts +0 -4
  266. package/types/supabase/overwrites/tables/comm/model.js +0 -2
  267. package/types/supabase/overwrites/tables/comm/model.ts +0 -4
  268. package/types/supabase/overwrites/tables/comm_history/index.d.ts +0 -7
  269. package/types/supabase/overwrites/tables/comm_history/index.js +0 -2
  270. package/types/supabase/overwrites/tables/comm_history/index.ts +0 -9
  271. package/types/supabase/overwrites/tables/comm_history/model.d.ts +0 -10
  272. package/types/supabase/overwrites/tables/comm_history/model.js +0 -2
  273. package/types/supabase/overwrites/tables/comm_history/model.ts +0 -13
  274. package/types/supabase/overwrites/tables/common/index.js +0 -2
  275. package/types/supabase/overwrites/tables/composer/index.d.ts +0 -9
  276. package/types/supabase/overwrites/tables/composer/index.js +0 -2
  277. package/types/supabase/overwrites/tables/composer/index.ts +0 -10
  278. package/types/supabase/overwrites/tables/composer/model.d.ts +0 -12
  279. package/types/supabase/overwrites/tables/composer/model.js +0 -2
  280. package/types/supabase/overwrites/tables/composer/model.ts +0 -15
  281. package/types/supabase/overwrites/tables/composer/publicModel.d.ts +0 -11
  282. package/types/supabase/overwrites/tables/composer/publicModel.js +0 -2
  283. package/types/supabase/overwrites/tables/composer/publicModel.ts +0 -15
  284. package/types/supabase/overwrites/tables/composerComposition/index.d.ts +0 -18
  285. package/types/supabase/overwrites/tables/composerComposition/index.js +0 -2
  286. package/types/supabase/overwrites/tables/composerComposition/index.ts +0 -24
  287. package/types/supabase/overwrites/tables/composerComposition/model.d.ts +0 -9
  288. package/types/supabase/overwrites/tables/composerComposition/model.js +0 -2
  289. package/types/supabase/overwrites/tables/composerComposition/model.ts +0 -26
  290. package/types/supabase/overwrites/tables/composerComposition/publicModel.d.ts +0 -9
  291. package/types/supabase/overwrites/tables/composerComposition/publicModel.js +0 -2
  292. package/types/supabase/overwrites/tables/composerComposition/publicModel.ts +0 -37
  293. package/types/supabase/overwrites/tables/composerNotification/index.d.ts +0 -19
  294. package/types/supabase/overwrites/tables/composerNotification/index.js +0 -2
  295. package/types/supabase/overwrites/tables/composerNotification/index.ts +0 -25
  296. package/types/supabase/overwrites/tables/composerOwnedTransaction/model.d.ts +0 -2
  297. package/types/supabase/overwrites/tables/composerOwnedTransaction/model.js +0 -2
  298. package/types/supabase/overwrites/tables/composerOwnedTransaction/model.ts +0 -3
  299. package/types/supabase/overwrites/tables/composerPayout/index.d.ts +0 -7
  300. package/types/supabase/overwrites/tables/composerPayout/index.js +0 -2
  301. package/types/supabase/overwrites/tables/composerPayout/index.ts +0 -8
  302. package/types/supabase/overwrites/tables/compositionAcquisition/index.d.ts +0 -4
  303. package/types/supabase/overwrites/tables/compositionAcquisition/index.js +0 -2
  304. package/types/supabase/overwrites/tables/compositionAcquisition/index.ts +0 -8
  305. package/types/supabase/overwrites/tables/compositionAcquisition/model.d.ts +0 -6
  306. package/types/supabase/overwrites/tables/compositionAcquisition/model.js +0 -2
  307. package/types/supabase/overwrites/tables/compositionAcquisition/model.ts +0 -11
  308. package/types/supabase/overwrites/tables/compositionFavorite/index.d.ts +0 -1
  309. package/types/supabase/overwrites/tables/compositionFavorite/index.js +0 -2
  310. package/types/supabase/overwrites/tables/compositionFavorite/index.ts +0 -2
  311. package/types/supabase/overwrites/tables/compositionFavorite/model.d.ts +0 -1
  312. package/types/supabase/overwrites/tables/compositionFavorite/model.js +0 -2
  313. package/types/supabase/overwrites/tables/compositionFavorite/model.ts +0 -1
  314. package/types/supabase/overwrites/tables/compositionView/index.d.ts +0 -1
  315. package/types/supabase/overwrites/tables/compositionView/index.js +0 -2
  316. package/types/supabase/overwrites/tables/compositionView/index.ts +0 -2
  317. package/types/supabase/overwrites/tables/compositionView/model.d.ts +0 -1
  318. package/types/supabase/overwrites/tables/compositionView/model.js +0 -2
  319. package/types/supabase/overwrites/tables/compositionView/model.ts +0 -1
  320. package/types/supabase/overwrites/tables/currencyExchangeRate/index.d.ts +0 -16
  321. package/types/supabase/overwrites/tables/currencyExchangeRate/index.js +0 -2
  322. package/types/supabase/overwrites/tables/currencyExchangeRate/index.ts +0 -18
  323. package/types/supabase/overwrites/tables/event/index.js +0 -2
  324. package/types/supabase/overwrites/tables/event_history/index.d.ts +0 -7
  325. package/types/supabase/overwrites/tables/event_history/index.js +0 -2
  326. package/types/supabase/overwrites/tables/event_history/index.ts +0 -9
  327. package/types/supabase/overwrites/tables/event_history/model.d.ts +0 -10
  328. package/types/supabase/overwrites/tables/event_history/model.js +0 -2
  329. package/types/supabase/overwrites/tables/event_history/model.ts +0 -13
  330. package/types/supabase/overwrites/tables/group/index.js +0 -2
  331. package/types/supabase/overwrites/tables/group_history/index.d.ts +0 -7
  332. package/types/supabase/overwrites/tables/group_history/index.js +0 -2
  333. package/types/supabase/overwrites/tables/group_history/index.ts +0 -9
  334. package/types/supabase/overwrites/tables/group_history/model.d.ts +0 -10
  335. package/types/supabase/overwrites/tables/group_history/model.js +0 -2
  336. package/types/supabase/overwrites/tables/group_history/model.ts +0 -13
  337. package/types/supabase/overwrites/tables/offer/index.js +0 -2
  338. package/types/supabase/overwrites/tables/offer_history/index.d.ts +0 -7
  339. package/types/supabase/overwrites/tables/offer_history/index.js +0 -2
  340. package/types/supabase/overwrites/tables/offer_history/index.ts +0 -9
  341. package/types/supabase/overwrites/tables/offer_history/model.d.ts +0 -10
  342. package/types/supabase/overwrites/tables/offer_history/model.js +0 -2
  343. package/types/supabase/overwrites/tables/offer_history/model.ts +0 -13
  344. package/types/supabase/overwrites/tables/repertoire/model.d.ts +0 -7
  345. package/types/supabase/overwrites/tables/repertoire/model.js +0 -2
  346. package/types/supabase/overwrites/tables/repertoire/model.ts +0 -7
  347. package/types/supabase/overwrites/tables/repertoire_history/index.d.ts +0 -7
  348. package/types/supabase/overwrites/tables/repertoire_history/index.js +0 -2
  349. package/types/supabase/overwrites/tables/repertoire_history/index.ts +0 -9
  350. package/types/supabase/overwrites/tables/repertoire_history/model.d.ts +0 -10
  351. package/types/supabase/overwrites/tables/repertoire_history/model.js +0 -2
  352. package/types/supabase/overwrites/tables/repertoire_history/model.ts +0 -13
  353. package/types/supabase/overwrites/tables/user/index.d.ts +0 -11
  354. package/types/supabase/overwrites/tables/user/index.js +0 -2
  355. package/types/supabase/overwrites/tables/user/index.ts +0 -13
  356. /package/functions/{composer.js → eventoPayout.js} +0 -0
  357. /package/functions/{composerComposition.js → groupModule.js} +0 -0
  358. /package/functions/{composerNotification.js → groupPayment.js} +0 -0
  359. /package/functions/{composerPayout.js → groupPayoutRule.js} +0 -0
  360. /package/{models/supabase/Comm/types.js → types/supabase/overwrites/comm.js} +0 -0
  361. /package/{models/supabase/Composer/Composition/Acquisition/types.js → types/supabase/overwrites/comm_history.js} +0 -0
  362. /package/{models/supabase/Composer/Composition/Favorite/types.js → types/supabase/overwrites/event.js} +0 -0
  363. /package/{models/supabase/Composer/Composition/View/types.js → types/supabase/overwrites/event_history.js} +0 -0
  364. /package/{models/supabase/Composer/Payout/status.js → types/supabase/overwrites/group.js} +0 -0
  365. /package/{models/supabase/Composer/Payout/types.js → types/supabase/overwrites/group_history.js} +0 -0
  366. /package/{models/supabase/Composer/PerformanceAttendance/types.js → types/supabase/overwrites/offer.js} +0 -0
  367. /package/{models/supabase/Composer/types.js → types/supabase/overwrites/offer_history.js} +0 -0
  368. /package/{models/supabase/Repertoire/types.js → types/supabase/overwrites/repertoire.js} +0 -0
  369. /package/{models/supabase/User/Group/types.js → types/supabase/overwrites/repertoire_history.js} +0 -0
  370. /package/types/supabase/overwrites/{tables/common/index.d.ts → utils.d.ts} +0 -0
  371. /package/{models/supabase/User/types.js → types/supabase/overwrites/utils.js} +0 -0
  372. /package/types/supabase/overwrites/{tables/common/index.ts → utils.ts} +0 -0
@@ -34,4 +34,5 @@ export default class EventoPlayer extends PlayerBasic<EventPlayerData> {
34
34
  get remarks(): string | null;
35
35
  get questions(): import("./types").EventPlayerAnswers[];
36
36
  get rollCalledVia(): import("./types").EventPlayerRollCallVia | null;
37
+ get paymentId(): string | null;
37
38
  }
@@ -96,5 +96,8 @@ class EventoPlayer extends basic_1.default {
96
96
  get rollCalledVia() {
97
97
  return this.data.rollCalledVia || null;
98
98
  }
99
+ get paymentId() {
100
+ return this.data.paymentId || null;
101
+ }
99
102
  }
100
103
  exports.default = EventoPlayer;
@@ -73,6 +73,7 @@ export interface EventPlayerData extends EventPlayerBasicData {
73
73
  questions: EventPlayerAnswers[];
74
74
  history: EventPlayerHistory[];
75
75
  remarks: string | null;
76
+ paymentId: string | null;
76
77
  }
77
78
  export interface AEventPlayerData extends EventPlayerData {
78
79
  id: string;
@@ -6,12 +6,12 @@ var EventPlayerRollCallVia;
6
6
  EventPlayerRollCallVia["QR"] = "QR";
7
7
  EventPlayerRollCallVia["GeoLoc"] = "GeoLoc";
8
8
  EventPlayerRollCallVia["Admin"] = "Admin";
9
- })(EventPlayerRollCallVia || (exports.EventPlayerRollCallVia = EventPlayerRollCallVia = {}));
9
+ })(EventPlayerRollCallVia = exports.EventPlayerRollCallVia || (exports.EventPlayerRollCallVia = {}));
10
10
  var EventPlayerStatus;
11
11
  (function (EventPlayerStatus) {
12
12
  EventPlayerStatus["Confirmed"] = "confirmed";
13
13
  EventPlayerStatus["Declined"] = "declined";
14
- })(EventPlayerStatus || (exports.EventPlayerStatus = EventPlayerStatus = {}));
14
+ })(EventPlayerStatus = exports.EventPlayerStatus || (exports.EventPlayerStatus = {}));
15
15
  var EventPlayerReason;
16
16
  (function (EventPlayerReason) {
17
17
  EventPlayerReason["Sick"] = "Sick";
@@ -19,4 +19,4 @@ var EventPlayerReason;
19
19
  EventPlayerReason["ArrivingLate"] = "ArrivingLate";
20
20
  EventPlayerReason["LeavingEarly"] = "LeavingEarly";
21
21
  EventPlayerReason["Other"] = "Other";
22
- })(EventPlayerReason || (exports.EventPlayerReason = EventPlayerReason = {}));
22
+ })(EventPlayerReason = exports.EventPlayerReason || (exports.EventPlayerReason = {}));
@@ -1,8 +1,7 @@
1
1
  import { Timestamp } from '@google-cloud/firestore';
2
- import { SourceComposition, ThemeBasicData } from '../../Repertory/types';
2
+ import { ThemeBasicData } from '../../Repertory/types';
3
3
  export interface EventRepertoryData extends ThemeBasicData {
4
4
  order: number;
5
5
  createdAt: Timestamp;
6
6
  createdBy: string;
7
- sourceComposition?: SourceComposition | null;
8
7
  }
@@ -30,8 +30,8 @@ export default class Evento extends EventoPromoter<EventData> {
30
30
  get repertoryIds(): string[];
31
31
  get repertoryCount(): number;
32
32
  get activeInvitationLink(): boolean;
33
- getInvitationLink(landingHost: string): string;
34
- getShortDynamicLink(landingHost: string): string;
33
+ get invitationLink(): string;
34
+ get shortDynamicLink(): string;
35
35
  get deletedAt(): FirebaseFirestore.Timestamp | null;
36
36
  get deletedBy(): string | null;
37
37
  get createdAt(): FirebaseFirestore.Timestamp;
@@ -49,7 +49,6 @@ export default class Evento extends EventoPromoter<EventData> {
49
49
  get repertoryList(): {
50
50
  id: string;
51
51
  order: number;
52
- sourceComposition?: import("../Repertory/types").SourceComposition | null;
53
52
  title: string;
54
53
  compositor: string | null;
55
54
  tags: string[];
@@ -88,5 +87,7 @@ export default class Evento extends EventoPromoter<EventData> {
88
87
  };
89
88
  getQuestionsByStatus(status: EventPlayerStatus): import("./types").EventQuestions[];
90
89
  get reminders(): import("./types").EventReminderOptions[];
90
+ get payout(): import("./types").EventPayoutConfig | null;
91
+ get payoutRules(): import("../../types/payoutRule").EventoPayoutRuleEntry[];
91
92
  }
92
93
  export {};
@@ -4,7 +4,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const lodash_1 = require("lodash");
7
- const externalUrls_1 = require("../../helpers/externalUrls");
8
7
  const orders_1 = require("../../helpers/instruments/orders");
9
8
  const orders_2 = require("../../helpers/musicStyles/orders");
10
9
  const lang_1 = require("../../lang");
@@ -75,15 +74,15 @@ class Evento extends promoter_1.default {
75
74
  get activeInvitationLink() {
76
75
  return this.data.activeInvitationLink || false;
77
76
  }
78
- getInvitationLink(landingHost) {
79
- const link = (0, externalUrls_1.buildEventInvitationUrl)(landingHost, this.id);
77
+ get invitationLink() {
78
+ const link = `https://glissandoo.com/joinevent/${this.id}`;
80
79
  if (lang_1.LanguagesTypes.ES === this.lang) {
81
80
  return link;
82
81
  }
83
82
  return `${link}?lang=${this.lang}`;
84
83
  }
85
- getShortDynamicLink(landingHost) {
86
- const link = (0, externalUrls_1.buildEventUrl)(landingHost, this.id);
84
+ get shortDynamicLink() {
85
+ const link = `https://glissandoo.com/event/${this.id}`;
87
86
  if (lang_1.LanguagesTypes.ES === this.lang) {
88
87
  return link;
89
88
  }
@@ -246,5 +245,11 @@ class Evento extends promoter_1.default {
246
245
  get reminders() {
247
246
  return this.data.reminders || [];
248
247
  }
248
+ get payout() {
249
+ return this.data.payout || null;
250
+ }
251
+ get payoutRules() {
252
+ return this.data.payout?.rules || [];
253
+ }
249
254
  }
250
255
  exports.default = Evento;
@@ -1,11 +1,45 @@
1
1
  import { DocumentReference, GeoPoint, Timestamp } from '@google-cloud/firestore';
2
2
  import { Descendant } from '../../helpers/slate';
3
3
  import { CreatedOn } from '../../helpers/types';
4
+ import { EventoPayoutRuleEntry } from '../../types/payoutRule';
4
5
  import { StageTemplate } from '../Group/StageTemplate/types';
5
6
  import { GroupBasicData } from '../Group/types';
6
7
  import { PlayerBasicData } from '../Player/types';
7
- import { SourceComposition, ThemeBasicData } from '../Repertory/types';
8
+ import { ThemeBasicData } from '../Repertory/types';
8
9
  import { EventPlayerAnswers, EventPlayerReason, EventPlayerStatus } from './Player/types';
10
+ export declare enum EventHistoryAction {
11
+ Created = "created",
12
+ Deleted = "deleted",
13
+ CloseSelectionMode = "close_selection_mode",
14
+ EditResponseDeadline = "edit_response_deadline",
15
+ EditDate = "edit_date",
16
+ EditTime = "edit_time",
17
+ EditLocality = "edit_locality",
18
+ EditImages = "edit_images",
19
+ EditAttachments = "edit_attachments",
20
+ EditStage = "edit_stage",
21
+ EditDescription = "edit_description",
22
+ EditQuestions = "edit_questions",
23
+ EditReminders = "edit_reminders",
24
+ PlayerAdd = "player_add",
25
+ PlayerRemove = "player_remove",
26
+ PlayerStatusChange = "player_status_change",
27
+ RepertoireAdd = "repertoire_add",
28
+ RepertoireRemove = "repertoire_remove",
29
+ EditDisplayName = "edit_display_name",
30
+ EditMaxAttendance = "edit_max_attendance",
31
+ RollCall = "roll_call",
32
+ NotifyPendingPlayers = "notify_pending_players",
33
+ PlayerAttendance = "player_attendance",
34
+ PlayerAttendanceByAdmin = "player_attendance_by_admin",
35
+ PlayerSetNote = "player_set_note",
36
+ PlayerSetQuestions = "player_set_questions",
37
+ PlayerRollCallQR = "player_roll_call_qr",
38
+ PlayerRollCallGeoLoc = "player_roll_call_geo_loc",
39
+ PayoutInitialize = "payout_initialize",
40
+ PayoutEditConfig = "payout_edit_config",
41
+ PayoutEditRules = "payout_edit_rules"
42
+ }
9
43
  export declare enum EventReminderOptions {
10
44
  OneHours = "1-hours",
11
45
  ThreeHours = "3-hours",
@@ -90,7 +124,6 @@ export interface AEventPlayerBasicData extends EventPlayerBasicData {
90
124
  }
91
125
  export interface EventThemeBasicData extends ThemeBasicData {
92
126
  order: number;
93
- sourceComposition?: SourceComposition | null;
94
127
  }
95
128
  export interface AEventThemeBasicData extends EventThemeBasicData {
96
129
  id: string;
@@ -148,7 +181,15 @@ export interface EventData extends EventPromoterData {
148
181
  attachmentsPath: string[];
149
182
  questions: Record<EventPlayerStatus, EventQuestions[]>;
150
183
  reminders: EventReminderOptions[];
184
+ payout: EventPayoutConfig | null;
151
185
  readonly owner: DocumentReference;
152
186
  readonly createdAt: Timestamp;
153
187
  readonly createdOn: CreatedOn;
154
188
  }
189
+ export interface EventPayoutConfig {
190
+ grossAmount: number;
191
+ currency: string;
192
+ importByMember: number | null;
193
+ rules: EventoPayoutRuleEntry[];
194
+ expenses: string[];
195
+ }
@@ -1,6 +1,40 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EventSelectionMode = exports.EventStatusByTime = exports.EventRepeatPeriod = exports.EventType = exports.EventFiles = exports.EventResponseDeadlineOptions = exports.EventReminderOptions = void 0;
3
+ exports.EventSelectionMode = exports.EventStatusByTime = exports.EventRepeatPeriod = exports.EventType = exports.EventFiles = exports.EventResponseDeadlineOptions = exports.EventReminderOptions = exports.EventHistoryAction = void 0;
4
+ var EventHistoryAction;
5
+ (function (EventHistoryAction) {
6
+ EventHistoryAction["Created"] = "created";
7
+ EventHistoryAction["Deleted"] = "deleted";
8
+ EventHistoryAction["CloseSelectionMode"] = "close_selection_mode";
9
+ EventHistoryAction["EditResponseDeadline"] = "edit_response_deadline";
10
+ EventHistoryAction["EditDate"] = "edit_date";
11
+ EventHistoryAction["EditTime"] = "edit_time";
12
+ EventHistoryAction["EditLocality"] = "edit_locality";
13
+ EventHistoryAction["EditImages"] = "edit_images";
14
+ EventHistoryAction["EditAttachments"] = "edit_attachments";
15
+ EventHistoryAction["EditStage"] = "edit_stage";
16
+ EventHistoryAction["EditDescription"] = "edit_description";
17
+ EventHistoryAction["EditQuestions"] = "edit_questions";
18
+ EventHistoryAction["EditReminders"] = "edit_reminders";
19
+ EventHistoryAction["PlayerAdd"] = "player_add";
20
+ EventHistoryAction["PlayerRemove"] = "player_remove";
21
+ EventHistoryAction["PlayerStatusChange"] = "player_status_change";
22
+ EventHistoryAction["RepertoireAdd"] = "repertoire_add";
23
+ EventHistoryAction["RepertoireRemove"] = "repertoire_remove";
24
+ EventHistoryAction["EditDisplayName"] = "edit_display_name";
25
+ EventHistoryAction["EditMaxAttendance"] = "edit_max_attendance";
26
+ EventHistoryAction["RollCall"] = "roll_call";
27
+ EventHistoryAction["NotifyPendingPlayers"] = "notify_pending_players";
28
+ EventHistoryAction["PlayerAttendance"] = "player_attendance";
29
+ EventHistoryAction["PlayerAttendanceByAdmin"] = "player_attendance_by_admin";
30
+ EventHistoryAction["PlayerSetNote"] = "player_set_note";
31
+ EventHistoryAction["PlayerSetQuestions"] = "player_set_questions";
32
+ EventHistoryAction["PlayerRollCallQR"] = "player_roll_call_qr";
33
+ EventHistoryAction["PlayerRollCallGeoLoc"] = "player_roll_call_geo_loc";
34
+ EventHistoryAction["PayoutInitialize"] = "payout_initialize";
35
+ EventHistoryAction["PayoutEditConfig"] = "payout_edit_config";
36
+ EventHistoryAction["PayoutEditRules"] = "payout_edit_rules";
37
+ })(EventHistoryAction = exports.EventHistoryAction || (exports.EventHistoryAction = {}));
4
38
  var EventReminderOptions;
5
39
  (function (EventReminderOptions) {
6
40
  EventReminderOptions["OneHours"] = "1-hours";
@@ -11,7 +45,7 @@ var EventReminderOptions;
11
45
  EventReminderOptions["OneWeek"] = "1-weeks";
12
46
  EventReminderOptions["TwoWeeks"] = "2-weeks";
13
47
  EventReminderOptions["Custom"] = "custom";
14
- })(EventReminderOptions || (exports.EventReminderOptions = EventReminderOptions = {}));
48
+ })(EventReminderOptions = exports.EventReminderOptions || (exports.EventReminderOptions = {}));
15
49
  var EventResponseDeadlineOptions;
16
50
  (function (EventResponseDeadlineOptions) {
17
51
  EventResponseDeadlineOptions["BeforeEvent"] = "BeforeEvent";
@@ -19,35 +53,35 @@ var EventResponseDeadlineOptions;
19
53
  EventResponseDeadlineOptions["OneDayBefore"] = "OneDayBefore";
20
54
  EventResponseDeadlineOptions["OneWeekBefore"] = "OneWeekBefore";
21
55
  EventResponseDeadlineOptions["Custom"] = "Custom";
22
- })(EventResponseDeadlineOptions || (exports.EventResponseDeadlineOptions = EventResponseDeadlineOptions = {}));
56
+ })(EventResponseDeadlineOptions = exports.EventResponseDeadlineOptions || (exports.EventResponseDeadlineOptions = {}));
23
57
  var EventFiles;
24
58
  (function (EventFiles) {
25
59
  EventFiles["StageThumbnail"] = "stageThumbnail.png";
26
60
  EventFiles["StagePDF"] = "stage.pdf";
27
61
  EventFiles["Cover"] = "cover.jpeg";
28
- })(EventFiles || (exports.EventFiles = EventFiles = {}));
62
+ })(EventFiles = exports.EventFiles || (exports.EventFiles = {}));
29
63
  var EventType;
30
64
  (function (EventType) {
31
65
  EventType["Practice"] = "practice";
32
66
  EventType["Performance"] = "performance";
33
67
  EventType["Other"] = "other";
34
- })(EventType || (exports.EventType = EventType = {}));
68
+ })(EventType = exports.EventType || (exports.EventType = {}));
35
69
  var EventRepeatPeriod;
36
70
  (function (EventRepeatPeriod) {
37
71
  EventRepeatPeriod["None"] = "none";
38
72
  EventRepeatPeriod["Weekly"] = "weekly";
39
73
  EventRepeatPeriod["Biweekly"] = "biweekly";
40
74
  EventRepeatPeriod["Monthly"] = "monthly";
41
- })(EventRepeatPeriod || (exports.EventRepeatPeriod = EventRepeatPeriod = {}));
75
+ })(EventRepeatPeriod = exports.EventRepeatPeriod || (exports.EventRepeatPeriod = {}));
42
76
  // Se usa en la cabecera de la vista de evento de la app
43
77
  var EventStatusByTime;
44
78
  (function (EventStatusByTime) {
45
79
  EventStatusByTime["Future"] = "future";
46
80
  EventStatusByTime["Now"] = "now";
47
81
  EventStatusByTime["Past"] = "past";
48
- })(EventStatusByTime || (exports.EventStatusByTime = EventStatusByTime = {}));
82
+ })(EventStatusByTime = exports.EventStatusByTime || (exports.EventStatusByTime = {}));
49
83
  var EventSelectionMode;
50
84
  (function (EventSelectionMode) {
51
85
  EventSelectionMode["Open"] = "open";
52
86
  EventSelectionMode["Closed"] = "closed";
53
- })(EventSelectionMode || (exports.EventSelectionMode = EventSelectionMode = {}));
87
+ })(EventSelectionMode = exports.EventSelectionMode || (exports.EventSelectionMode = {}));
@@ -23,6 +23,6 @@ export default class Federation extends Model<FederationData> {
23
23
  get deletedAt(): FirebaseFirestore.Timestamp | null;
24
24
  get deletedBy(): string | null;
25
25
  get isActive(): boolean;
26
- getGlissandooAdminUrl(adminHost: string): string;
26
+ get glissandooAdminUrl(): string;
27
27
  get besm(): boolean;
28
28
  }
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const collections_1 = require("../../helpers/collections");
7
- const externalUrls_1 = require("../../helpers/externalUrls");
7
+ const glissandooAdmin_1 = require("../../helpers/glissandooAdmin");
8
8
  const types_1 = require("../../helpers/types");
9
9
  const Model_1 = __importDefault(require("../Model"));
10
10
  class Federation extends Model_1.default {
@@ -75,8 +75,8 @@ class Federation extends Model_1.default {
75
75
  get isActive() {
76
76
  return !this.deletedAt && this.exists;
77
77
  }
78
- getGlissandooAdminUrl(adminHost) {
79
- return (0, externalUrls_1.buildAdminEntityUrl)(adminHost, collections_1.CollectionNames.Federation, this.id);
78
+ get glissandooAdminUrl() {
79
+ return (0, glissandooAdmin_1.getGlissandooAdminEntityURL)(collections_1.CollectionNames.Federation, this.id);
80
80
  }
81
81
  get besm() {
82
82
  return this.data.besm || false;
@@ -10,4 +10,4 @@ var SatisfactionIndexElements;
10
10
  SatisfactionIndexElements["EVENTS_ATTENDANCE_PREVISION_RATIO"] = "eventsAttendancePrevisionRatio";
11
11
  SatisfactionIndexElements["EVENTS_ANSWER_RATIO"] = "eventsAnswerRatio";
12
12
  SatisfactionIndexElements["EVENTS_WITH_REPERTORY_RATIO"] = "eventsWithRepertoryRatio";
13
- })(SatisfactionIndexElements || (exports.SatisfactionIndexElements = SatisfactionIndexElements = {}));
13
+ })(SatisfactionIndexElements = exports.SatisfactionIndexElements || (exports.SatisfactionIndexElements = {}));
@@ -0,0 +1,45 @@
1
+ import { GroupPaymentData, GroupPaymentHistoryItem, GroupPaymentMethod, GroupPaymentStatus, GroupPaymentType } from './types';
2
+ /**
3
+ * Plain-object model for a `group_payment` row. Mirrors the previous
4
+ * Firestore-backed model API so dashboard components keep working with
5
+ * `payment.foo` getters. Build with `new GroupPayment(rowData)` where
6
+ * `rowData` is the deserialized DB record (or a snapshot built from a
7
+ * realtime callback).
8
+ *
9
+ * Timestamp getters return native `Date` objects so consumers can call
10
+ * `.getTime()` / format them with `date-fns`/`dayjs` directly.
11
+ */
12
+ export default class GroupPayment {
13
+ id: string;
14
+ exists: boolean;
15
+ private _data;
16
+ constructor(data: GroupPaymentData);
17
+ get data(): GroupPaymentData;
18
+ get groupId(): string;
19
+ get type(): GroupPaymentType;
20
+ get isIncome(): boolean;
21
+ get isExpense(): boolean;
22
+ get eventId(): string | null;
23
+ get playerId(): string | null;
24
+ get concept(): string;
25
+ get assignedTo(): string;
26
+ get totalAmount(): number | null;
27
+ get baseAmount(): number | null;
28
+ get appliedRules(): import("../../../helpers/payoutRules").AppliedRuleEntry[];
29
+ get currency(): string;
30
+ get displayTotal(): string;
31
+ get status(): GroupPaymentStatus;
32
+ get isPending(): boolean;
33
+ get isPaid(): boolean;
34
+ get isCancelled(): boolean;
35
+ get paymentMethod(): GroupPaymentMethod | null;
36
+ get history(): GroupPaymentHistoryItem[];
37
+ get historyOrdered(): GroupPaymentHistoryItem[];
38
+ get paidAt(): Date | null;
39
+ get paidBy(): string | null;
40
+ get note(): string | null;
41
+ get createdAt(): Date;
42
+ get createdBy(): string;
43
+ get editedAt(): Date | null;
44
+ get editedBy(): string | null;
45
+ }
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const types_1 = require("./types");
4
+ /**
5
+ * Plain-object model for a `group_payment` row. Mirrors the previous
6
+ * Firestore-backed model API so dashboard components keep working with
7
+ * `payment.foo` getters. Build with `new GroupPayment(rowData)` where
8
+ * `rowData` is the deserialized DB record (or a snapshot built from a
9
+ * realtime callback).
10
+ *
11
+ * Timestamp getters return native `Date` objects so consumers can call
12
+ * `.getTime()` / format them with `date-fns`/`dayjs` directly.
13
+ */
14
+ class GroupPayment {
15
+ constructor(data) {
16
+ this.id = data.id;
17
+ this._data = data;
18
+ this.exists = true;
19
+ }
20
+ get data() {
21
+ return this._data;
22
+ }
23
+ get groupId() {
24
+ return this._data.groupId;
25
+ }
26
+ get type() {
27
+ return this._data.type;
28
+ }
29
+ get isIncome() {
30
+ return this.type === types_1.GroupPaymentType.Income;
31
+ }
32
+ get isExpense() {
33
+ return this.type === types_1.GroupPaymentType.Expense;
34
+ }
35
+ get eventId() {
36
+ return this._data.eventId || null;
37
+ }
38
+ get playerId() {
39
+ return this._data.playerId || null;
40
+ }
41
+ get concept() {
42
+ return this._data.concept || '';
43
+ }
44
+ get assignedTo() {
45
+ return this._data.assignedTo || '';
46
+ }
47
+ get totalAmount() {
48
+ return this._data.totalAmount;
49
+ }
50
+ get baseAmount() {
51
+ return this._data.baseAmount ?? this._data.totalAmount;
52
+ }
53
+ get appliedRules() {
54
+ return this._data.appliedRules || [];
55
+ }
56
+ get currency() {
57
+ return this._data.currency || 'EUR';
58
+ }
59
+ get displayTotal() {
60
+ if (this.totalAmount === null)
61
+ return '— €';
62
+ const sign = this.isExpense ? '-' : '';
63
+ return `${sign}${this.totalAmount} €`;
64
+ }
65
+ get status() {
66
+ return this._data.status;
67
+ }
68
+ get isPending() {
69
+ return this.status === types_1.GroupPaymentStatus.Pending;
70
+ }
71
+ get isPaid() {
72
+ return this.status === types_1.GroupPaymentStatus.Paid;
73
+ }
74
+ get isCancelled() {
75
+ return this.status === types_1.GroupPaymentStatus.Cancelled;
76
+ }
77
+ get paymentMethod() {
78
+ return this._data.paymentMethod || null;
79
+ }
80
+ get history() {
81
+ return this._data.history || [];
82
+ }
83
+ get historyOrdered() {
84
+ return this.history
85
+ .slice()
86
+ .sort((a, b) => new Date(a.changedAt).getTime() < new Date(b.changedAt).getTime() ? 1 : -1);
87
+ }
88
+ get paidAt() {
89
+ return this._data.paidAt ? new Date(this._data.paidAt) : null;
90
+ }
91
+ get paidBy() {
92
+ return this._data.paidBy || null;
93
+ }
94
+ get note() {
95
+ return this._data.note || null;
96
+ }
97
+ get createdAt() {
98
+ return new Date(this._data.createdAt);
99
+ }
100
+ get createdBy() {
101
+ return this._data.createdBy;
102
+ }
103
+ get editedAt() {
104
+ return this._data.editedAt ? new Date(this._data.editedAt) : null;
105
+ }
106
+ get editedBy() {
107
+ return this._data.editedBy || null;
108
+ }
109
+ }
110
+ exports.default = GroupPayment;
@@ -0,0 +1,16 @@
1
+ import { Database } from '../../../types/supabase';
2
+ import { GroupPaymentData, GroupPaymentHistoryItem } from './types';
3
+ export type GroupPaymentRow = Database['public']['Tables']['group_payment']['Row'];
4
+ export type GroupPaymentInsert = Database['public']['Tables']['group_payment']['Insert'];
5
+ export type GroupPaymentUpdate = Database['public']['Tables']['group_payment']['Update'];
6
+ export type GroupPaymentHistoryRow = Database['public']['Tables']['group_payment_history']['Row'];
7
+ export type GroupPaymentHistoryInsert = Database['public']['Tables']['group_payment_history']['Insert'];
8
+ export declare const GROUP_PAYMENT_TABLE: "group_payment";
9
+ export declare const GROUP_PAYMENT_HISTORY_TABLE: "group_payment_history";
10
+ /**
11
+ * Convert a raw `group_payment` DB row into the canonical `GroupPaymentData`
12
+ * shape consumed by the `GroupPayment` model. `history` defaults to an empty
13
+ * array; hydrate it from the history table when needed.
14
+ */
15
+ export declare function rowToGroupPaymentData(row: GroupPaymentRow, history?: GroupPaymentHistoryItem[]): GroupPaymentData;
16
+ export declare function historyRowToItem(row: GroupPaymentHistoryRow): GroupPaymentHistoryItem;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.historyRowToItem = exports.rowToGroupPaymentData = exports.GROUP_PAYMENT_HISTORY_TABLE = exports.GROUP_PAYMENT_TABLE = void 0;
4
+ exports.GROUP_PAYMENT_TABLE = 'group_payment';
5
+ exports.GROUP_PAYMENT_HISTORY_TABLE = 'group_payment_history';
6
+ /**
7
+ * Convert a raw `group_payment` DB row into the canonical `GroupPaymentData`
8
+ * shape consumed by the `GroupPayment` model. `history` defaults to an empty
9
+ * array; hydrate it from the history table when needed.
10
+ */
11
+ function rowToGroupPaymentData(row, history = []) {
12
+ return {
13
+ id: row.id,
14
+ groupId: row.groupId,
15
+ type: row.type,
16
+ eventId: row.eventId,
17
+ playerId: row.playerId,
18
+ concept: row.concept,
19
+ assignedTo: row.assignedTo,
20
+ totalAmount: row.totalAmount === null ? null : Number(row.totalAmount),
21
+ baseAmount: row.baseAmount === null ? null : Number(row.baseAmount),
22
+ appliedRules: row.appliedRules ?? [],
23
+ currency: row.currency,
24
+ status: row.status,
25
+ history,
26
+ paymentMethod: row.paymentMethod ?? null,
27
+ paidAt: row.paidAt,
28
+ paidBy: row.paidBy,
29
+ note: row.note,
30
+ createdAt: row.createdAt,
31
+ createdBy: row.createdBy,
32
+ editedAt: row.updatedAt,
33
+ editedBy: row.editedBy,
34
+ };
35
+ }
36
+ exports.rowToGroupPaymentData = rowToGroupPaymentData;
37
+ function historyRowToItem(row) {
38
+ return {
39
+ action: row.action,
40
+ oldValue: row.old_value,
41
+ newValue: row.new_value,
42
+ changedAt: row.changed_at,
43
+ changedBy: row.changed_by,
44
+ };
45
+ }
46
+ exports.historyRowToItem = historyRowToItem;
@@ -0,0 +1,96 @@
1
+ import { AppliedRuleEntry } from '../../../helpers/payoutRules';
2
+ export declare enum GroupPaymentType {
3
+ Income = "income",
4
+ Expense = "expense"
5
+ }
6
+ export declare enum GroupPaymentStatus {
7
+ Pending = "pending",
8
+ Paid = "paid",
9
+ Cancelled = "cancelled"
10
+ }
11
+ export declare enum GroupPaymentMethod {
12
+ Cash = "cash",
13
+ Transfer = "transfer"
14
+ }
15
+ export declare enum GroupPaymentHistoryAction {
16
+ Status = "status",
17
+ Amount = "amount",
18
+ Concept = "concept",
19
+ Method = "method"
20
+ }
21
+ /**
22
+ * Unified audit entry for a payment. Each entry records one change to a
23
+ * single field (status, amount, concept or method) with the previous and
24
+ * new values, who performed it and when.
25
+ *
26
+ * For the very first entry (creation), `oldValue` is `null` and `newValue`
27
+ * holds the initial status.
28
+ *
29
+ * Timestamps are ISO 8601 strings (Postgres `timestamptz` representation).
30
+ */
31
+ export interface GroupPaymentHistoryItem {
32
+ action: GroupPaymentHistoryAction;
33
+ oldValue: string | number | null;
34
+ newValue: string | number | null;
35
+ changedAt: string;
36
+ changedBy: string;
37
+ }
38
+ /**
39
+ * Flat payment record at the group level — represents both incomes
40
+ * (e.g. event payout owed to a musician) and expenses (e.g. fuel reimbursement,
41
+ * supplier invoice). Persisted in Postgres (`public.group_payment`).
42
+ *
43
+ * `totalAmount` is always positive; the sign is encoded by `type`.
44
+ *
45
+ * `assignedTo` is a free-form string: it may be a userId (a player), a groupId
46
+ * (the band itself), or any free string (external supplier name).
47
+ *
48
+ * `playerId` is only set when the payment originates from rollcall — it links
49
+ * the payment back to the attendee via `eventPlayer.paymentId`.
50
+ *
51
+ * Timestamps are ISO 8601 strings.
52
+ */
53
+ export interface GroupPaymentData {
54
+ id: string;
55
+ groupId: string;
56
+ type: GroupPaymentType;
57
+ eventId: string | null;
58
+ playerId: string | null;
59
+ concept: string;
60
+ assignedTo: string;
61
+ /**
62
+ * Positive amount. `null` only while the payment is Pending (e.g. payouts
63
+ * waiting for the admin to fix a per-member share). Transitioning to Paid
64
+ * requires a concrete number.
65
+ */
66
+ totalAmount: number | null;
67
+ /**
68
+ * `importByMember` at the moment the payment was created/recomputed.
69
+ * Equals `totalAmount` when no rules apply. `null` mirrors `totalAmount`
70
+ * when the per-member share is "to be determined".
71
+ */
72
+ baseAmount: number | null;
73
+ /**
74
+ * Snapshot of the event payout rules that affected this player, ordered
75
+ * by `order`. Empty array when no rules matched. Used for traceability
76
+ * and to drive the breakdown tooltip in the UI.
77
+ */
78
+ appliedRules: AppliedRuleEntry[];
79
+ currency: string;
80
+ status: GroupPaymentStatus;
81
+ /**
82
+ * In-memory audit trail loaded from `group_payment_history`. Empty `[]`
83
+ * when not hydrated. Use the model's `historyOrdered` getter for a desc
84
+ * view.
85
+ */
86
+ history: GroupPaymentHistoryItem[];
87
+ paymentMethod: GroupPaymentMethod | null;
88
+ paidAt: string | null;
89
+ paidBy: string | null;
90
+ note: string | null;
91
+ createdAt: string;
92
+ createdBy: string;
93
+ editedAt: string | null;
94
+ editedBy: string | null;
95
+ }
96
+ export type AGroupPaymentData = GroupPaymentData;