@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.
- package/functions/auth.d.ts +1 -3
- package/functions/customer.d.ts +0 -4
- package/functions/event.d.ts +22 -0
- package/functions/event.js +1 -1
- package/functions/eventPlayer.d.ts +2 -0
- package/functions/eventPlayer.js +1 -1
- package/functions/eventRepertory.d.ts +0 -2
- package/functions/eventRepertory.js +1 -1
- package/functions/eventoPayout.d.ts +70 -0
- package/functions/groupModule.d.ts +13 -0
- package/functions/groupPayment.d.ts +62 -0
- package/functions/groupPayoutRule.d.ts +18 -0
- package/functions/groupRepertory.d.ts +0 -110
- package/functions/index.d.ts +12 -30
- package/functions/index.js +13 -31
- package/functions/misc.d.ts +0 -6
- package/functions/regions.js +13 -31
- package/helpers/appScenes.d.ts +2 -0
- package/helpers/appScenes.js +3 -1
- package/helpers/auth.d.ts +9 -2
- package/helpers/auth.js +14 -33
- package/helpers/badges.js +1 -1
- package/helpers/collections.js +2 -2
- package/helpers/communicationTemplate/index.d.ts +2 -3
- package/helpers/communicationTemplate/index.js +5 -5
- package/helpers/currency.d.ts +4 -19
- package/helpers/currency.js +264 -72
- package/helpers/dlinks.js +1 -1
- package/helpers/errors.d.ts +7 -2
- package/helpers/errors.js +7 -2
- package/helpers/glissandooAdmin.d.ts +3 -0
- package/helpers/glissandooAdmin.js +6 -0
- package/helpers/instruments/index.d.ts +0 -17
- package/helpers/instruments/index.js +1 -5
- package/helpers/instruments/lists.d.ts +3 -3
- package/helpers/instruments/lists.js +5 -5
- package/helpers/musicStyles/index.d.ts +4 -22
- package/helpers/musicStyles/index.js +35 -114
- package/helpers/notifications/index.js +1 -1
- package/helpers/objects.d.ts +1 -5
- package/helpers/objects.js +6 -7
- package/helpers/paymentForecast.d.ts +37 -0
- package/helpers/paymentForecast.js +58 -0
- package/helpers/payoutRules.d.ts +45 -0
- package/helpers/payoutRules.js +166 -0
- package/helpers/plans.js +2 -2
- package/helpers/rates.d.ts +1 -1
- package/helpers/slate.d.ts +5 -64
- package/helpers/slate.js +1 -7
- package/helpers/ts-extras/array-includes.js +2 -1
- package/helpers/ts-extras/as-mutable.js +2 -1
- package/helpers/ts-extras/assert-error.js +2 -1
- package/helpers/ts-extras/index.js +1 -1
- package/helpers/ts-extras/is-defined.js +2 -1
- package/helpers/ts-extras/is-empty.js +2 -1
- package/helpers/ts-extras/is-infinite.js +2 -1
- package/helpers/ts-extras/is-present.js +2 -1
- package/helpers/ts-extras/object-entries.d.ts +1 -1
- package/helpers/ts-extras/object-from-entries.d.ts +1 -1
- package/helpers/ts-extras/object-has-own.js +2 -1
- package/helpers/ts-extras/object-keys.d.ts +1 -1
- package/helpers/ts-extras/object-keys.js +1 -0
- package/helpers/ts-extras/set-has.js +2 -1
- package/helpers/types.d.ts +0 -26
- package/helpers/types.js +5 -25
- package/lang/ca.json +97 -325
- package/lang/de.json +97 -325
- package/lang/en.json +97 -325
- package/lang/es.json +97 -325
- package/lang/eu.json +97 -325
- package/lang/fr.json +97 -325
- package/lang/gl.json +97 -325
- package/lang/index.js +2 -3
- package/lang/it.json +97 -325
- package/lang/nl.json +97 -325
- package/lang/pt.json +97 -325
- package/models/Communication/types.d.ts +16 -0
- package/models/Communication/types.js +9 -3
- package/models/Counters/Group/Analytics/types.js +1 -1
- package/models/Customer/index.d.ts +1 -1
- package/models/Customer/index.js +3 -3
- package/models/Customer/types.js +1 -1
- package/models/Evento/Player/index.d.ts +1 -0
- package/models/Evento/Player/index.js +3 -0
- package/models/Evento/Player/types.d.ts +1 -0
- package/models/Evento/Player/types.js +3 -3
- package/models/Evento/Repertory/types.d.ts +1 -2
- package/models/Evento/index.d.ts +4 -3
- package/models/Evento/index.js +10 -5
- package/models/Evento/types.d.ts +43 -2
- package/models/Evento/types.js +42 -8
- package/models/Federation/index.d.ts +1 -1
- package/models/Federation/index.js +3 -3
- package/models/Group/Analytics/types.js +1 -1
- package/models/Group/Payment/index.d.ts +45 -0
- package/models/Group/Payment/index.js +110 -0
- package/models/Group/Payment/supabase.d.ts +16 -0
- package/models/Group/Payment/supabase.js +46 -0
- package/models/Group/Payment/types.d.ts +96 -0
- package/models/Group/Payment/types.js +26 -0
- package/models/Group/Player/types.js +1 -1
- package/models/Group/Repertory/File/Section/index.d.ts +3 -3
- package/models/Group/Repertory/File/Section/index.js +2 -3
- package/models/Group/Repertory/File/Section/types.d.ts +0 -7
- package/models/Group/Repertory/File/Section/types.js +1 -1
- package/models/Group/Repertory/File/index.d.ts +2 -4
- package/models/Group/Repertory/File/index.js +4 -4
- package/models/Group/Repertory/FilePath/index.d.ts +4 -3
- package/models/Group/Repertory/index.d.ts +4 -12
- package/models/Group/Repertory/index.js +0 -9
- package/models/Group/Repertory/types.d.ts +32 -21
- package/models/Group/Repertory/types.js +18 -8
- package/models/Group/index.d.ts +20 -15
- package/models/Group/index.js +34 -16
- package/models/Group/types.d.ts +96 -6
- package/models/Group/types.js +63 -8
- package/models/Instrument/{fromRecord.d.ts → group.d.ts} +5 -4
- package/models/Instrument/{fromRecord.js → group.js} +10 -10
- package/models/Instrument/index.d.ts +0 -2
- package/models/Instrument/index.js +1 -38
- package/models/Inventory/Item/types.js +2 -2
- package/models/Inventory/types.js +1 -1
- package/models/Notification/types.d.ts +4 -1
- package/models/Notification/types.js +5 -2
- package/models/Offer/types.d.ts +12 -0
- package/models/Offer/types.js +15 -2
- package/models/Partnership/Partner/types.js +1 -1
- package/models/Partnership/Payment/types.js +2 -2
- package/models/Partnership/index.d.ts +1 -1
- package/models/Partnership/index.js +3 -3
- package/models/Partnership/types.js +1 -1
- package/models/Repertory/types.d.ts +0 -12
- package/models/Repertory/types.js +2 -2
- package/models/User/Group/index.js +2 -1
- package/models/User/index.d.ts +1 -1
- package/models/User/index.js +3 -3
- package/models/User/types.d.ts +1 -2
- package/models/User/types.js +7 -7
- package/models/WebhookEvent/types.js +1 -1
- package/package.json +20 -28
- package/types/firestore.d.ts +1 -0
- package/types/firestore.js +1 -1
- package/types/payoutRule.d.ts +126 -0
- package/types/payoutRule.js +34 -0
- package/types/payoutRule.ts +132 -0
- package/types/supabase/generated.d.ts +545 -3113
- package/types/supabase/generated.js +0 -9
- package/types/supabase/generated.ts +581 -3080
- package/types/supabase/index.d.ts +19 -155
- package/types/supabase/index.js +0 -15
- package/types/supabase/index.ts +21 -288
- package/types/supabase/overwrites/comm.d.ts +18 -0
- package/types/supabase/overwrites/comm.ts +18 -0
- package/types/supabase/overwrites/comm_history.d.ts +10 -0
- package/types/supabase/overwrites/comm_history.ts +10 -0
- package/types/supabase/overwrites/{tables/event/index.d.ts → event.d.ts} +1 -1
- package/types/supabase/overwrites/{tables/event/index.ts → event.ts} +1 -1
- package/types/supabase/overwrites/event_history.d.ts +10 -0
- package/types/supabase/overwrites/event_history.ts +10 -0
- package/types/supabase/overwrites/{tables/group/index.d.ts → group.d.ts} +5 -2
- package/types/supabase/overwrites/{tables/group/index.ts → group.ts} +6 -2
- package/types/supabase/overwrites/group_history.d.ts +9 -0
- package/types/supabase/overwrites/group_history.ts +9 -0
- package/types/supabase/overwrites/index.d.ts +1 -1
- package/types/supabase/overwrites/index.ts +1 -1
- package/types/supabase/overwrites/{tables/offer/index.d.ts → offer.d.ts} +2 -6
- package/types/supabase/overwrites/{tables/offer/index.ts → offer.ts} +2 -7
- package/types/supabase/overwrites/offer_history.d.ts +10 -0
- package/types/supabase/overwrites/offer_history.ts +10 -0
- package/types/supabase/overwrites/repertoire.d.ts +12 -0
- package/types/supabase/overwrites/repertoire.ts +12 -0
- package/types/supabase/overwrites/repertoire_history.d.ts +10 -0
- package/types/supabase/overwrites/repertoire_history.ts +10 -0
- package/functions/composer.d.ts +0 -13
- package/functions/composerComposition.d.ts +0 -102
- package/functions/composerNotification.d.ts +0 -38
- package/functions/composerPayout.d.ts +0 -20
- package/helpers/catalogBridge.d.ts +0 -121
- package/helpers/catalogBridge.js +0 -95
- package/helpers/compositionCategories/genres.d.ts +0 -922
- package/helpers/compositionCategories/genres.js +0 -940
- package/helpers/compositionCategories/index.d.ts +0 -2
- package/helpers/compositionCategories/index.js +0 -18
- package/helpers/compositionCategories/styles.d.ts +0 -181
- package/helpers/compositionCategories/styles.js +0 -197
- package/helpers/compositionSoloistOffstageParts/index.d.ts +0 -34
- package/helpers/compositionSoloistOffstageParts/index.js +0 -117
- package/helpers/currencyConversion.d.ts +0 -45
- package/helpers/currencyConversion.js +0 -119
- package/helpers/dataStructures/trees/index.d.ts +0 -12
- package/helpers/dataStructures/trees/index.js +0 -71
- package/helpers/dataStructures/trees/types.d.ts +0 -14
- package/helpers/dataStructures/trees/types.js +0 -5
- package/helpers/externalUrls.d.ts +0 -12
- package/helpers/externalUrls.js +0 -40
- package/models/CompositionGenre/index.d.ts +0 -9
- package/models/CompositionGenre/index.js +0 -16
- package/models/CompositionStyle/index.d.ts +0 -9
- package/models/CompositionStyle/index.js +0 -16
- package/models/supabase/Comm/index.d.ts +0 -24
- package/models/supabase/Comm/index.js +0 -68
- package/models/supabase/Comm/types.d.ts +0 -6
- package/models/supabase/CommHistory/index.d.ts +0 -22
- package/models/supabase/CommHistory/index.js +0 -37
- package/models/supabase/CommHistory/types.d.ts +0 -11
- package/models/supabase/CommHistory/types.js +0 -9
- package/models/supabase/Composer/Composition/Acquisition/index.d.ts +0 -4
- package/models/supabase/Composer/Composition/Acquisition/index.js +0 -9
- package/models/supabase/Composer/Composition/Acquisition/types.d.ts +0 -36
- package/models/supabase/Composer/Composition/Favorite/index.d.ts +0 -4
- package/models/supabase/Composer/Composition/Favorite/index.js +0 -9
- package/models/supabase/Composer/Composition/Favorite/types.d.ts +0 -6
- package/models/supabase/Composer/Composition/View/index.d.ts +0 -4
- package/models/supabase/Composer/Composition/View/index.js +0 -9
- package/models/supabase/Composer/Composition/View/types.d.ts +0 -6
- package/models/supabase/Composer/Composition/index.d.ts +0 -5284
- package/models/supabase/Composer/Composition/index.js +0 -166
- package/models/supabase/Composer/Composition/types.d.ts +0 -96
- package/models/supabase/Composer/Composition/types.js +0 -32
- package/models/supabase/Composer/Notification/index.d.ts +0 -4
- package/models/supabase/Composer/Notification/index.js +0 -9
- package/models/supabase/Composer/Notification/types.d.ts +0 -39
- package/models/supabase/Composer/Notification/types.js +0 -27
- package/models/supabase/Composer/Payout/index.d.ts +0 -4
- package/models/supabase/Composer/Payout/index.js +0 -9
- package/models/supabase/Composer/Payout/status.d.ts +0 -1
- package/models/supabase/Composer/Payout/types.d.ts +0 -5
- package/models/supabase/Composer/PerformanceAttendance/types.d.ts +0 -4
- package/models/supabase/Composer/index.d.ts +0 -78
- package/models/supabase/Composer/index.js +0 -105
- package/models/supabase/Composer/types.d.ts +0 -6
- package/models/supabase/EventHistory/index.d.ts +0 -22
- package/models/supabase/EventHistory/index.js +0 -37
- package/models/supabase/EventHistory/types.d.ts +0 -36
- package/models/supabase/EventHistory/types.js +0 -34
- package/models/supabase/GroupHistory/index.d.ts +0 -21
- package/models/supabase/GroupHistory/index.js +0 -34
- package/models/supabase/GroupHistory/types.d.ts +0 -27
- package/models/supabase/GroupHistory/types.js +0 -25
- package/models/supabase/Model/index.d.ts +0 -10
- package/models/supabase/Model/index.js +0 -21
- package/models/supabase/OfferHistory/index.d.ts +0 -22
- package/models/supabase/OfferHistory/index.js +0 -37
- package/models/supabase/OfferHistory/types.d.ts +0 -18
- package/models/supabase/OfferHistory/types.js +0 -16
- package/models/supabase/Repertoire/index.d.ts +0 -16
- package/models/supabase/Repertoire/index.js +0 -43
- package/models/supabase/Repertoire/types.d.ts +0 -6
- package/models/supabase/RepertoireHistory/index.d.ts +0 -22
- package/models/supabase/RepertoireHistory/index.js +0 -37
- package/models/supabase/RepertoireHistory/types.d.ts +0 -21
- package/models/supabase/RepertoireHistory/types.js +0 -19
- package/models/supabase/User/Group/index.d.ts +0 -11
- package/models/supabase/User/Group/index.js +0 -30
- package/models/supabase/User/Group/types.d.ts +0 -6
- package/models/supabase/User/index.d.ts +0 -13
- package/models/supabase/User/index.js +0 -37
- package/models/supabase/User/types.d.ts +0 -6
- package/types/supabase/catalog.d.ts +0 -46
- package/types/supabase/catalog.js +0 -2
- package/types/supabase/catalog.ts +0 -67
- package/types/supabase/composerMetrics.d.ts +0 -27
- package/types/supabase/composerMetrics.js +0 -2
- package/types/supabase/composerMetrics.ts +0 -26
- package/types/supabase/overwrites/tables/comm/model.d.ts +0 -4
- package/types/supabase/overwrites/tables/comm/model.js +0 -2
- package/types/supabase/overwrites/tables/comm/model.ts +0 -4
- package/types/supabase/overwrites/tables/comm_history/index.d.ts +0 -7
- package/types/supabase/overwrites/tables/comm_history/index.js +0 -2
- package/types/supabase/overwrites/tables/comm_history/index.ts +0 -9
- package/types/supabase/overwrites/tables/comm_history/model.d.ts +0 -10
- package/types/supabase/overwrites/tables/comm_history/model.js +0 -2
- package/types/supabase/overwrites/tables/comm_history/model.ts +0 -13
- package/types/supabase/overwrites/tables/common/index.js +0 -2
- package/types/supabase/overwrites/tables/composer/index.d.ts +0 -9
- package/types/supabase/overwrites/tables/composer/index.js +0 -2
- package/types/supabase/overwrites/tables/composer/index.ts +0 -10
- package/types/supabase/overwrites/tables/composer/model.d.ts +0 -12
- package/types/supabase/overwrites/tables/composer/model.js +0 -2
- package/types/supabase/overwrites/tables/composer/model.ts +0 -15
- package/types/supabase/overwrites/tables/composer/publicModel.d.ts +0 -11
- package/types/supabase/overwrites/tables/composer/publicModel.js +0 -2
- package/types/supabase/overwrites/tables/composer/publicModel.ts +0 -15
- package/types/supabase/overwrites/tables/composerComposition/index.d.ts +0 -18
- package/types/supabase/overwrites/tables/composerComposition/index.js +0 -2
- package/types/supabase/overwrites/tables/composerComposition/index.ts +0 -24
- package/types/supabase/overwrites/tables/composerComposition/model.d.ts +0 -9
- package/types/supabase/overwrites/tables/composerComposition/model.js +0 -2
- package/types/supabase/overwrites/tables/composerComposition/model.ts +0 -26
- package/types/supabase/overwrites/tables/composerComposition/publicModel.d.ts +0 -9
- package/types/supabase/overwrites/tables/composerComposition/publicModel.js +0 -2
- package/types/supabase/overwrites/tables/composerComposition/publicModel.ts +0 -37
- package/types/supabase/overwrites/tables/composerNotification/index.d.ts +0 -19
- package/types/supabase/overwrites/tables/composerNotification/index.js +0 -2
- package/types/supabase/overwrites/tables/composerNotification/index.ts +0 -25
- package/types/supabase/overwrites/tables/composerOwnedTransaction/model.d.ts +0 -2
- package/types/supabase/overwrites/tables/composerOwnedTransaction/model.js +0 -2
- package/types/supabase/overwrites/tables/composerOwnedTransaction/model.ts +0 -3
- package/types/supabase/overwrites/tables/composerPayout/index.d.ts +0 -7
- package/types/supabase/overwrites/tables/composerPayout/index.js +0 -2
- package/types/supabase/overwrites/tables/composerPayout/index.ts +0 -8
- package/types/supabase/overwrites/tables/compositionAcquisition/index.d.ts +0 -4
- package/types/supabase/overwrites/tables/compositionAcquisition/index.js +0 -2
- package/types/supabase/overwrites/tables/compositionAcquisition/index.ts +0 -8
- package/types/supabase/overwrites/tables/compositionAcquisition/model.d.ts +0 -6
- package/types/supabase/overwrites/tables/compositionAcquisition/model.js +0 -2
- package/types/supabase/overwrites/tables/compositionAcquisition/model.ts +0 -11
- package/types/supabase/overwrites/tables/compositionFavorite/index.d.ts +0 -1
- package/types/supabase/overwrites/tables/compositionFavorite/index.js +0 -2
- package/types/supabase/overwrites/tables/compositionFavorite/index.ts +0 -2
- package/types/supabase/overwrites/tables/compositionFavorite/model.d.ts +0 -1
- package/types/supabase/overwrites/tables/compositionFavorite/model.js +0 -2
- package/types/supabase/overwrites/tables/compositionFavorite/model.ts +0 -1
- package/types/supabase/overwrites/tables/compositionView/index.d.ts +0 -1
- package/types/supabase/overwrites/tables/compositionView/index.js +0 -2
- package/types/supabase/overwrites/tables/compositionView/index.ts +0 -2
- package/types/supabase/overwrites/tables/compositionView/model.d.ts +0 -1
- package/types/supabase/overwrites/tables/compositionView/model.js +0 -2
- package/types/supabase/overwrites/tables/compositionView/model.ts +0 -1
- package/types/supabase/overwrites/tables/currencyExchangeRate/index.d.ts +0 -16
- package/types/supabase/overwrites/tables/currencyExchangeRate/index.js +0 -2
- package/types/supabase/overwrites/tables/currencyExchangeRate/index.ts +0 -18
- package/types/supabase/overwrites/tables/event/index.js +0 -2
- package/types/supabase/overwrites/tables/event_history/index.d.ts +0 -7
- package/types/supabase/overwrites/tables/event_history/index.js +0 -2
- package/types/supabase/overwrites/tables/event_history/index.ts +0 -9
- package/types/supabase/overwrites/tables/event_history/model.d.ts +0 -10
- package/types/supabase/overwrites/tables/event_history/model.js +0 -2
- package/types/supabase/overwrites/tables/event_history/model.ts +0 -13
- package/types/supabase/overwrites/tables/group/index.js +0 -2
- package/types/supabase/overwrites/tables/group_history/index.d.ts +0 -7
- package/types/supabase/overwrites/tables/group_history/index.js +0 -2
- package/types/supabase/overwrites/tables/group_history/index.ts +0 -9
- package/types/supabase/overwrites/tables/group_history/model.d.ts +0 -10
- package/types/supabase/overwrites/tables/group_history/model.js +0 -2
- package/types/supabase/overwrites/tables/group_history/model.ts +0 -13
- package/types/supabase/overwrites/tables/offer/index.js +0 -2
- package/types/supabase/overwrites/tables/offer_history/index.d.ts +0 -7
- package/types/supabase/overwrites/tables/offer_history/index.js +0 -2
- package/types/supabase/overwrites/tables/offer_history/index.ts +0 -9
- package/types/supabase/overwrites/tables/offer_history/model.d.ts +0 -10
- package/types/supabase/overwrites/tables/offer_history/model.js +0 -2
- package/types/supabase/overwrites/tables/offer_history/model.ts +0 -13
- package/types/supabase/overwrites/tables/repertoire/model.d.ts +0 -7
- package/types/supabase/overwrites/tables/repertoire/model.js +0 -2
- package/types/supabase/overwrites/tables/repertoire/model.ts +0 -7
- package/types/supabase/overwrites/tables/repertoire_history/index.d.ts +0 -7
- package/types/supabase/overwrites/tables/repertoire_history/index.js +0 -2
- package/types/supabase/overwrites/tables/repertoire_history/index.ts +0 -9
- package/types/supabase/overwrites/tables/repertoire_history/model.d.ts +0 -10
- package/types/supabase/overwrites/tables/repertoire_history/model.js +0 -2
- package/types/supabase/overwrites/tables/repertoire_history/model.ts +0 -13
- package/types/supabase/overwrites/tables/user/index.d.ts +0 -11
- package/types/supabase/overwrites/tables/user/index.js +0 -2
- package/types/supabase/overwrites/tables/user/index.ts +0 -13
- /package/functions/{composer.js → eventoPayout.js} +0 -0
- /package/functions/{composerComposition.js → groupModule.js} +0 -0
- /package/functions/{composerNotification.js → groupPayment.js} +0 -0
- /package/functions/{composerPayout.js → groupPayoutRule.js} +0 -0
- /package/{models/supabase/Comm/types.js → types/supabase/overwrites/comm.js} +0 -0
- /package/{models/supabase/Composer/Composition/Acquisition/types.js → types/supabase/overwrites/comm_history.js} +0 -0
- /package/{models/supabase/Composer/Composition/Favorite/types.js → types/supabase/overwrites/event.js} +0 -0
- /package/{models/supabase/Composer/Composition/View/types.js → types/supabase/overwrites/event_history.js} +0 -0
- /package/{models/supabase/Composer/Payout/status.js → types/supabase/overwrites/group.js} +0 -0
- /package/{models/supabase/Composer/Payout/types.js → types/supabase/overwrites/group_history.js} +0 -0
- /package/{models/supabase/Composer/PerformanceAttendance/types.js → types/supabase/overwrites/offer.js} +0 -0
- /package/{models/supabase/Composer/types.js → types/supabase/overwrites/offer_history.js} +0 -0
- /package/{models/supabase/Repertoire/types.js → types/supabase/overwrites/repertoire.js} +0 -0
- /package/{models/supabase/User/Group/types.js → types/supabase/overwrites/repertoire_history.js} +0 -0
- /package/types/supabase/overwrites/{tables/common/index.d.ts → utils.d.ts} +0 -0
- /package/{models/supabase/User/types.js → types/supabase/overwrites/utils.js} +0 -0
- /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
|
}
|
|
@@ -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
|
|
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
|
|
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
|
|
22
|
+
})(EventPlayerReason = exports.EventPlayerReason || (exports.EventPlayerReason = {}));
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { Timestamp } from '@google-cloud/firestore';
|
|
2
|
-
import {
|
|
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
|
}
|
package/models/Evento/index.d.ts
CHANGED
|
@@ -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
|
-
|
|
34
|
-
|
|
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 {};
|
package/models/Evento/index.js
CHANGED
|
@@ -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
|
-
|
|
79
|
-
const link =
|
|
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
|
-
|
|
86
|
-
const link =
|
|
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;
|
package/models/Evento/types.d.ts
CHANGED
|
@@ -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 {
|
|
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
|
+
}
|
package/models/Evento/types.js
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
79
|
-
return (0,
|
|
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
|
|
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;
|