@glissandoo/lib 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. package/functions/communication.d.ts +31 -0
  2. package/functions/communication.js +2 -0
  3. package/functions/event.d.ts +113 -0
  4. package/functions/event.js +18 -0
  5. package/functions/eventPlayer.d.ts +20 -0
  6. package/functions/eventPlayer.js +13 -0
  7. package/functions/eventRepertory.d.ts +9 -0
  8. package/functions/eventRepertory.js +2 -0
  9. package/functions/federation.d.ts +23 -0
  10. package/functions/federation.js +2 -0
  11. package/functions/federationPartnership.d.ts +34 -0
  12. package/functions/federationPartnership.js +2 -0
  13. package/functions/group.d.ts +32 -0
  14. package/functions/group.js +2 -0
  15. package/functions/groupPlayer.d.ts +37 -0
  16. package/functions/groupPlayer.js +2 -0
  17. package/functions/groupRepertory.d.ts +54 -0
  18. package/functions/groupRepertory.js +2 -0
  19. package/functions/index.d.ts +73 -0
  20. package/functions/index.js +77 -0
  21. package/functions/misc.d.ts +9 -0
  22. package/functions/misc.js +2 -0
  23. package/functions/notification.d.ts +4 -0
  24. package/functions/notification.js +2 -0
  25. package/functions/partner.d.ts +63 -0
  26. package/functions/partner.js +2 -0
  27. package/functions/partnership.d.ts +23 -0
  28. package/functions/partnership.js +2 -0
  29. package/functions/partnershipGroup.d.ts +12 -0
  30. package/functions/partnershipGroup.js +2 -0
  31. package/functions/partnershipPlan.d.ts +23 -0
  32. package/functions/partnershipPlan.js +2 -0
  33. package/functions/regions.d.ts +6 -0
  34. package/functions/regions.js +85 -0
  35. package/functions/subscription.d.ts +20 -0
  36. package/functions/subscription.js +2 -0
  37. package/functions/user.d.ts +19 -0
  38. package/functions/user.js +2 -0
  39. package/helpers/appScenes.d.ts +45 -0
  40. package/helpers/appScenes.js +49 -0
  41. package/helpers/badges.d.ts +21 -0
  42. package/helpers/badges.js +162 -0
  43. package/helpers/collections.d.ts +28 -0
  44. package/helpers/collections.js +32 -0
  45. package/helpers/instruments/index.d.ts +67 -0
  46. package/helpers/instruments/index.js +145 -0
  47. package/helpers/musicStyles/index.d.ts +9 -0
  48. package/helpers/musicStyles/index.js +16 -0
  49. package/helpers/musicStyles/orders.d.ts +4 -0
  50. package/helpers/musicStyles/orders.js +128 -0
  51. package/helpers/notifications.d.ts +40 -0
  52. package/helpers/notifications.js +120 -0
  53. package/helpers/payments.d.ts +2 -0
  54. package/helpers/payments.js +9 -0
  55. package/helpers/utils.d.ts +6 -0
  56. package/helpers/utils.js +99 -0
  57. package/index.d.ts +0 -0
  58. package/index.js +1 -0
  59. package/lang/ca.json +194 -0
  60. package/lang/de.json +194 -0
  61. package/lang/en.json +194 -0
  62. package/lang/es.json +194 -0
  63. package/lang/gl.json +194 -0
  64. package/lang/index.d.ts +1078 -0
  65. package/lang/index.js +101 -0
  66. package/models/Communication/index.d.ts +47 -0
  67. package/models/Communication/index.js +138 -0
  68. package/models/Communication/types.d.ts +53 -0
  69. package/models/Communication/types.js +13 -0
  70. package/models/Counters/index.d.ts +7 -0
  71. package/models/Counters/index.js +15 -0
  72. package/models/Counters/types.d.ts +3 -0
  73. package/models/Counters/types.js +2 -0
  74. package/models/Evento/Player/index.d.ts +17 -0
  75. package/models/Evento/Player/index.js +45 -0
  76. package/models/Evento/Player/types.d.ts +15 -0
  77. package/models/Evento/Player/types.js +8 -0
  78. package/models/Evento/Repertory/index.d.ts +9 -0
  79. package/models/Evento/Repertory/index.js +22 -0
  80. package/models/Evento/Repertory/types.d.ts +5 -0
  81. package/models/Evento/Repertory/types.js +2 -0
  82. package/models/Evento/basic.d.ts +22 -0
  83. package/models/Evento/basic.js +72 -0
  84. package/models/Evento/index.d.ts +66 -0
  85. package/models/Evento/index.js +178 -0
  86. package/models/Evento/promoter.d.ts +11 -0
  87. package/models/Evento/promoter.js +24 -0
  88. package/models/Evento/tiny.d.ts +13 -0
  89. package/models/Evento/tiny.js +32 -0
  90. package/models/Evento/types.d.ts +76 -0
  91. package/models/Evento/types.js +22 -0
  92. package/models/Federation/Partnership/index.d.ts +12 -0
  93. package/models/Federation/Partnership/index.js +31 -0
  94. package/models/Federation/Partnership/types.d.ts +8 -0
  95. package/models/Federation/Partnership/types.js +2 -0
  96. package/models/Federation/index.d.ts +20 -0
  97. package/models/Federation/index.js +54 -0
  98. package/models/Federation/types.d.ts +16 -0
  99. package/models/Federation/types.js +2 -0
  100. package/models/Group/Analytics/index.d.ts +11 -0
  101. package/models/Group/Analytics/index.js +29 -0
  102. package/models/Group/Analytics/types.d.ts +20 -0
  103. package/models/Group/Analytics/types.js +13 -0
  104. package/models/Group/Event/index.d.ts +15 -0
  105. package/models/Group/Event/index.js +38 -0
  106. package/models/Group/Event/types.d.ts +11 -0
  107. package/models/Group/Event/types.js +2 -0
  108. package/models/Group/Player/Event/index.d.ts +17 -0
  109. package/models/Group/Player/Event/index.js +42 -0
  110. package/models/Group/Player/Event/types.d.ts +8 -0
  111. package/models/Group/Player/Event/types.js +2 -0
  112. package/models/Group/Player/Log/index.d.ts +12 -0
  113. package/models/Group/Player/Log/index.js +24 -0
  114. package/models/Group/Player/Log/types.d.ts +11 -0
  115. package/models/Group/Player/Log/types.js +2 -0
  116. package/models/Group/Player/index.d.ts +55 -0
  117. package/models/Group/Player/index.js +221 -0
  118. package/models/Group/Player/types.d.ts +43 -0
  119. package/models/Group/Player/types.js +9 -0
  120. package/models/Group/Repertory/index.d.ts +67 -0
  121. package/models/Group/Repertory/index.js +149 -0
  122. package/models/Group/Repertory/types.d.ts +43 -0
  123. package/models/Group/Repertory/types.js +2 -0
  124. package/models/Group/basic.d.ts +17 -0
  125. package/models/Group/basic.js +51 -0
  126. package/models/Group/index.d.ts +43 -0
  127. package/models/Group/index.js +115 -0
  128. package/models/Group/types.d.ts +68 -0
  129. package/models/Group/types.js +21 -0
  130. package/models/Instrument/index.d.ts +9 -0
  131. package/models/Instrument/index.js +17 -0
  132. package/models/Metrics/index.d.ts +17 -0
  133. package/models/Metrics/index.js +47 -0
  134. package/models/Metrics/types.d.ts +12 -0
  135. package/models/Metrics/types.js +2 -0
  136. package/models/Model.d.ts +10 -0
  137. package/models/Model.js +21 -0
  138. package/models/MusicStyle/index.d.ts +8 -0
  139. package/models/MusicStyle/index.js +13 -0
  140. package/models/Notification/index.d.ts +12 -0
  141. package/models/Notification/index.js +26 -0
  142. package/models/Notification/types.d.ts +71 -0
  143. package/models/Notification/types.js +68 -0
  144. package/models/Partner/basic.d.ts +14 -0
  145. package/models/Partner/basic.js +43 -0
  146. package/models/Partner/index.d.ts +16 -0
  147. package/models/Partner/index.js +48 -0
  148. package/models/Partner/tiny.d.ts +9 -0
  149. package/models/Partner/tiny.js +24 -0
  150. package/models/Partner/types.d.ts +43 -0
  151. package/models/Partner/types.js +9 -0
  152. package/models/Partnership/Group/index.d.ts +8 -0
  153. package/models/Partnership/Group/index.js +17 -0
  154. package/models/Partnership/Group/types.d.ts +2 -0
  155. package/models/Partnership/Group/types.js +2 -0
  156. package/models/Partnership/Partner/Subscription/index.d.ts +19 -0
  157. package/models/Partnership/Partner/Subscription/index.js +56 -0
  158. package/models/Partnership/Partner/Subscription/types.d.ts +21 -0
  159. package/models/Partnership/Partner/Subscription/types.js +9 -0
  160. package/models/Partnership/Partner/index.d.ts +9 -0
  161. package/models/Partnership/Partner/index.js +22 -0
  162. package/models/Partnership/Partner/types.d.ts +5 -0
  163. package/models/Partnership/Partner/types.js +2 -0
  164. package/models/Partnership/Payment/index.d.ts +8 -0
  165. package/models/Partnership/Payment/index.js +18 -0
  166. package/models/Partnership/Payment/types.d.ts +6 -0
  167. package/models/Partnership/Payment/types.js +2 -0
  168. package/models/Partnership/Plan/basic.d.ts +19 -0
  169. package/models/Partnership/Plan/basic.js +65 -0
  170. package/models/Partnership/Plan/index.d.ts +12 -0
  171. package/models/Partnership/Plan/index.js +31 -0
  172. package/models/Partnership/Plan/types.d.ts +23 -0
  173. package/models/Partnership/Plan/types.js +10 -0
  174. package/models/Partnership/basic.d.ts +17 -0
  175. package/models/Partnership/basic.js +58 -0
  176. package/models/Partnership/index.d.ts +18 -0
  177. package/models/Partnership/index.js +55 -0
  178. package/models/Partnership/types.d.ts +37 -0
  179. package/models/Partnership/types.js +9 -0
  180. package/models/Payment/basic.d.ts +17 -0
  181. package/models/Payment/basic.js +53 -0
  182. package/models/Payment/index.d.ts +13 -0
  183. package/models/Payment/index.js +33 -0
  184. package/models/Payment/types.d.ts +32 -0
  185. package/models/Payment/types.js +17 -0
  186. package/models/Player/basic.d.ts +10 -0
  187. package/models/Player/basic.js +27 -0
  188. package/models/Player/types.d.ts +8 -0
  189. package/models/Player/types.js +2 -0
  190. package/models/Repertory/basic.d.ts +11 -0
  191. package/models/Repertory/basic.js +32 -0
  192. package/models/Repertory/types.d.ts +21 -0
  193. package/models/Repertory/types.js +2 -0
  194. package/models/User/Group/index.d.ts +15 -0
  195. package/models/User/Group/index.js +36 -0
  196. package/models/User/Group/types.d.ts +10 -0
  197. package/models/User/Group/types.js +2 -0
  198. package/models/User/Notification/index.d.ts +25 -0
  199. package/models/User/Notification/index.js +73 -0
  200. package/models/User/Notification/types.d.ts +25 -0
  201. package/models/User/Notification/types.js +2 -0
  202. package/models/User/basic.d.ts +13 -0
  203. package/models/User/basic.js +35 -0
  204. package/models/User/index.d.ts +46 -0
  205. package/models/User/index.js +119 -0
  206. package/models/User/types.d.ts +68 -0
  207. package/models/User/types.js +26 -0
  208. package/package.json +39 -0
