@glissandoo/lib 1.125.0 → 1.127.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/apiKey.d.ts +23 -0
- package/functions/apiKey.js +2 -0
- package/functions/event.d.ts +13 -0
- package/functions/group.d.ts +1 -0
- package/functions/groupPlayer.d.ts +6 -0
- package/functions/index.d.ts +6 -0
- package/functions/index.js +6 -0
- package/functions/regions.js +6 -0
- package/functions/user.d.ts +1 -0
- package/helpers/appScenes.d.ts +1 -0
- package/helpers/appScenes.js +1 -0
- package/helpers/errors.d.ts +5 -0
- package/helpers/errors.js +5 -0
- package/helpers/plans.d.ts +2 -0
- package/helpers/plans.js +5 -1
- package/lang/ca.json +2 -0
- package/lang/de.json +2 -0
- package/lang/en.json +2 -0
- package/lang/es.json +2 -0
- package/lang/eu.json +2 -0
- package/lang/fr.json +2 -0
- package/lang/gl.json +2 -0
- package/lang/it.json +2 -0
- package/lang/nl.json +2 -0
- package/lang/pt.json +2 -0
- package/models/Evento/Player/basic.d.ts +0 -1
- package/models/Evento/Player/basic.js +0 -3
- package/models/Evento/Player/index.d.ts +0 -1
- package/models/Evento/Player/index.js +0 -3
- package/models/Evento/index.d.ts +3 -0
- package/models/Evento/index.js +10 -0
- package/models/Evento/types.d.ts +2 -0
- package/models/Evento/types.js +1 -0
- package/models/Group/Player/index.d.ts +2 -0
- package/models/Group/Player/index.js +6 -0
- package/models/Group/index.d.ts +16 -2
- package/models/Group/index.js +20 -3
- package/models/Group/types.d.ts +26 -4
- package/models/Group/types.js +9 -1
- package/models/Notification/types.d.ts +1 -0
- package/models/Notification/types.js +1 -0
- package/models/Partnership/index.d.ts +1 -1
- package/models/Partnership/types.d.ts +17 -3
- package/package.json +1 -1
- package/types/supabase/generated.d.ts +17 -0
- package/types/supabase/generated.ts +17 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export declare namespace ApiKeyFbFunctionsTypes {
|
|
2
|
+
interface ApiKeySummary {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
createdAt: string;
|
|
6
|
+
}
|
|
7
|
+
interface CreateParams {
|
|
8
|
+
name: string;
|
|
9
|
+
}
|
|
10
|
+
interface CreateResult extends ApiKeySummary {
|
|
11
|
+
key: string;
|
|
12
|
+
}
|
|
13
|
+
type ListParams = void;
|
|
14
|
+
interface ListResult {
|
|
15
|
+
keys: ApiKeySummary[];
|
|
16
|
+
}
|
|
17
|
+
interface RevokeParams {
|
|
18
|
+
id: string;
|
|
19
|
+
}
|
|
20
|
+
interface RevokeResult {
|
|
21
|
+
id: string;
|
|
22
|
+
}
|
|
23
|
+
}
|
package/functions/event.d.ts
CHANGED
|
@@ -10,6 +10,19 @@ export declare namespace EventoFbFunctionsTypes {
|
|
|
10
10
|
Future = "future",
|
|
11
11
|
All = "all"
|
|
12
12
|
}
|
|
13
|
+
export interface RefreshGuestInviteCodeParams {
|
|
14
|
+
eventId: string;
|
|
15
|
+
}
|
|
16
|
+
export interface RefreshGuestInviteCodeResult {
|
|
17
|
+
code: string;
|
|
18
|
+
}
|
|
19
|
+
export interface VerifyGuestInviteCodeParams {
|
|
20
|
+
eventId: string;
|
|
21
|
+
code: string;
|
|
22
|
+
}
|
|
23
|
+
export interface VerifyGuestInviteCodeResult {
|
|
24
|
+
alreadyJoined: boolean;
|
|
25
|
+
}
|
|
13
26
|
export interface PublishParams {
|
|
14
27
|
type: EventType;
|
|
15
28
|
displayName: string | null;
|
package/functions/group.d.ts
CHANGED
|
@@ -69,6 +69,7 @@ export declare namespace GroupFbFunctionsTypes {
|
|
|
69
69
|
interface GetByIdResult extends GroupBasicData {
|
|
70
70
|
id: string;
|
|
71
71
|
instruments: GroupData['instruments'];
|
|
72
|
+
customFields: GroupData['customFields'];
|
|
72
73
|
}
|
|
73
74
|
interface GetByInvitationLinkParams {
|
|
74
75
|
invitationLink: string;
|
|
@@ -36,6 +36,7 @@ export declare namespace GroupPlayerFbFunctionsTypes {
|
|
|
36
36
|
groupId: string;
|
|
37
37
|
mainInstrument: InstrumentId;
|
|
38
38
|
instruments: InstrumentId[];
|
|
39
|
+
customFields?: Record<string, string | number | boolean | null>;
|
|
39
40
|
}
|
|
40
41
|
type JoinGroupResult = void;
|
|
41
42
|
interface LeaveParams {
|
|
@@ -47,6 +48,11 @@ export declare namespace GroupPlayerFbFunctionsTypes {
|
|
|
47
48
|
userIds: string[];
|
|
48
49
|
}
|
|
49
50
|
type RemoveResult = void;
|
|
51
|
+
interface PromoteGuestParams {
|
|
52
|
+
groupId: string;
|
|
53
|
+
userId: string;
|
|
54
|
+
}
|
|
55
|
+
type PromoteGuestResult = void;
|
|
50
56
|
interface UpdateInstrumentsParams {
|
|
51
57
|
playerId?: string;
|
|
52
58
|
groupId: string;
|
package/functions/index.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
export declare enum FbFunctionName {
|
|
2
2
|
PublicApi = "api",
|
|
3
|
+
ApiKeyCreate = "apiKey-create",
|
|
4
|
+
ApiKeyList = "apiKey-list",
|
|
5
|
+
ApiKeyRevoke = "apiKey-revoke",
|
|
3
6
|
AuthGetToken = "authGetToken",
|
|
4
7
|
AuthLogin = "authLogin",
|
|
5
8
|
AuthLogout = "authLogout",
|
|
@@ -59,6 +62,8 @@ export declare enum FbFunctionName {
|
|
|
59
62
|
EventoMyPayments = "event-myPayments",
|
|
60
63
|
EventPublish = "event-publish",
|
|
61
64
|
EventRemove = "event-remove",
|
|
65
|
+
EventRefreshGuestInviteCode = "event-refreshGuestInviteCode",
|
|
66
|
+
EventVerifyGuestInviteCode = "event-verifyGuestInviteCode",
|
|
62
67
|
EventRepertoryDownload = "eventRepertory-download",
|
|
63
68
|
EventRepertoryDownloadPdf = "eventRepertory-downloadPdf",
|
|
64
69
|
EventRepertoryEdit = "eventRepertory-edit",
|
|
@@ -103,6 +108,7 @@ export declare enum FbFunctionName {
|
|
|
103
108
|
GroupPlayerLinkFakeAccount = "groupPlayer-linkFakeAccount",
|
|
104
109
|
GroupPlayerOnUpdate = "groupPlayer-onUpdate",
|
|
105
110
|
GroupPlayerRemove = "groupPlayer-remove",
|
|
111
|
+
GroupPlayerPromoteGuest = "groupPlayer-promoteGuest",
|
|
106
112
|
GroupPlayerEditFakeInfo = "groupPlayer-editFakeInfo",
|
|
107
113
|
GroupPlayerSetPermissions = "groupPlayer-updatePermis",
|
|
108
114
|
GroupPlayerUpdateInstruments = "groupPlayer-updateInstruments",
|
package/functions/index.js
CHANGED
|
@@ -4,6 +4,9 @@ exports.FbFunctionName = void 0;
|
|
|
4
4
|
var FbFunctionName;
|
|
5
5
|
(function (FbFunctionName) {
|
|
6
6
|
FbFunctionName["PublicApi"] = "api";
|
|
7
|
+
FbFunctionName["ApiKeyCreate"] = "apiKey-create";
|
|
8
|
+
FbFunctionName["ApiKeyList"] = "apiKey-list";
|
|
9
|
+
FbFunctionName["ApiKeyRevoke"] = "apiKey-revoke";
|
|
7
10
|
FbFunctionName["AuthGetToken"] = "authGetToken";
|
|
8
11
|
FbFunctionName["AuthLogin"] = "authLogin";
|
|
9
12
|
FbFunctionName["AuthLogout"] = "authLogout";
|
|
@@ -63,6 +66,8 @@ var FbFunctionName;
|
|
|
63
66
|
FbFunctionName["EventoMyPayments"] = "event-myPayments";
|
|
64
67
|
FbFunctionName["EventPublish"] = "event-publish";
|
|
65
68
|
FbFunctionName["EventRemove"] = "event-remove";
|
|
69
|
+
FbFunctionName["EventRefreshGuestInviteCode"] = "event-refreshGuestInviteCode";
|
|
70
|
+
FbFunctionName["EventVerifyGuestInviteCode"] = "event-verifyGuestInviteCode";
|
|
66
71
|
FbFunctionName["EventRepertoryDownload"] = "eventRepertory-download";
|
|
67
72
|
FbFunctionName["EventRepertoryDownloadPdf"] = "eventRepertory-downloadPdf";
|
|
68
73
|
FbFunctionName["EventRepertoryEdit"] = "eventRepertory-edit";
|
|
@@ -107,6 +112,7 @@ var FbFunctionName;
|
|
|
107
112
|
FbFunctionName["GroupPlayerLinkFakeAccount"] = "groupPlayer-linkFakeAccount";
|
|
108
113
|
FbFunctionName["GroupPlayerOnUpdate"] = "groupPlayer-onUpdate";
|
|
109
114
|
FbFunctionName["GroupPlayerRemove"] = "groupPlayer-remove";
|
|
115
|
+
FbFunctionName["GroupPlayerPromoteGuest"] = "groupPlayer-promoteGuest";
|
|
110
116
|
FbFunctionName["GroupPlayerEditFakeInfo"] = "groupPlayer-editFakeInfo";
|
|
111
117
|
FbFunctionName["GroupPlayerSetPermissions"] = "groupPlayer-updatePermis";
|
|
112
118
|
FbFunctionName["GroupPlayerUpdateInstruments"] = "groupPlayer-updateInstruments";
|
package/functions/regions.js
CHANGED
|
@@ -11,6 +11,9 @@ var GCloudRegions;
|
|
|
11
11
|
const defaultRegion = GCloudRegions.UsCentral1;
|
|
12
12
|
const regionByFunctions = {
|
|
13
13
|
[index_1.FbFunctionName.PublicApi]: GCloudRegions.EuropeWest6,
|
|
14
|
+
[index_1.FbFunctionName.ApiKeyCreate]: GCloudRegions.EuropeWest6,
|
|
15
|
+
[index_1.FbFunctionName.ApiKeyList]: GCloudRegions.EuropeWest6,
|
|
16
|
+
[index_1.FbFunctionName.ApiKeyRevoke]: GCloudRegions.EuropeWest6,
|
|
14
17
|
[index_1.FbFunctionName.AuthGetToken]: GCloudRegions.EuropeWest6,
|
|
15
18
|
[index_1.FbFunctionName.AuthLogin]: GCloudRegions.EuropeWest6,
|
|
16
19
|
[index_1.FbFunctionName.AuthLogout]: GCloudRegions.EuropeWest6,
|
|
@@ -70,6 +73,8 @@ const regionByFunctions = {
|
|
|
70
73
|
[index_1.FbFunctionName.EventoMyPayments]: GCloudRegions.EuropeWest6,
|
|
71
74
|
[index_1.FbFunctionName.EventPublish]: GCloudRegions.UsCentral1,
|
|
72
75
|
[index_1.FbFunctionName.EventRemove]: GCloudRegions.UsCentral1,
|
|
76
|
+
[index_1.FbFunctionName.EventRefreshGuestInviteCode]: GCloudRegions.EuropeWest6,
|
|
77
|
+
[index_1.FbFunctionName.EventVerifyGuestInviteCode]: GCloudRegions.EuropeWest6,
|
|
73
78
|
[index_1.FbFunctionName.EventRepertoryDownload]: GCloudRegions.EuropeWest6,
|
|
74
79
|
[index_1.FbFunctionName.EventRepertoryDownloadPdf]: GCloudRegions.EuropeWest6,
|
|
75
80
|
[index_1.FbFunctionName.EventRepertoryEdit]: GCloudRegions.UsCentral1,
|
|
@@ -115,6 +120,7 @@ const regionByFunctions = {
|
|
|
115
120
|
[index_1.FbFunctionName.GroupPlayerLeave]: GCloudRegions.UsCentral1,
|
|
116
121
|
[index_1.FbFunctionName.GroupPlayerOnUpdate]: GCloudRegions.UsCentral1,
|
|
117
122
|
[index_1.FbFunctionName.GroupPlayerRemove]: GCloudRegions.UsCentral1,
|
|
123
|
+
[index_1.FbFunctionName.GroupPlayerPromoteGuest]: GCloudRegions.EuropeWest6,
|
|
118
124
|
[index_1.FbFunctionName.GroupPlayerSetPermissions]: GCloudRegions.EuropeWest6,
|
|
119
125
|
[index_1.FbFunctionName.GroupPlayerUpdateInstruments]: GCloudRegions.UsCentral1,
|
|
120
126
|
[index_1.FbFunctionName.GroupPaymentCreate]: GCloudRegions.EuropeWest6,
|
package/functions/user.d.ts
CHANGED
package/helpers/appScenes.d.ts
CHANGED
|
@@ -78,6 +78,7 @@ export declare enum AppScenes {
|
|
|
78
78
|
Join = "Join",
|
|
79
79
|
JoinImageProfile = "AddProfileImage",
|
|
80
80
|
JoinInstrument = "SelectGroupInstrument",
|
|
81
|
+
JoinCompleteProfile = "JoinCompleteProfile",
|
|
81
82
|
JoinView = "JoinView",
|
|
82
83
|
Login = "Login",
|
|
83
84
|
GroupPaymentDetail = "GroupPaymentDetail",
|
package/helpers/appScenes.js
CHANGED
|
@@ -82,6 +82,7 @@ var AppScenes;
|
|
|
82
82
|
AppScenes["Join"] = "Join";
|
|
83
83
|
AppScenes["JoinImageProfile"] = "AddProfileImage";
|
|
84
84
|
AppScenes["JoinInstrument"] = "SelectGroupInstrument";
|
|
85
|
+
AppScenes["JoinCompleteProfile"] = "JoinCompleteProfile";
|
|
85
86
|
AppScenes["JoinView"] = "JoinView";
|
|
86
87
|
AppScenes["Login"] = "Login";
|
|
87
88
|
AppScenes["GroupPaymentDetail"] = "GroupPaymentDetail";
|
package/helpers/errors.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export declare enum HttpsErrorMessages {
|
|
|
8
8
|
InvalidGroupPartnership = "error.group.partnership",
|
|
9
9
|
InvalidAdminGroup = "error.group.noAdmin",
|
|
10
10
|
InvalidPermissionsGroup = "error.group.noPermissions",
|
|
11
|
+
GuestCannotBeAdmin = "error.group.guestCannotBeAdmin",
|
|
11
12
|
InvalidAdminAction = "error.federation.admin",
|
|
12
13
|
InvalidLinkInvitation = "groupPlayer.join.linkNoValid",
|
|
13
14
|
InvalidJoinPlayer = "groupPlayer.join.isPlayer",
|
|
@@ -20,6 +21,10 @@ export declare enum HttpsErrorMessages {
|
|
|
20
21
|
InvalidEventPlayer = "error.event.noPlayer",
|
|
21
22
|
InvalidMaxNumberEvents = "error.event.maxEventsPublish",
|
|
22
23
|
InvalidMaxCapacityEvent = "error.event.capacityCompleted",
|
|
24
|
+
EventInvitationLinkNotActive = "error.event.invitationLinkNotActive",
|
|
25
|
+
EventNotAcceptingJoins = "error.event.notAcceptingJoins",
|
|
26
|
+
EventGuestsLimitReached = "error.event.guestsLimitReached",
|
|
27
|
+
EventInvitationCodeInvalid = "error.event.invitationCodeInvalid",
|
|
23
28
|
InvalidScoreNotByInstrumentsEventRepertory = "error.eventRepertory.scoreNotByInstruments",
|
|
24
29
|
InvalidUser = "error.user.noValid",
|
|
25
30
|
InvalidSuperAdmin = "error.superadmin.noValid",
|
package/helpers/errors.js
CHANGED
|
@@ -9,6 +9,7 @@ var HttpsErrorMessages;
|
|
|
9
9
|
HttpsErrorMessages["InvalidGroupPartnership"] = "error.group.partnership";
|
|
10
10
|
HttpsErrorMessages["InvalidAdminGroup"] = "error.group.noAdmin";
|
|
11
11
|
HttpsErrorMessages["InvalidPermissionsGroup"] = "error.group.noPermissions";
|
|
12
|
+
HttpsErrorMessages["GuestCannotBeAdmin"] = "error.group.guestCannotBeAdmin";
|
|
12
13
|
HttpsErrorMessages["InvalidAdminAction"] = "error.federation.admin";
|
|
13
14
|
HttpsErrorMessages["InvalidLinkInvitation"] = "groupPlayer.join.linkNoValid";
|
|
14
15
|
HttpsErrorMessages["InvalidJoinPlayer"] = "groupPlayer.join.isPlayer";
|
|
@@ -21,6 +22,10 @@ var HttpsErrorMessages;
|
|
|
21
22
|
HttpsErrorMessages["InvalidEventPlayer"] = "error.event.noPlayer";
|
|
22
23
|
HttpsErrorMessages["InvalidMaxNumberEvents"] = "error.event.maxEventsPublish";
|
|
23
24
|
HttpsErrorMessages["InvalidMaxCapacityEvent"] = "error.event.capacityCompleted";
|
|
25
|
+
HttpsErrorMessages["EventInvitationLinkNotActive"] = "error.event.invitationLinkNotActive";
|
|
26
|
+
HttpsErrorMessages["EventNotAcceptingJoins"] = "error.event.notAcceptingJoins";
|
|
27
|
+
HttpsErrorMessages["EventGuestsLimitReached"] = "error.event.guestsLimitReached";
|
|
28
|
+
HttpsErrorMessages["EventInvitationCodeInvalid"] = "error.event.invitationCodeInvalid";
|
|
24
29
|
HttpsErrorMessages["InvalidScoreNotByInstrumentsEventRepertory"] = "error.eventRepertory.scoreNotByInstruments";
|
|
25
30
|
HttpsErrorMessages["InvalidUser"] = "error.user.noValid";
|
|
26
31
|
HttpsErrorMessages["InvalidSuperAdmin"] = "error.superadmin.noValid";
|
package/helpers/plans.d.ts
CHANGED
|
@@ -11,6 +11,8 @@ export declare enum PlanPeriod {
|
|
|
11
11
|
Monthly = "monthly"
|
|
12
12
|
}
|
|
13
13
|
export declare const membersPerPlan: Record<PlansGroup, number>;
|
|
14
|
+
export declare const MAX_GUESTS_PER_EVENT = 10;
|
|
15
|
+
export declare const GUEST_INVITE_CODE_LENGTH = 6;
|
|
14
16
|
export declare const pricesPerPlan: Record<PlanPeriod, Record<PlansGroup, number>>;
|
|
15
17
|
export declare const planGroupTiers: {
|
|
16
18
|
min: number;
|
package/helpers/plans.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.planGroupTiers = exports.pricesPerPlan = exports.membersPerPlan = exports.PlanPeriod = exports.PlansGroup = void 0;
|
|
3
|
+
exports.planGroupTiers = exports.pricesPerPlan = exports.GUEST_INVITE_CODE_LENGTH = exports.MAX_GUESTS_PER_EVENT = exports.membersPerPlan = exports.PlanPeriod = exports.PlansGroup = void 0;
|
|
4
4
|
var PlansGroup;
|
|
5
5
|
(function (PlansGroup) {
|
|
6
6
|
PlansGroup["Piano"] = "piano";
|
|
@@ -23,6 +23,10 @@ exports.membersPerPlan = {
|
|
|
23
23
|
[PlansGroup.Fortissimo]: 100,
|
|
24
24
|
[PlansGroup.Tutti]: 1000,
|
|
25
25
|
};
|
|
26
|
+
// Max reinforcements (guests) allowed per event, independent of the plan tier.
|
|
27
|
+
exports.MAX_GUESTS_PER_EVENT = 10;
|
|
28
|
+
// Number of digits of the event guest invitation code.
|
|
29
|
+
exports.GUEST_INVITE_CODE_LENGTH = 6;
|
|
26
30
|
exports.pricesPerPlan = {
|
|
27
31
|
[PlanPeriod.Monthly]: {
|
|
28
32
|
[PlansGroup.Piano]: 0,
|
package/lang/ca.json
CHANGED
|
@@ -27,6 +27,8 @@
|
|
|
27
27
|
"communication.newComment.text": "{string:user.0.displayName} ha deixat un comentari en una publicació",
|
|
28
28
|
"communication.newComment.title": "💬 Nou comentari",
|
|
29
29
|
"event": "Esdeveniment",
|
|
30
|
+
"event.guest.joined.text": "{string:user.0.displayName} s'ha unit com a reforç a {string:event.0.displayName}",
|
|
31
|
+
"event.guest.joined.title": "🎺 Nou reforç",
|
|
30
32
|
"group.delete.text": "El grup {string:group.0.displayName} ha sigut eliminat",
|
|
31
33
|
"group.delete.title": "Grup eliminat",
|
|
32
34
|
"group.onboarding.attendance.text": "Qui està disponible per a l'assaig? 😍 Descobreix-ho amb llistes senzilles d'assistència 🙋♀️",
|
package/lang/de.json
CHANGED
|
@@ -27,6 +27,8 @@
|
|
|
27
27
|
"communication.newComment.text": "{string:user.0.displayName} hat einen Kommentar zu einem Beitrag hinterlassen",
|
|
28
28
|
"communication.newComment.title": "💬 Neuer Kommentar",
|
|
29
29
|
"event": "Veranstaltung",
|
|
30
|
+
"event.guest.joined.text": "{string:user.0.displayName} ist {string:event.0.displayName} als Verstärkung beigetreten",
|
|
31
|
+
"event.guest.joined.title": "🎺 Neue Verstärkung",
|
|
30
32
|
"group.delete.text": "Die Gruppe {string:group.0.displayName} wurde gelöscht",
|
|
31
33
|
"group.delete.title": "Gruppe gelöscht",
|
|
32
34
|
"group.onboarding.attendance.text": "Wer ist bei der Probe verfügbar? 😍 Erfahre es über einfache Anwesenheitslisten 🙋♀️",
|
package/lang/en.json
CHANGED
|
@@ -27,6 +27,8 @@
|
|
|
27
27
|
"communication.newComment.text": "{string:user.0.displayName} left a comment on a post",
|
|
28
28
|
"communication.newComment.title": "💬 New comment",
|
|
29
29
|
"event": "Event",
|
|
30
|
+
"event.guest.joined.text": "{string:user.0.displayName} has joined {string:event.0.displayName} as a reinforcement",
|
|
31
|
+
"event.guest.joined.title": "🎺 New reinforcement",
|
|
30
32
|
"group.delete.text": "The group {string:group.0.displayName} has been deleted",
|
|
31
33
|
"group.delete.title": "Group deleted",
|
|
32
34
|
"group.onboarding.attendance.text": "Who's available for rehearsal? 😍 Find out through simple attendance lists 🙋♀️",
|
package/lang/es.json
CHANGED
|
@@ -27,6 +27,8 @@
|
|
|
27
27
|
"communication.newComment.text": "{string:user.0.displayName} ha dejado un comentario en una publicación",
|
|
28
28
|
"communication.newComment.title": "💬 Nuevo comentario",
|
|
29
29
|
"event": "Evento",
|
|
30
|
+
"event.guest.joined.text": "{string:user.0.displayName} se ha unido como refuerzo a {string:event.0.displayName}",
|
|
31
|
+
"event.guest.joined.title": "🎺 Nuevo refuerzo",
|
|
30
32
|
"group.delete.text": "El grupo {string:group.0.displayName} ha sido eliminado",
|
|
31
33
|
"group.delete.title": "Grupo eliminado",
|
|
32
34
|
"group.onboarding.attendance.text": "¿Quién está disponible para el ensayo? 😍 Descúbrelo a través de listas sencillas de asistencia 🙋♀️",
|
package/lang/eu.json
CHANGED
|
@@ -27,6 +27,8 @@
|
|
|
27
27
|
"communication.newComment.text": "{string:user.0.displayName} erabiltzaileak iruzkin bat utzi du argitalpen batean",
|
|
28
28
|
"communication.newComment.title": "💬 Iruzkin berria",
|
|
29
29
|
"event": "Ekitaldia",
|
|
30
|
+
"event.guest.joined.text": "{string:user.0.displayName} indargarri gisa batu da {string:event.0.displayName} ekitaldira",
|
|
31
|
+
"event.guest.joined.title": "🎺 Indargarri berria",
|
|
30
32
|
"group.delete.text": "{string:group.0.displayName} taldea ezabatu da",
|
|
31
33
|
"group.delete.title": "Taldea ezabatuta",
|
|
32
34
|
"group.onboarding.attendance.text": "Nork parte har dezake entseguan? 😍 Ezagutu erantzun sinpleekin 🙋♀️",
|
package/lang/fr.json
CHANGED
|
@@ -27,6 +27,8 @@
|
|
|
27
27
|
"communication.newComment.text": "{string:user.0.displayName} a laissé un commentaire sur une publication",
|
|
28
28
|
"communication.newComment.title": "💬 Nouveau commentaire",
|
|
29
29
|
"event": "Événement",
|
|
30
|
+
"event.guest.joined.text": "{string:user.0.displayName} a rejoint {string:event.0.displayName} en renfort",
|
|
31
|
+
"event.guest.joined.title": "🎺 Nouveau renfort",
|
|
30
32
|
"group.delete.text": "Le groupe {string:group.0.displayName} a été supprimé",
|
|
31
33
|
"group.delete.title": "Groupe supprimé",
|
|
32
34
|
"group.onboarding.attendance.text": "Qui est disponible pour la répétition ? 😍 Découvrez-le grâce à des listes de présence simples 🙋♀️",
|
package/lang/gl.json
CHANGED
|
@@ -27,6 +27,8 @@
|
|
|
27
27
|
"communication.newComment.text": "{string:user.0.displayName} deixou un comentario nunha publicación",
|
|
28
28
|
"communication.newComment.title": "💬 Novo comentario",
|
|
29
29
|
"event": "Evento",
|
|
30
|
+
"event.guest.joined.text": "{string:user.0.displayName} uniuse como reforzo a {string:event.0.displayName}",
|
|
31
|
+
"event.guest.joined.title": "🎺 Novo reforzo",
|
|
30
32
|
"group.delete.text": "O grupo {string:group.0.displayName} foi eliminado",
|
|
31
33
|
"group.delete.title": "Grupo eliminado",
|
|
32
34
|
"group.onboarding.attendance.text": "¿Quen está dispoñible para o ensaio? 😍 Descúbreo con listas sinxelas de asistencia 🙋♀️",
|
package/lang/it.json
CHANGED
|
@@ -27,6 +27,8 @@
|
|
|
27
27
|
"communication.newComment.text": "{string:user.0.displayName} ha lasciato un commento su un post",
|
|
28
28
|
"communication.newComment.title": "💬 Nuovo commento",
|
|
29
29
|
"event": "Evento",
|
|
30
|
+
"event.guest.joined.text": "{string:user.0.displayName} si è unito a {string:event.0.displayName} come rinforzo",
|
|
31
|
+
"event.guest.joined.title": "🎺 Nuovo rinforzo",
|
|
30
32
|
"group.delete.text": "Il gruppo {string:group.0.displayName} è stato eliminato",
|
|
31
33
|
"group.delete.title": "Gruppo eliminato",
|
|
32
34
|
"group.onboarding.attendance.text": "Chi è disponibile per la prova? 😍 Scoprilo tramite semplici liste di presenza 🙋♀️",
|
package/lang/nl.json
CHANGED
|
@@ -27,6 +27,8 @@
|
|
|
27
27
|
"communication.newComment.text": "{string:user.0.displayName} heeft een reactie achtergelaten op een bericht",
|
|
28
28
|
"communication.newComment.title": "💬 Nieuwe reactie",
|
|
29
29
|
"event": "Evenement",
|
|
30
|
+
"event.guest.joined.text": "{string:user.0.displayName} heeft zich als versterking bij {string:event.0.displayName} aangesloten",
|
|
31
|
+
"event.guest.joined.title": "🎺 Nieuwe versterking",
|
|
30
32
|
"group.delete.text": "De groep {string:group.0.displayName} is verwijderd",
|
|
31
33
|
"group.delete.title": "Groep verwijderd",
|
|
32
34
|
"group.onboarding.attendance.text": "Wie is beschikbaar voor de repetitie? 😍 Ontdek het via eenvoudige aanwezigheidslijsten 🙋♀️",
|
package/lang/pt.json
CHANGED
|
@@ -27,6 +27,8 @@
|
|
|
27
27
|
"communication.newComment.text": "{string:user.0.displayName} deixou um comentário em uma publicação",
|
|
28
28
|
"communication.newComment.title": "💬 Novo comentário",
|
|
29
29
|
"event": "Evento",
|
|
30
|
+
"event.guest.joined.text": "{string:user.0.displayName} juntou-se a {string:event.0.displayName} como reforço",
|
|
31
|
+
"event.guest.joined.title": "🎺 Novo reforço",
|
|
30
32
|
"group.delete.text": "O grupo {string:group.0.displayName} foi excluído",
|
|
31
33
|
"group.delete.title": "Grupo excluído",
|
|
32
34
|
"group.onboarding.attendance.text": "Quem está disponível para o ensaio? 😍 Descubra por meio de listas simples de presença 🙋♀️",
|
|
@@ -12,7 +12,6 @@ export default class EventoPlayerBasic {
|
|
|
12
12
|
get photoURL(): string;
|
|
13
13
|
get mainInstrument(): import("../../../helpers/instruments").InstrumentId;
|
|
14
14
|
get isGuest(): boolean;
|
|
15
|
-
get isGroupPlayer(): boolean;
|
|
16
15
|
get status(): EventPlayerStatus | null;
|
|
17
16
|
get reason(): import("./types").EventPlayerReason | null;
|
|
18
17
|
get note(): string | null;
|
|
@@ -9,7 +9,6 @@ export default class EventoPlayer extends PlayerBasic<EventPlayerData> {
|
|
|
9
9
|
get eventId(): string;
|
|
10
10
|
get status(): EventPlayerStatus | null;
|
|
11
11
|
get isGuest(): boolean;
|
|
12
|
-
get isGroupPlayer(): boolean;
|
|
13
12
|
get isConfirmed(): boolean;
|
|
14
13
|
get isDeclined(): boolean;
|
|
15
14
|
get isPending(): boolean;
|
package/models/Evento/index.d.ts
CHANGED
|
@@ -26,10 +26,13 @@ export default class Evento extends EventoPromoter<EventData> {
|
|
|
26
26
|
get playerIds(): string[];
|
|
27
27
|
get players(): Record<string, import("./types").EventPlayerBasicData>;
|
|
28
28
|
get playersCount(): number;
|
|
29
|
+
get guestIds(): string[];
|
|
30
|
+
get guestsCount(): number;
|
|
29
31
|
get repertory(): Record<string, import("./types").EventThemeBasicData>;
|
|
30
32
|
get repertoryIds(): string[];
|
|
31
33
|
get repertoryCount(): number;
|
|
32
34
|
get activeInvitationLink(): boolean;
|
|
35
|
+
get guestInviteCode(): string | null;
|
|
33
36
|
get invitationLink(): string;
|
|
34
37
|
get shortDynamicLink(): string;
|
|
35
38
|
get deletedAt(): FirebaseFirestore.Timestamp | null;
|
package/models/Evento/index.js
CHANGED
|
@@ -62,6 +62,13 @@ class Evento extends promoter_1.default {
|
|
|
62
62
|
get playersCount() {
|
|
63
63
|
return this.data.playerIds.length;
|
|
64
64
|
}
|
|
65
|
+
// Ids of reinforcements (guests) currently participating in this event.
|
|
66
|
+
get guestIds() {
|
|
67
|
+
return this.playerIds.filter((playerId) => this.players[playerId]?.isGuest === true);
|
|
68
|
+
}
|
|
69
|
+
get guestsCount() {
|
|
70
|
+
return this.guestIds.length;
|
|
71
|
+
}
|
|
65
72
|
get repertory() {
|
|
66
73
|
return this.data.repertory || {};
|
|
67
74
|
}
|
|
@@ -74,6 +81,9 @@ class Evento extends promoter_1.default {
|
|
|
74
81
|
get activeInvitationLink() {
|
|
75
82
|
return this.data.activeInvitationLink || false;
|
|
76
83
|
}
|
|
84
|
+
get guestInviteCode() {
|
|
85
|
+
return this.data.guestInviteCode || null;
|
|
86
|
+
}
|
|
77
87
|
get invitationLink() {
|
|
78
88
|
const link = `https://glissandoo.com/joinevent/${this.id}`;
|
|
79
89
|
if (lang_1.LanguagesTypes.ES === this.lang) {
|
package/models/Evento/types.d.ts
CHANGED
|
@@ -23,6 +23,7 @@ export declare enum EventHistoryAction {
|
|
|
23
23
|
EditReminders = "edit_reminders",
|
|
24
24
|
PlayerAdd = "player_add",
|
|
25
25
|
PlayerRemove = "player_remove",
|
|
26
|
+
GuestJoined = "guest_joined",
|
|
26
27
|
PlayerStatusChange = "player_status_change",
|
|
27
28
|
RepertoireAdd = "repertoire_add",
|
|
28
29
|
RepertoireRemove = "repertoire_remove",
|
|
@@ -158,6 +159,7 @@ export interface EventData extends EventPromoterData {
|
|
|
158
159
|
repertory: Record<string, EventThemeBasicData>;
|
|
159
160
|
relEvents: string[];
|
|
160
161
|
activeInvitationLink: boolean;
|
|
162
|
+
guestInviteCode: string | null;
|
|
161
163
|
shortDynamicLink: string | null;
|
|
162
164
|
invitationLink: string | null;
|
|
163
165
|
notifyAt: Timestamp;
|
package/models/Evento/types.js
CHANGED
|
@@ -18,6 +18,7 @@ var EventHistoryAction;
|
|
|
18
18
|
EventHistoryAction["EditReminders"] = "edit_reminders";
|
|
19
19
|
EventHistoryAction["PlayerAdd"] = "player_add";
|
|
20
20
|
EventHistoryAction["PlayerRemove"] = "player_remove";
|
|
21
|
+
EventHistoryAction["GuestJoined"] = "guest_joined";
|
|
21
22
|
EventHistoryAction["PlayerStatusChange"] = "player_status_change";
|
|
22
23
|
EventHistoryAction["RepertoireAdd"] = "repertoire_add";
|
|
23
24
|
EventHistoryAction["RepertoireRemove"] = "repertoire_remove";
|
|
@@ -14,6 +14,8 @@ export default class GroupPlayer extends UserExtended<GroupPlayerData> {
|
|
|
14
14
|
get instrumentsLastUpdatedBy(): string | null;
|
|
15
15
|
get role(): GroupPlayerRole;
|
|
16
16
|
get isAdmin(): boolean;
|
|
17
|
+
get isGuest(): boolean;
|
|
18
|
+
get isMember(): boolean;
|
|
17
19
|
get permissions(): import("../types").AdminPermissions[];
|
|
18
20
|
get joinedAt(): FirebaseFirestore.Timestamp;
|
|
19
21
|
get leavedAt(): FirebaseFirestore.Timestamp | null;
|
|
@@ -38,6 +38,12 @@ class GroupPlayer extends extended_1.default {
|
|
|
38
38
|
get isAdmin() {
|
|
39
39
|
return this.role === types_1.GroupPlayerRole.Admin;
|
|
40
40
|
}
|
|
41
|
+
get isGuest() {
|
|
42
|
+
return this.role === types_1.GroupPlayerRole.Guest;
|
|
43
|
+
}
|
|
44
|
+
get isMember() {
|
|
45
|
+
return !this.isGuest;
|
|
46
|
+
}
|
|
41
47
|
get permissions() {
|
|
42
48
|
return this.data.permissions || [];
|
|
43
49
|
}
|
package/models/Group/index.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export default class Group extends GroupBasic<GroupData> {
|
|
|
10
10
|
constructor(doc: DocumentModel, lang?: LanguagesTypes);
|
|
11
11
|
get owner(): DocumentReference;
|
|
12
12
|
get playerIds(): string[];
|
|
13
|
-
get players(): Record<string, import("
|
|
13
|
+
get players(): Record<string, import("./types").GroupPlayerBasicData>;
|
|
14
14
|
get playersCount(): number;
|
|
15
15
|
get description(): string | null;
|
|
16
16
|
get addresses(): import("./types").GroupAddressData[];
|
|
@@ -36,8 +36,22 @@ export default class Group extends GroupBasic<GroupData> {
|
|
|
36
36
|
get currency(): string;
|
|
37
37
|
get currencySymbol(): string;
|
|
38
38
|
get activePlayers(): string[];
|
|
39
|
+
get guestIds(): string[];
|
|
40
|
+
get activeMembers(): string[];
|
|
41
|
+
isGuestPlayer: (userId: string) => boolean;
|
|
39
42
|
get playersList(): {
|
|
40
43
|
id: string;
|
|
44
|
+
isGuest?: boolean | undefined;
|
|
45
|
+
mainInstrument: import("../../helpers/instruments").InstrumentId;
|
|
46
|
+
username: string;
|
|
47
|
+
name: string;
|
|
48
|
+
lastname: string;
|
|
49
|
+
displayName: string;
|
|
50
|
+
photoURL: string;
|
|
51
|
+
}[];
|
|
52
|
+
get membersList(): {
|
|
53
|
+
id: string;
|
|
54
|
+
isGuest?: boolean | undefined;
|
|
41
55
|
mainInstrument: import("../../helpers/instruments").InstrumentId;
|
|
42
56
|
username: string;
|
|
43
57
|
name: string;
|
|
@@ -74,7 +88,7 @@ export default class Group extends GroupBasic<GroupData> {
|
|
|
74
88
|
last: number;
|
|
75
89
|
};
|
|
76
90
|
get metadata(): Record<string, string>;
|
|
77
|
-
getPlayer: (userId: string) => import("
|
|
91
|
+
getPlayer: (userId: string) => import("./types").GroupPlayerBasicData | null;
|
|
78
92
|
isAdmin: (userId: string) => boolean;
|
|
79
93
|
isPlayer: (userId: string) => boolean;
|
|
80
94
|
/** @deprecated use isUpgradeRequired */
|
package/models/Group/index.js
CHANGED
|
@@ -17,6 +17,9 @@ const types_1 = require("./types");
|
|
|
17
17
|
class Group extends basic_1.default {
|
|
18
18
|
constructor(doc, lang = lang_1.defaultLocale) {
|
|
19
19
|
super(doc, lang);
|
|
20
|
+
this.isGuestPlayer = (userId) => {
|
|
21
|
+
return this.players[userId]?.isGuest === true;
|
|
22
|
+
};
|
|
20
23
|
this.getPlayer = (userId) => {
|
|
21
24
|
return userId in this.players ? this.players[userId] : null;
|
|
22
25
|
};
|
|
@@ -118,6 +121,15 @@ class Group extends basic_1.default {
|
|
|
118
121
|
get activePlayers() {
|
|
119
122
|
return Object.keys(this.players);
|
|
120
123
|
}
|
|
124
|
+
// Reinforcements (guests) are members at the data level but excluded from
|
|
125
|
+
// plan limits and the normal member flows.
|
|
126
|
+
get guestIds() {
|
|
127
|
+
return this.activePlayers.filter((playerId) => this.players[playerId]?.isGuest === true);
|
|
128
|
+
}
|
|
129
|
+
// Regular members, excluding guests. Use this for plan limit calculations.
|
|
130
|
+
get activeMembers() {
|
|
131
|
+
return this.activePlayers.filter((playerId) => this.players[playerId]?.isGuest !== true);
|
|
132
|
+
}
|
|
121
133
|
get playersList() {
|
|
122
134
|
const players = this.activePlayers.map((playerId) => ({
|
|
123
135
|
...this.players[playerId],
|
|
@@ -125,6 +137,11 @@ class Group extends basic_1.default {
|
|
|
125
137
|
}));
|
|
126
138
|
return (0, orders_1.orderByInstruments)(players, 'mainInstrument', this.instrumentsIds);
|
|
127
139
|
}
|
|
140
|
+
// Ordered list of regular members (excludes guests). Use for member
|
|
141
|
+
// selection, rosters/templates and group-wide communications.
|
|
142
|
+
get membersList() {
|
|
143
|
+
return this.playersList.filter((player) => !this.players[player.id]?.isGuest);
|
|
144
|
+
}
|
|
128
145
|
get isActive() {
|
|
129
146
|
return this.exists && !this.deletedAt;
|
|
130
147
|
}
|
|
@@ -210,18 +227,18 @@ class Group extends basic_1.default {
|
|
|
210
227
|
/** @deprecated use isUpgradeRequired */
|
|
211
228
|
get isExpiredTrial() {
|
|
212
229
|
const isOutDateTrial = (0, date_fns_1.isPast)(this.trialEndAt);
|
|
213
|
-
const members = this.
|
|
230
|
+
const members = this.activeMembers.length;
|
|
214
231
|
const isAboveMembersLimitPlanFree = members > plans_1.membersPerPlan[plans_1.PlansGroup.Piano];
|
|
215
232
|
return this.status !== types_1.GroupStatus.Premium && isOutDateTrial && isAboveMembersLimitPlanFree;
|
|
216
233
|
}
|
|
217
234
|
get isOutOfMembersLimit() {
|
|
218
|
-
const members = this.
|
|
235
|
+
const members = this.activeMembers.length;
|
|
219
236
|
return members > plans_1.membersPerPlan[this.planId];
|
|
220
237
|
}
|
|
221
238
|
get isUpgradePlanRequired() {
|
|
222
239
|
const graceMembers = 4;
|
|
223
240
|
const planMembers = plans_1.membersPerPlan[this.planId] + graceMembers;
|
|
224
|
-
const members = this.
|
|
241
|
+
const members = this.activeMembers.length;
|
|
225
242
|
return members > planMembers;
|
|
226
243
|
}
|
|
227
244
|
get firstAnswerAt() {
|
package/models/Group/types.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ export declare enum GroupHistoryAction {
|
|
|
16
16
|
MemberRemove = "member_remove",
|
|
17
17
|
MemberInstrumentChange = "member_instrument_change",
|
|
18
18
|
MemberPermissionsChange = "member_permissions_change",
|
|
19
|
+
GuestPromoted = "guest_promoted",
|
|
19
20
|
TemplateCreated = "template_created",
|
|
20
21
|
TemplateDeleted = "template_deleted",
|
|
21
22
|
TemplateEdited = "template_edited",
|
|
@@ -38,6 +39,12 @@ export declare enum GroupCustomFieldType {
|
|
|
38
39
|
LINK = "link",
|
|
39
40
|
PARAGRAPH = "paragraph"
|
|
40
41
|
}
|
|
42
|
+
export declare enum GroupCustomFieldMemberAccess {
|
|
43
|
+
Private = "private",
|
|
44
|
+
ReadOnly = "readOnly",
|
|
45
|
+
Editable = "editable",
|
|
46
|
+
Required = "required"
|
|
47
|
+
}
|
|
41
48
|
export interface GroupCustomFieldOption {
|
|
42
49
|
id: string;
|
|
43
50
|
value: string;
|
|
@@ -45,9 +52,21 @@ export interface GroupCustomFieldOption {
|
|
|
45
52
|
export interface GroupCustomField {
|
|
46
53
|
label: string;
|
|
47
54
|
type: GroupCustomFieldType;
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
55
|
+
/**
|
|
56
|
+
* Member-facing access level. Single source of truth for visibility,
|
|
57
|
+
* editability and join-time enforcement.
|
|
58
|
+
*/
|
|
59
|
+
memberAccess?: GroupCustomFieldMemberAccess;
|
|
60
|
+
/**
|
|
61
|
+
* @deprecated Superseded by `memberAccess`. Only retained so the one-off
|
|
62
|
+
* backfill can derive `memberAccess` from legacy documents.
|
|
63
|
+
*/
|
|
64
|
+
required?: boolean;
|
|
65
|
+
/**
|
|
66
|
+
* @deprecated Superseded by `memberAccess`. Only retained so the one-off
|
|
67
|
+
* backfill can derive `memberAccess` from legacy documents.
|
|
68
|
+
*/
|
|
69
|
+
allowEditByMember?: boolean;
|
|
51
70
|
placeholder: string | null;
|
|
52
71
|
options: GroupCustomFieldOption[];
|
|
53
72
|
order: number;
|
|
@@ -148,6 +167,9 @@ export interface GroupTemplateData {
|
|
|
148
167
|
export interface AGroupTemplateData extends GroupTemplateData {
|
|
149
168
|
id: string;
|
|
150
169
|
}
|
|
170
|
+
export interface GroupPlayerBasicData extends PlayerBasicData {
|
|
171
|
+
isGuest?: boolean;
|
|
172
|
+
}
|
|
151
173
|
export interface GroupAlgoliaData extends Omit<GroupBasicData, 'location'> {
|
|
152
174
|
objectID: string;
|
|
153
175
|
_geoloc: {
|
|
@@ -241,7 +263,7 @@ export interface AGroupEventQuestion extends GroupEventQuestion {
|
|
|
241
263
|
export type GroupInstruments = Partial<Record<DefaultInstrumentId, DefaultGroupInstrument>> & Record<CustomInstrumentId, CustomGroupInstrument>;
|
|
242
264
|
export interface GroupData extends GroupBasicData {
|
|
243
265
|
playerIds: string[];
|
|
244
|
-
players: Record<string,
|
|
266
|
+
players: Record<string, GroupPlayerBasicData>;
|
|
245
267
|
templates: Record<string, GroupTemplateData>;
|
|
246
268
|
administrators: string[];
|
|
247
269
|
adminPermissions: Record<string, AdminPermissions[]>;
|
package/models/Group/types.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GroupRepertoireTagDefault = exports.GroupRepertoireTagReserved = exports.SocialNetwork = exports.GroupModulePlan = exports.GroupModuleId = exports.GroupStatus = exports.GroupConfigShowAttendanceToMembers = exports.GroupConfigSitesKey = exports.GroupConfigKey = exports.AdminPermissions = exports.GroupCustomFieldType = exports.GroupHistoryAction = void 0;
|
|
3
|
+
exports.GroupRepertoireTagDefault = exports.GroupRepertoireTagReserved = exports.SocialNetwork = exports.GroupModulePlan = exports.GroupModuleId = exports.GroupStatus = exports.GroupConfigShowAttendanceToMembers = exports.GroupConfigSitesKey = exports.GroupConfigKey = exports.AdminPermissions = exports.GroupCustomFieldMemberAccess = exports.GroupCustomFieldType = exports.GroupHistoryAction = void 0;
|
|
4
4
|
var GroupHistoryAction;
|
|
5
5
|
(function (GroupHistoryAction) {
|
|
6
6
|
GroupHistoryAction["Created"] = "created";
|
|
@@ -11,6 +11,7 @@ var GroupHistoryAction;
|
|
|
11
11
|
GroupHistoryAction["MemberRemove"] = "member_remove";
|
|
12
12
|
GroupHistoryAction["MemberInstrumentChange"] = "member_instrument_change";
|
|
13
13
|
GroupHistoryAction["MemberPermissionsChange"] = "member_permissions_change";
|
|
14
|
+
GroupHistoryAction["GuestPromoted"] = "guest_promoted";
|
|
14
15
|
GroupHistoryAction["TemplateCreated"] = "template_created";
|
|
15
16
|
GroupHistoryAction["TemplateDeleted"] = "template_deleted";
|
|
16
17
|
GroupHistoryAction["TemplateEdited"] = "template_edited";
|
|
@@ -35,6 +36,13 @@ var GroupCustomFieldType;
|
|
|
35
36
|
GroupCustomFieldType["LINK"] = "link";
|
|
36
37
|
GroupCustomFieldType["PARAGRAPH"] = "paragraph";
|
|
37
38
|
})(GroupCustomFieldType = exports.GroupCustomFieldType || (exports.GroupCustomFieldType = {}));
|
|
39
|
+
var GroupCustomFieldMemberAccess;
|
|
40
|
+
(function (GroupCustomFieldMemberAccess) {
|
|
41
|
+
GroupCustomFieldMemberAccess["Private"] = "private";
|
|
42
|
+
GroupCustomFieldMemberAccess["ReadOnly"] = "readOnly";
|
|
43
|
+
GroupCustomFieldMemberAccess["Editable"] = "editable";
|
|
44
|
+
GroupCustomFieldMemberAccess["Required"] = "required";
|
|
45
|
+
})(GroupCustomFieldMemberAccess = exports.GroupCustomFieldMemberAccess || (exports.GroupCustomFieldMemberAccess = {}));
|
|
38
46
|
var AdminPermissions;
|
|
39
47
|
(function (AdminPermissions) {
|
|
40
48
|
AdminPermissions["Owner"] = "owner";
|
|
@@ -18,6 +18,7 @@ export declare enum NotificationActions {
|
|
|
18
18
|
BadgePlayedWorksUpLevel = "badgePlayedWorks.upLevel",
|
|
19
19
|
CommunicationCreate = "communication.create",
|
|
20
20
|
CommunicationNewComment = "communication.newComment",
|
|
21
|
+
EventGuestJoined = "event.guest.joined",
|
|
21
22
|
GroupDelete = "group.delete",
|
|
22
23
|
GroupPlayersAdd = "group.players.add",
|
|
23
24
|
GroupPlayersJoin = "group.players.join",
|
|
@@ -15,6 +15,7 @@ var NotificationActions;
|
|
|
15
15
|
NotificationActions["BadgePlayedWorksUpLevel"] = "badgePlayedWorks.upLevel";
|
|
16
16
|
NotificationActions["CommunicationCreate"] = "communication.create";
|
|
17
17
|
NotificationActions["CommunicationNewComment"] = "communication.newComment";
|
|
18
|
+
NotificationActions["EventGuestJoined"] = "event.guest.joined";
|
|
18
19
|
NotificationActions["GroupDelete"] = "group.delete";
|
|
19
20
|
NotificationActions["GroupPlayersAdd"] = "group.players.add";
|
|
20
21
|
NotificationActions["GroupPlayersJoin"] = "group.players.join";
|
|
@@ -27,7 +27,7 @@ export default class Partnership extends PartnershipBasic<PartnershipData> {
|
|
|
27
27
|
get boardMembers(): import("../../helpers/types").BoardMemberItem[];
|
|
28
28
|
get boardDocuments(): import("../../helpers/types").BoardDocumentItem[];
|
|
29
29
|
get language(): import("../../lang").LanguagesTypes;
|
|
30
|
-
get customFields(): Record<string, import("
|
|
30
|
+
get customFields(): Record<string, import("./types").PartnershipCustomField>;
|
|
31
31
|
get customFieldsList(): APartnershipCustomField[];
|
|
32
32
|
get tags(): Record<string, import("./types").PartnershipTag>;
|
|
33
33
|
get tagsList(): APartnershipTag[];
|
|
@@ -1,9 +1,23 @@
|
|
|
1
1
|
import { DocumentReference, Timestamp } from '@google-cloud/firestore';
|
|
2
2
|
import { AdminItem, BasicAddressData, BoardDocumentItem, BoardMemberItem } from '../../helpers/types';
|
|
3
3
|
import { LanguagesTypes } from '../../lang';
|
|
4
|
-
import {
|
|
5
|
-
export
|
|
6
|
-
|
|
4
|
+
import { GroupCustomFieldOption, GroupCustomFieldType } from '../Group/types';
|
|
5
|
+
export interface PartnershipCustomField {
|
|
6
|
+
label: string;
|
|
7
|
+
type: GroupCustomFieldType;
|
|
8
|
+
required: boolean;
|
|
9
|
+
private?: boolean;
|
|
10
|
+
placeholder: string | null;
|
|
11
|
+
options: GroupCustomFieldOption[];
|
|
12
|
+
order: number;
|
|
13
|
+
createdAt: Timestamp;
|
|
14
|
+
updatedAt: Timestamp;
|
|
15
|
+
createdBy: string;
|
|
16
|
+
updatedBy: string;
|
|
17
|
+
}
|
|
18
|
+
export interface APartnershipCustomField extends PartnershipCustomField {
|
|
19
|
+
id: string;
|
|
20
|
+
}
|
|
7
21
|
export interface PartnershipTag {
|
|
8
22
|
label: string;
|
|
9
23
|
order: number;
|
package/package.json
CHANGED
|
@@ -241,6 +241,7 @@ export type Database = {
|
|
|
241
241
|
playerIds: string[];
|
|
242
242
|
players: Json;
|
|
243
243
|
promoter: string | null;
|
|
244
|
+
questions: Json | null;
|
|
244
245
|
relEvents: string[];
|
|
245
246
|
repeat: Json | null;
|
|
246
247
|
repertory: Json;
|
|
@@ -288,6 +289,7 @@ export type Database = {
|
|
|
288
289
|
playerIds: string[];
|
|
289
290
|
players: Json;
|
|
290
291
|
promoter?: string | null;
|
|
292
|
+
questions?: Json | null;
|
|
291
293
|
relEvents: string[];
|
|
292
294
|
repeat?: Json | null;
|
|
293
295
|
repertory: Json;
|
|
@@ -335,6 +337,7 @@ export type Database = {
|
|
|
335
337
|
playerIds?: string[];
|
|
336
338
|
players?: Json;
|
|
337
339
|
promoter?: string | null;
|
|
340
|
+
questions?: Json | null;
|
|
338
341
|
relEvents?: string[];
|
|
339
342
|
repeat?: Json | null;
|
|
340
343
|
repertory?: Json;
|
|
@@ -484,6 +487,7 @@ export type Database = {
|
|
|
484
487
|
createdAt: string;
|
|
485
488
|
createdOn: Database['public']['Enums']['created_on'];
|
|
486
489
|
customerId: string | null;
|
|
490
|
+
customFields: Json | null;
|
|
487
491
|
deletedAt: string | null;
|
|
488
492
|
deletedBy: string | null;
|
|
489
493
|
description: string | null;
|
|
@@ -528,6 +532,7 @@ export type Database = {
|
|
|
528
532
|
createdAt?: string;
|
|
529
533
|
createdOn: Database['public']['Enums']['created_on'];
|
|
530
534
|
customerId?: string | null;
|
|
535
|
+
customFields?: Json | null;
|
|
531
536
|
deletedAt?: string | null;
|
|
532
537
|
deletedBy?: string | null;
|
|
533
538
|
description?: string | null;
|
|
@@ -572,6 +577,7 @@ export type Database = {
|
|
|
572
577
|
createdAt?: string;
|
|
573
578
|
createdOn?: Database['public']['Enums']['created_on'];
|
|
574
579
|
customerId?: string | null;
|
|
580
|
+
customFields?: Json | null;
|
|
575
581
|
deletedAt?: string | null;
|
|
576
582
|
deletedBy?: string | null;
|
|
577
583
|
description?: string | null;
|
|
@@ -1451,18 +1457,24 @@ export type Database = {
|
|
|
1451
1457
|
};
|
|
1452
1458
|
publicApiRateLimit: {
|
|
1453
1459
|
Row: {
|
|
1460
|
+
dailyCount: number;
|
|
1461
|
+
dailyResetAt: string;
|
|
1454
1462
|
requestCount: number;
|
|
1455
1463
|
resetAt: string;
|
|
1456
1464
|
updatedAt: string;
|
|
1457
1465
|
userId: string;
|
|
1458
1466
|
};
|
|
1459
1467
|
Insert: {
|
|
1468
|
+
dailyCount?: number;
|
|
1469
|
+
dailyResetAt?: string;
|
|
1460
1470
|
requestCount: number;
|
|
1461
1471
|
resetAt: string;
|
|
1462
1472
|
updatedAt?: string;
|
|
1463
1473
|
userId: string;
|
|
1464
1474
|
};
|
|
1465
1475
|
Update: {
|
|
1476
|
+
dailyCount?: number;
|
|
1477
|
+
dailyResetAt?: string;
|
|
1466
1478
|
requestCount?: number;
|
|
1467
1479
|
resetAt?: string;
|
|
1468
1480
|
updatedAt?: string;
|
|
@@ -1741,6 +1753,7 @@ export type Database = {
|
|
|
1741
1753
|
createdAt: string | null;
|
|
1742
1754
|
createdOn: Database['public']['Enums']['created_on'] | null;
|
|
1743
1755
|
customerId: string | null;
|
|
1756
|
+
customFields: Json | null;
|
|
1744
1757
|
deletedAt: string | null;
|
|
1745
1758
|
deletedBy: string | null;
|
|
1746
1759
|
description: string | null;
|
|
@@ -1792,12 +1805,16 @@ export type Database = {
|
|
|
1792
1805
|
};
|
|
1793
1806
|
consumePublicApiRateLimit: {
|
|
1794
1807
|
Args: {
|
|
1808
|
+
p_cost: number;
|
|
1809
|
+
p_daily_max: number;
|
|
1795
1810
|
p_max_requests: number;
|
|
1796
1811
|
p_user_id: string;
|
|
1797
1812
|
p_window_seconds: number;
|
|
1798
1813
|
};
|
|
1799
1814
|
Returns: {
|
|
1800
1815
|
allowed: boolean;
|
|
1816
|
+
dailyRemaining: number;
|
|
1817
|
+
dailyResetAt: string;
|
|
1801
1818
|
remaining: number;
|
|
1802
1819
|
resetAt: string;
|
|
1803
1820
|
}[];
|
|
@@ -242,6 +242,7 @@ export type Database = {
|
|
|
242
242
|
playerIds: string[];
|
|
243
243
|
players: Json;
|
|
244
244
|
promoter: string | null;
|
|
245
|
+
questions: Json | null;
|
|
245
246
|
relEvents: string[];
|
|
246
247
|
repeat: Json | null;
|
|
247
248
|
repertory: Json;
|
|
@@ -289,6 +290,7 @@ export type Database = {
|
|
|
289
290
|
playerIds: string[];
|
|
290
291
|
players: Json;
|
|
291
292
|
promoter?: string | null;
|
|
293
|
+
questions?: Json | null;
|
|
292
294
|
relEvents: string[];
|
|
293
295
|
repeat?: Json | null;
|
|
294
296
|
repertory: Json;
|
|
@@ -336,6 +338,7 @@ export type Database = {
|
|
|
336
338
|
playerIds?: string[];
|
|
337
339
|
players?: Json;
|
|
338
340
|
promoter?: string | null;
|
|
341
|
+
questions?: Json | null;
|
|
339
342
|
relEvents?: string[];
|
|
340
343
|
repeat?: Json | null;
|
|
341
344
|
repertory?: Json;
|
|
@@ -485,6 +488,7 @@ export type Database = {
|
|
|
485
488
|
createdAt: string;
|
|
486
489
|
createdOn: Database['public']['Enums']['created_on'];
|
|
487
490
|
customerId: string | null;
|
|
491
|
+
customFields: Json | null;
|
|
488
492
|
deletedAt: string | null;
|
|
489
493
|
deletedBy: string | null;
|
|
490
494
|
description: string | null;
|
|
@@ -529,6 +533,7 @@ export type Database = {
|
|
|
529
533
|
createdAt?: string;
|
|
530
534
|
createdOn: Database['public']['Enums']['created_on'];
|
|
531
535
|
customerId?: string | null;
|
|
536
|
+
customFields?: Json | null;
|
|
532
537
|
deletedAt?: string | null;
|
|
533
538
|
deletedBy?: string | null;
|
|
534
539
|
description?: string | null;
|
|
@@ -573,6 +578,7 @@ export type Database = {
|
|
|
573
578
|
createdAt?: string;
|
|
574
579
|
createdOn?: Database['public']['Enums']['created_on'];
|
|
575
580
|
customerId?: string | null;
|
|
581
|
+
customFields?: Json | null;
|
|
576
582
|
deletedAt?: string | null;
|
|
577
583
|
deletedBy?: string | null;
|
|
578
584
|
description?: string | null;
|
|
@@ -1460,18 +1466,24 @@ export type Database = {
|
|
|
1460
1466
|
};
|
|
1461
1467
|
publicApiRateLimit: {
|
|
1462
1468
|
Row: {
|
|
1469
|
+
dailyCount: number;
|
|
1470
|
+
dailyResetAt: string;
|
|
1463
1471
|
requestCount: number;
|
|
1464
1472
|
resetAt: string;
|
|
1465
1473
|
updatedAt: string;
|
|
1466
1474
|
userId: string;
|
|
1467
1475
|
};
|
|
1468
1476
|
Insert: {
|
|
1477
|
+
dailyCount?: number;
|
|
1478
|
+
dailyResetAt?: string;
|
|
1469
1479
|
requestCount: number;
|
|
1470
1480
|
resetAt: string;
|
|
1471
1481
|
updatedAt?: string;
|
|
1472
1482
|
userId: string;
|
|
1473
1483
|
};
|
|
1474
1484
|
Update: {
|
|
1485
|
+
dailyCount?: number;
|
|
1486
|
+
dailyResetAt?: string;
|
|
1475
1487
|
requestCount?: number;
|
|
1476
1488
|
resetAt?: string;
|
|
1477
1489
|
updatedAt?: string;
|
|
@@ -1750,6 +1762,7 @@ export type Database = {
|
|
|
1750
1762
|
createdAt: string | null;
|
|
1751
1763
|
createdOn: Database['public']['Enums']['created_on'] | null;
|
|
1752
1764
|
customerId: string | null;
|
|
1765
|
+
customFields: Json | null;
|
|
1753
1766
|
deletedAt: string | null;
|
|
1754
1767
|
deletedBy: string | null;
|
|
1755
1768
|
description: string | null;
|
|
@@ -1798,12 +1811,16 @@ export type Database = {
|
|
|
1798
1811
|
};
|
|
1799
1812
|
consumePublicApiRateLimit: {
|
|
1800
1813
|
Args: {
|
|
1814
|
+
p_cost: number;
|
|
1815
|
+
p_daily_max: number;
|
|
1801
1816
|
p_max_requests: number;
|
|
1802
1817
|
p_user_id: string;
|
|
1803
1818
|
p_window_seconds: number;
|
|
1804
1819
|
};
|
|
1805
1820
|
Returns: {
|
|
1806
1821
|
allowed: boolean;
|
|
1822
|
+
dailyRemaining: number;
|
|
1823
|
+
dailyResetAt: string;
|
|
1807
1824
|
remaining: number;
|
|
1808
1825
|
resetAt: string;
|
|
1809
1826
|
}[];
|