@@ -0,0 +1,66 @@
1
+ import { DocumentReference, DocumentSnapshot } from '@google-cloud/firestore';
2
+ import { LanguagesTypes } from '../../lang';
3
+ import EventoPromoter from './promoter';
4
+ import { EventData, EventPlayerBasicData, EventStatusByTime } from './types';
5
+ export default class Evento extends EventoPromoter<EventData> {
6
+ constructor(doc: DocumentSnapshot, lang?: LanguagesTypes);
7
+ get maxAttendance(): number | null;
8
+ get isCapacityCompleted(): boolean;
9
+ get location(): FirebaseFirestore.GeoPoint | null;
10
+ get videoURL(): string | null;
11
+ get coverURL(): string | null;
12
+ get description(): string | null;
13
+ get owner(): DocumentReference;
14
+ get relEvents(): string[];
15
+ get isASerie(): boolean;
16
+ get playerIds(): string[];
17
+ get players(): Record<string, EventPlayerBasicData>;
18
+ get playersCount(): number;
19
+ get repertory(): Record<string, import("../Repertory/types").ThemeBasicData>;
20
+ get repertoryIds(): string[];
21
+ get repertoryCount(): number;
22
+ get activeInvitationLink(): boolean;
23
+ get invitationLink(): string | null;
24
+ get shortDynamicLink(): string | null;
25
+ get deletedAt(): FirebaseFirestore.Timestamp | null;
26
+ get createdAt(): FirebaseFirestore.Timestamp;
27
+ get rollCalledAt(): FirebaseFirestore.Timestamp | null;
28
+ get rollCallReminderAt(): FirebaseFirestore.Timestamp | null;
29
+ get notifyAt(): FirebaseFirestore.Timestamp;
30
+ get isActive(): boolean;
31
+ get isDeleted(): boolean;
32
+ get statusByTime(): EventStatusByTime;
33
+ get repertoryList(): (import("../Repertory/types").ThemeBasicData & {
34
+ id: string;
35
+ })[];
36
+ get activePlayers(): string[];
37
+ get playersList(): (EventPlayerBasicData & {
38
+ id: string;
39
+ })[];
40
+ get confirmedPlayers(): string[];
41
+ get declinedPlayers(): string[];
42
+ get pendingPlayers(): string[];
43
+ get confirmedRollCallPlayers(): string[];
44
+ get declinedRollCallPlayers(): string[];
45
+ get isRollCalled(): boolean;
46
+ get isActiveRollCall(): boolean;
47
+ /** @deprecated */
48
+ get viewers(): Record<string, import("./types").EventViewer>;
49
+ /** @deprecated */
50
+ get listViewers(): (import("./types").EventViewer & {
51
+ id: string;
52
+ })[];
53
+ /** @deprecated */
54
+ get totalViews(): number;
55
+ get templateId(): string | null;
56
+ get repeat(): import("./types").EventRepeatType | null;
57
+ get timezone(): string | null;
58
+ /** @deprecated */
59
+ getViewer(userId: string): import("./types").EventViewer | null;
60
+ isPlayer: (userId: string) => boolean;
61
+ getPlayer: (userId: string) => EventPlayerBasicData | null;
62
+ isPlayerConfirmed(player: EventPlayerBasicData): boolean;
63
+ isPlayerDeclined(player: EventPlayerBasicData): boolean;
64
+ isPlayerRollCallConfirmed(player: EventPlayerBasicData): boolean;
65
+ isPlayerRollCallDeclined(player: EventPlayerBasicData): boolean;
66
+ }
@@ -0,0 +1,178 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const date_fns_1 = require("date-fns");
7
+ const lodash_1 = require("lodash");
8
+ const orders_1 = require("../../helpers/musicStyles/orders");
9
+ const lang_1 = require("../../lang");
10
+ const types_1 = require("./Player/types");
11
+ const promoter_1 = __importDefault(require("./promoter"));
12
+ const types_2 = require("./types");
13
+ class Evento extends promoter_1.default {
14
+ constructor(doc, lang = lang_1.defaultLocale) {
15
+ super(doc, lang);
16
+ this.isPlayer = (userId) => {
17
+ return this.activePlayers.includes(userId);
18
+ };
19
+ this.getPlayer = (userId) => {
20
+ return userId in this.players ? this.players[userId] : null;
21
+ };
22
+ }
23
+ get maxAttendance() {
24
+ return this.data.maxAttendance;
25
+ }
26
+ get isCapacityCompleted() {
27
+ return lodash_1.isNumber(this.maxAttendance) && this.confirmedPlayers.length >= this.maxAttendance;
28
+ }
29
+ get location() {
30
+ return this.data.location;
31
+ }
32
+ get videoURL() {
33
+ return this.data.videoURL || null;
34
+ }
35
+ get coverURL() {
36
+ return this.data.coverURL || null;
37
+ }
38
+ get description() {
39
+ return this.data.description || null;
40
+ }
41
+ get owner() {
42
+ return this.data.owner;
43
+ }
44
+ get relEvents() {
45
+ return this.data.relEvents || [];
46
+ }
47
+ get isASerie() {
48
+ return this.relEvents.length > 1;
49
+ }
50
+ get playerIds() {
51
+ return this.data.playerIds || [];
52
+ }
53
+ get players() {
54
+ return this.data.players || {};
55
+ }
56
+ get playersCount() {
57
+ return this.data.playerIds.length;
58
+ }
59
+ get repertory() {
60
+ return this.data.repertory || {};
61
+ }
62
+ get repertoryIds() {
63
+ return this.data.repertoryIds || [];
64
+ }
65
+ get repertoryCount() {
66
+ return this.repertoryIds.length;
67
+ }
68
+ get activeInvitationLink() {
69
+ return this.data.activeInvitationLink || false;
70
+ }
71
+ get invitationLink() {
72
+ return this.data.invitationLink;
73
+ }
74
+ get shortDynamicLink() {
75
+ return this.data.shortDynamicLink;
76
+ }
77
+ get deletedAt() {
78
+ return this.data.deletedAt;
79
+ }
80
+ get createdAt() {
81
+ return this.data.createdAt;
82
+ }
83
+ get rollCalledAt() {
84
+ return this.data.rollCalledAt;
85
+ }
86
+ get rollCallReminderAt() {
87
+ return this.data.rollCallReminderAt;
88
+ }
89
+ get notifyAt() {
90
+ return this.data.notifyAt;
91
+ }
92
+ get isActive() {
93
+ return !this.isDeleted && !this.isOutDate;
94
+ }
95
+ get isDeleted() {
96
+ return !this.exists || !lodash_1.isNull(this.deletedAt);
97
+ }
98
+ get statusByTime() {
99
+ if (this.isOutDate) {
100
+ return types_2.EventStatusByTime.Past;
101
+ }
102
+ if (this.isHappening) {
103
+ return types_2.EventStatusByTime.Now;
104
+ }
105
+ return types_2.EventStatusByTime.Future;
106
+ }
107
+ get repertoryList() {
108
+ return Object.keys(this.repertory).map((themeId) => Object.assign({}, this.repertory[themeId], { id: themeId }));
109
+ }
110
+ get activePlayers() {
111
+ return Object.keys(this.players) || [];
112
+ }
113
+ get playersList() {
114
+ const players = this.activePlayers.map((playerId) => Object.assign({}, this.players[playerId], { id: playerId }));
115
+ return orders_1.orderByMusicStyle(players, 'mainInstrument', this.promoterInfo.musicStyle);
116
+ }
117
+ get confirmedPlayers() {
118
+ return this.activePlayers.filter((playerId) => this.isPlayerConfirmed(this.players[playerId]));
119
+ }
120
+ get declinedPlayers() {
121
+ return this.activePlayers.filter((playerId) => this.isPlayerDeclined(this.players[playerId]));
122
+ }
123
+ get pendingPlayers() {
124
+ return this.activePlayers.filter((playerId) => !this.players[playerId].status);
125
+ }
126
+ get confirmedRollCallPlayers() {
127
+ return this.activePlayers.filter((playerId) => this.isPlayerRollCallConfirmed(this.players[playerId]));
128
+ }
129
+ get declinedRollCallPlayers() {
130
+ return this.activePlayers.filter((playerId) => this.isPlayerRollCallDeclined(this.players[playerId]));
131
+ }
132
+ get isRollCalled() {
133
+ return this.rollCalledAt !== null;
134
+ }
135
+ get isActiveRollCall() {
136
+ return date_fns_1.isPast(date_fns_1.addHours(this.datetime.toDate(), -1));
137
+ }
138
+ /** @deprecated */
139
+ get viewers() {
140
+ return this.data.viewers || {};
141
+ }
142
+ /** @deprecated */
143
+ get listViewers() {
144
+ return Object.keys(this.viewers).map((userId) => Object.assign(this.viewers[userId], { id: userId }));
145
+ }
146
+ /** @deprecated */
147
+ get totalViews() {
148
+ return this.listViewers
149
+ .map((viewer) => viewer.count || 0)
150
+ .reduce((acc, current) => acc + current);
151
+ }
152
+ get templateId() {
153
+ return this.data.templateId || null;
154
+ }
155
+ get repeat() {
156
+ return this.data.repeat || null;
157
+ }
158
+ get timezone() {
159
+ return this.data.timezone || null;
160
+ }
161
+ /** @deprecated */
162
+ getViewer(userId) {
163
+ return userId in this.viewers ? this.viewers[userId] : null;
164
+ }
165
+ isPlayerConfirmed(player) {
166
+ return player.status === types_1.EventPlayerStatus.Confirmed;
167
+ }
168
+ isPlayerDeclined(player) {
169
+ return player.status === types_1.EventPlayerStatus.Declined;
170
+ }
171
+ isPlayerRollCallConfirmed(player) {
172
+ return player.rollcall === types_1.EventPlayerStatus.Confirmed;
173
+ }
174
+ isPlayerRollCallDeclined(player) {
175
+ return player.rollcall === types_1.EventPlayerStatus.Declined;
176
+ }
177
+ }
178
+ exports.default = Evento;
@@ -0,0 +1,11 @@
1
+ import { DocumentReference, DocumentSnapshot } from '@google-cloud/firestore';
2
+ import { LanguagesTypes } from '../../lang';
3
+ import EventoBasic from './basic';
4
+ import { EventPromoterData } from './types';
5
+ export default class EventoPromoter<D> extends EventoBasic<EventPromoterData & D> {
6
+ constructor(doc: DocumentSnapshot, lang: LanguagesTypes);
7
+ get promoter(): DocumentReference;
8
+ get groupId(): string;
9
+ get photoURL(): string;
10
+ get promoterInfo(): import("../Group/types").GroupBasicData;
11
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const basic_1 = __importDefault(require("./basic"));
7
+ class EventoPromoter extends basic_1.default {
8
+ constructor(doc, lang) {
9
+ super(doc, lang);
10
+ }
11
+ get promoter() {
12
+ return this.data.promoter;
13
+ }
14
+ get groupId() {
15
+ return this.promoter.id;
16
+ }
17
+ get photoURL() {
18
+ return this.promoterInfo.photoURL;
19
+ }
20
+ get promoterInfo() {
21
+ return this.data.promoterInfo;
22
+ }
23
+ }
24
+ exports.default = EventoPromoter;
@@ -0,0 +1,13 @@
1
+ import { LanguagesTypes } from '../../lang';
2
+ import { EventTinyData, EventType } from './types';
3
+ export default class EventoTiny {
4
+ protected lang: LanguagesTypes;
5
+ protected data: EventTinyData;
6
+ constructor(data: EventTinyData, lang: LanguagesTypes);
7
+ get displayName(): string | null;
8
+ get title(): string;
9
+ get type(): EventType;
10
+ get isPractice(): boolean;
11
+ get isPerformance(): boolean;
12
+ get datetime(): FirebaseFirestore.Timestamp;
13
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const lang_1 = require("../../lang");
4
+ const types_1 = require("./types");
5
+ class EventoTiny {
6
+ constructor(data, lang) {
7
+ this.lang = lang;
8
+ this.data = data;
9
+ }
10
+ get displayName() {
11
+ return this.data.displayName;
12
+ }
13
+ get title() {
14
+ if (this.displayName) {
15
+ return this.displayName;
16
+ }
17
+ return lang_1.getTranslation(this.type, this.lang) || lang_1.getTranslation('event', this.lang);
18
+ }
19
+ get type() {
20
+ return this.data.type;
21
+ }
22
+ get isPractice() {
23
+ return this.type === types_1.EventType.Practice;
24
+ }
25
+ get isPerformance() {
26
+ return this.type === types_1.EventType.Performance;
27
+ }
28
+ get datetime() {
29
+ return this.data.datetime;
30
+ }
31
+ }
32
+ exports.default = EventoTiny;
@@ -0,0 +1,76 @@
1
+ import { DocumentReference, GeoPoint, Timestamp } from '@google-cloud/firestore';
2
+ import { GroupBasicData } from '../Group/types';
3
+ import { PlayerBasicData } from '../Player/types';
4
+ import { ThemeBasicData } from '../Repertory/types';
5
+ import { EventPlayerStatus } from './Player/types';
6
+ export declare enum EventType {
7
+ Practice = "practice",
8
+ Performance = "performance"
9
+ }
10
+ export declare enum EventRepeatPeriod {
11
+ None = "none",
12
+ Weekly = "weekly",
13
+ Biweekly = "biweekly",
14
+ Monthly = "monthly"
15
+ }
16
+ export declare enum EventStatusByTime {
17
+ Future = "future",
18
+ Now = "now",
19
+ Past = "past"
20
+ }
21
+ export interface EventRepeatType {
22
+ period: EventRepeatPeriod;
23
+ untilAt: Timestamp;
24
+ }
25
+ export interface EventViewer {
26
+ viewedAt: Timestamp;
27
+ lastViewedAt: Timestamp;
28
+ count: number;
29
+ }
30
+ export interface EventPlayerBasicData extends PlayerBasicData {
31
+ status: EventPlayerStatus | null;
32
+ rollcall: EventPlayerStatus | null;
33
+ }
34
+ export interface AEventPlayerBasicData extends EventPlayerBasicData {
35
+ id: string;
36
+ }
37
+ export interface EventTinyData {
38
+ displayName: string | null;
39
+ datetime: Timestamp;
40
+ type: EventType;
41
+ }
42
+ export interface EventBasicData extends EventTinyData {
43
+ locality: string | null;
44
+ online: boolean;
45
+ datetimeEnd: Timestamp;
46
+ }
47
+ export interface EventPromoterData extends EventBasicData {
48
+ readonly promoter: DocumentReference;
49
+ promoterInfo: GroupBasicData;
50
+ }
51
+ export interface EventData extends EventPromoterData {
52
+ location: GeoPoint | null;
53
+ coverURL: string | null;
54
+ videoURL: string | null;
55
+ description: string | null;
56
+ playerIds: string[];
57
+ players: Record<string, EventPlayerBasicData>;
58
+ repertoryIds: string[];
59
+ repertory: Record<string, ThemeBasicData>;
60
+ relEvents: string[];
61
+ activeInvitationLink: boolean;
62
+ shortDynamicLink: string | null;
63
+ invitationLink: string | null;
64
+ notifyAt: Timestamp;
65
+ maxAttendance: number | null;
66
+ deletedAt: Timestamp | null;
67
+ rollCalledAt: Timestamp | null;
68
+ rollCallReminderAt: Timestamp | null;
69
+ /** @deprecated */
70
+ viewers: Record<string, EventViewer>;
71
+ templateId: string | null;
72
+ repeat: EventRepeatType | null;
73
+ timezone: string;
74
+ readonly owner: DocumentReference;
75
+ readonly createdAt: Timestamp;
76
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EventStatusByTime = exports.EventRepeatPeriod = exports.EventType = void 0;
4
+ var EventType;
5
+ (function (EventType) {
6
+ EventType["Practice"] = "practice";
7
+ EventType["Performance"] = "performance";
8
+ })(EventType = exports.EventType || (exports.EventType = {}));
9
+ var EventRepeatPeriod;
10
+ (function (EventRepeatPeriod) {
11
+ EventRepeatPeriod["None"] = "none";
12
+ EventRepeatPeriod["Weekly"] = "weekly";
13
+ EventRepeatPeriod["Biweekly"] = "biweekly";
14
+ EventRepeatPeriod["Monthly"] = "monthly";
15
+ })(EventRepeatPeriod = exports.EventRepeatPeriod || (exports.EventRepeatPeriod = {}));
16
+ // Se usa en la cabecera de la vista de evento de la app
17
+ var EventStatusByTime;
18
+ (function (EventStatusByTime) {
19
+ EventStatusByTime["Future"] = "future";
20
+ EventStatusByTime["Now"] = "now";
21
+ EventStatusByTime["Past"] = "past";
22
+ })(EventStatusByTime = exports.EventStatusByTime || (exports.EventStatusByTime = {}));
@@ -0,0 +1,12 @@
1
+ import { DocumentSnapshot } from '@google-cloud/firestore';
2
+ import PartnershipBasic from '../../Partnership/basic';
3
+ import { FederationPartnershipData } from './types';
4
+ export default class FederationPartnership extends PartnershipBasic<FederationPartnershipData> {
5
+ constructor(doc: DocumentSnapshot);
6
+ get connectedAt(): FirebaseFirestore.Timestamp | null;
7
+ get federationId(): string;
8
+ get isConnected(): boolean;
9
+ get memberCount(): number;
10
+ get partnerCount(): number;
11
+ get token(): string | null;
12
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const get_1 = __importDefault(require("lodash/get"));
7
+ const basic_1 = __importDefault(require("../../Partnership/basic"));
8
+ class FederationPartnership extends basic_1.default {
9
+ constructor(doc) {
10
+ super(doc);
11
+ }
12
+ get connectedAt() {
13
+ return this.data.connectedAt || null;
14
+ }
15
+ get federationId() {
16
+ return get_1.default(this.ref, 'parent.parent.id');
17
+ }
18
+ get isConnected() {
19
+ return this.connectedAt !== null;
20
+ }
21
+ get memberCount() {
22
+ return this.data.memberCount || 0;
23
+ }
24
+ get partnerCount() {
25
+ return this.data.partnerCount || 0;
26
+ }
27
+ get token() {
28
+ return this.data.token || null;
29
+ }
30
+ }
31
+ exports.default = FederationPartnership;
@@ -0,0 +1,8 @@
1
+ import { Timestamp } from '@google-cloud/firestore';
2
+ import { PartnershipBasicData } from '../../Partnership/types';
3
+ export interface FederationPartnershipData extends PartnershipBasicData {
4
+ connectedAt: Timestamp | null;
5
+ memberCount: number;
6
+ partnerCount: number;
7
+ token: string | null;
8
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,20 @@
1
+ import { DocumentSnapshot } from '@google-cloud/firestore';
2
+ import Model from '../Model';
3
+ import { FederationData } from './types';
4
+ export default class Federation extends Model<FederationData> {
5
+ constructor(doc: DocumentSnapshot);
6
+ get displayName(): string;
7
+ get email(): string | null;
8
+ get partnershipIds(): string[];
9
+ get adminIds(): string[];
10
+ isAdmin(userId: string): boolean;
11
+ get photoURL(): string;
12
+ get phone(): string | null;
13
+ get web(): string | null;
14
+ get address(): import("../Partner/types").BasicAddressData | null;
15
+ get partnershipConnectedIds(): string[];
16
+ get createdAt(): FirebaseFirestore.Timestamp;
17
+ get createdBy(): FirebaseFirestore.DocumentReference<FirebaseFirestore.DocumentData>;
18
+ get deletedAt(): FirebaseFirestore.Timestamp | null;
19
+ get isActive(): boolean;
20
+ }
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const Model_1 = __importDefault(require("../Model"));
7
+ class Federation extends Model_1.default {
8
+ constructor(doc) {
9
+ super(doc);
10
+ }
11
+ get displayName() {
12
+ return this.data.displayName;
13
+ }
14
+ get email() {
15
+ return this.data.email || null;
16
+ }
17
+ get partnershipIds() {
18
+ return this.data.partnershipIds || [];
19
+ }
20
+ get adminIds() {
21
+ return this.data.adminIds || [];
22
+ }
23
+ isAdmin(userId) {
24
+ return this.adminIds.includes(userId);
25
+ }
26
+ get photoURL() {
27
+ return this.data.photoURL;
28
+ }
29
+ get phone() {
30
+ return this.data.phone || null;
31
+ }
32
+ get web() {
33
+ return this.data.web || null;
34
+ }
35
+ get address() {
36
+ return this.data.address || null;
37
+ }
38
+ get partnershipConnectedIds() {
39
+ return this.data.partnershipConnectedIds || [];
40
+ }
41
+ get createdAt() {
42
+ return this.data.createdAt;
43
+ }
44
+ get createdBy() {
45
+ return this.data.createdBy;
46
+ }
47
+ get deletedAt() {
48
+ return this.data.deletedAt || null;
49
+ }
50
+ get isActive() {
51
+ return !this.deletedAt && this.exists;
52
+ }
53
+ }
54
+ exports.default = Federation;
@@ -0,0 +1,16 @@
1
+ import { DocumentReference, Timestamp } from '@google-cloud/firestore';
2
+ import { BasicAddressData } from '../Partner/types';
3
+ export interface FederationData {
4
+ displayName: string;
5
+ photoURL: string;
6
+ email: string | null;
7
+ phone: string | null;
8
+ web: string | null;
9
+ address: BasicAddressData | null;
10
+ partnershipIds: string[];
11
+ partnershipConnectedIds: string[];
12
+ adminIds: string[];
13
+ deletedAt: Timestamp | null;
14
+ readonly createdAt: Timestamp;
15
+ readonly createdBy: DocumentReference;
16
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,11 @@
1
+ import * as firestore from '@google-cloud/firestore';
2
+ import Model from '../../Model';
3
+ import { GroupAnalyticsData } from './types';
4
+ export default class GroupAnalytics extends Model<GroupAnalyticsData> {
5
+ constructor(doc: firestore.DocumentSnapshot);
6
+ get groupId(): string;
7
+ get satisfactionIndex(): number;
8
+ get satisfactionIndexElements(): Record<import("./types").SatisfactionIndexElements, import("./types").SITypes>;
9
+ get createdAt(): firestore.Timestamp;
10
+ get weekDate(): Date;
11
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const date_fns_1 = require("date-fns");
7
+ const lodash_1 = require("lodash");
8
+ const Model_1 = __importDefault(require("../../Model"));
9
+ class GroupAnalytics extends Model_1.default {
10
+ constructor(doc) {
11
+ super(doc);
12
+ }
13
+ get groupId() {
14
+ return lodash_1.get(this.ref, 'parent.parent.id');
15
+ }
16
+ get satisfactionIndex() {
17
+ return this.data.satisfactionIndex || 0;
18
+ }
19
+ get satisfactionIndexElements() {
20
+ return this.data.satisfactionIndexElements || {};
21
+ }
22
+ get createdAt() {
23
+ return this.data.createdAt;
24
+ }
25
+ get weekDate() {
26
+ return date_fns_1.parse(this.id, 'yyyyMMdd', new Date());
27
+ }
28
+ }
29
+ exports.default = GroupAnalytics;
@@ -0,0 +1,20 @@
1
+ import { Timestamp } from '@google-cloud/firestore';
2
+ export declare enum SatisfactionIndexElements {
3
+ ADMIN_COUNT = "adminCount",
4
+ MEMBERS_COUNT = "memberCount",
5
+ EVENTS_PER_WEEK = "eventsPerWeek",
6
+ EVENTS_ROLLCALLED_RATIO = "eventsRollcalledRatio",
7
+ EVENTS_ATTENDANCE_PREVISION_RATIO = "eventsAttendancePrevisionRatio",
8
+ EVENTS_ANSWER_RATIO = "eventsAnswerRatio",
9
+ EVENTS_WITH_REPERTORY_RATIO = "eventsWithRepertoryRatio"
10
+ }
11
+ export interface SITypes {
12
+ value: number;
13
+ threshold: number;
14
+ result: number;
15
+ }
16
+ export interface GroupAnalyticsData {
17
+ satisfactionIndexElements: Record<SatisfactionIndexElements, SITypes>;
18
+ satisfactionIndex: number;
19
+ createdAt: Timestamp;
20
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SatisfactionIndexElements = void 0;
4
+ var SatisfactionIndexElements;
5
+ (function (SatisfactionIndexElements) {
6
+ SatisfactionIndexElements["ADMIN_COUNT"] = "adminCount";
7
+ SatisfactionIndexElements["MEMBERS_COUNT"] = "memberCount";
8
+ SatisfactionIndexElements["EVENTS_PER_WEEK"] = "eventsPerWeek";
9
+ SatisfactionIndexElements["EVENTS_ROLLCALLED_RATIO"] = "eventsRollcalledRatio";
10
+ SatisfactionIndexElements["EVENTS_ATTENDANCE_PREVISION_RATIO"] = "eventsAttendancePrevisionRatio";
11
+ SatisfactionIndexElements["EVENTS_ANSWER_RATIO"] = "eventsAnswerRatio";
12
+ SatisfactionIndexElements["EVENTS_WITH_REPERTORY_RATIO"] = "eventsWithRepertoryRatio";
13
+ })(SatisfactionIndexElements = exports.SatisfactionIndexElements || (exports.SatisfactionIndexElements = {}));