@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.
- package/functions/communication.d.ts +31 -0
- package/functions/communication.js +2 -0
- package/functions/event.d.ts +113 -0
- package/functions/event.js +18 -0
- package/functions/eventPlayer.d.ts +20 -0
- package/functions/eventPlayer.js +13 -0
- package/functions/eventRepertory.d.ts +9 -0
- package/functions/eventRepertory.js +2 -0
- package/functions/federation.d.ts +23 -0
- package/functions/federation.js +2 -0
- package/functions/federationPartnership.d.ts +34 -0
- package/functions/federationPartnership.js +2 -0
- package/functions/group.d.ts +32 -0
- package/functions/group.js +2 -0
- package/functions/groupPlayer.d.ts +37 -0
- package/functions/groupPlayer.js +2 -0
- package/functions/groupRepertory.d.ts +54 -0
- package/functions/groupRepertory.js +2 -0
- package/functions/index.d.ts +73 -0
- package/functions/index.js +77 -0
- package/functions/misc.d.ts +9 -0
- package/functions/misc.js +2 -0
- package/functions/notification.d.ts +4 -0
- package/functions/notification.js +2 -0
- package/functions/partner.d.ts +63 -0
- package/functions/partner.js +2 -0
- package/functions/partnership.d.ts +23 -0
- package/functions/partnership.js +2 -0
- package/functions/partnershipGroup.d.ts +12 -0
- package/functions/partnershipGroup.js +2 -0
- package/functions/partnershipPlan.d.ts +23 -0
- package/functions/partnershipPlan.js +2 -0
- package/functions/regions.d.ts +6 -0
- package/functions/regions.js +85 -0
- package/functions/subscription.d.ts +20 -0
- package/functions/subscription.js +2 -0
- package/functions/user.d.ts +19 -0
- package/functions/user.js +2 -0
- package/helpers/appScenes.d.ts +45 -0
- package/helpers/appScenes.js +49 -0
- package/helpers/badges.d.ts +21 -0
- package/helpers/badges.js +162 -0
- package/helpers/collections.d.ts +28 -0
- package/helpers/collections.js +32 -0
- package/helpers/instruments/index.d.ts +67 -0
- package/helpers/instruments/index.js +145 -0
- package/helpers/musicStyles/index.d.ts +9 -0
- package/helpers/musicStyles/index.js +16 -0
- package/helpers/musicStyles/orders.d.ts +4 -0
- package/helpers/musicStyles/orders.js +128 -0
- package/helpers/notifications.d.ts +40 -0
- package/helpers/notifications.js +120 -0
- package/helpers/payments.d.ts +2 -0
- package/helpers/payments.js +9 -0
- package/helpers/utils.d.ts +6 -0
- package/helpers/utils.js +99 -0
- package/index.d.ts +0 -0
- package/index.js +1 -0
- package/lang/ca.json +194 -0
- package/lang/de.json +194 -0
- package/lang/en.json +194 -0
- package/lang/es.json +194 -0
- package/lang/gl.json +194 -0
- package/lang/index.d.ts +1078 -0
- package/lang/index.js +101 -0
- package/models/Communication/index.d.ts +47 -0
- package/models/Communication/index.js +138 -0
- package/models/Communication/types.d.ts +53 -0
- package/models/Communication/types.js +13 -0
- package/models/Counters/index.d.ts +7 -0
- package/models/Counters/index.js +15 -0
- package/models/Counters/types.d.ts +3 -0
- package/models/Counters/types.js +2 -0
- package/models/Evento/Player/index.d.ts +17 -0
- package/models/Evento/Player/index.js +45 -0
- package/models/Evento/Player/types.d.ts +15 -0
- package/models/Evento/Player/types.js +8 -0
- package/models/Evento/Repertory/index.d.ts +9 -0
- package/models/Evento/Repertory/index.js +22 -0
- package/models/Evento/Repertory/types.d.ts +5 -0
- package/models/Evento/Repertory/types.js +2 -0
- package/models/Evento/basic.d.ts +22 -0
- package/models/Evento/basic.js +72 -0
- package/models/Evento/index.d.ts +66 -0
- package/models/Evento/index.js +178 -0
- package/models/Evento/promoter.d.ts +11 -0
- package/models/Evento/promoter.js +24 -0
- package/models/Evento/tiny.d.ts +13 -0
- package/models/Evento/tiny.js +32 -0
- package/models/Evento/types.d.ts +76 -0
- package/models/Evento/types.js +22 -0
- package/models/Federation/Partnership/index.d.ts +12 -0
- package/models/Federation/Partnership/index.js +31 -0
- package/models/Federation/Partnership/types.d.ts +8 -0
- package/models/Federation/Partnership/types.js +2 -0
- package/models/Federation/index.d.ts +20 -0
- package/models/Federation/index.js +54 -0
- package/models/Federation/types.d.ts +16 -0
- package/models/Federation/types.js +2 -0
- package/models/Group/Analytics/index.d.ts +11 -0
- package/models/Group/Analytics/index.js +29 -0
- package/models/Group/Analytics/types.d.ts +20 -0
- package/models/Group/Analytics/types.js +13 -0
- package/models/Group/Event/index.d.ts +15 -0
- package/models/Group/Event/index.js +38 -0
- package/models/Group/Event/types.d.ts +11 -0
- package/models/Group/Event/types.js +2 -0
- package/models/Group/Player/Event/index.d.ts +17 -0
- package/models/Group/Player/Event/index.js +42 -0
- package/models/Group/Player/Event/types.d.ts +8 -0
- package/models/Group/Player/Event/types.js +2 -0
- package/models/Group/Player/Log/index.d.ts +12 -0
- package/models/Group/Player/Log/index.js +24 -0
- package/models/Group/Player/Log/types.d.ts +11 -0
- package/models/Group/Player/Log/types.js +2 -0
- package/models/Group/Player/index.d.ts +55 -0
- package/models/Group/Player/index.js +221 -0
- package/models/Group/Player/types.d.ts +43 -0
- package/models/Group/Player/types.js +9 -0
- package/models/Group/Repertory/index.d.ts +67 -0
- package/models/Group/Repertory/index.js +149 -0
- package/models/Group/Repertory/types.d.ts +43 -0
- package/models/Group/Repertory/types.js +2 -0
- package/models/Group/basic.d.ts +17 -0
- package/models/Group/basic.js +51 -0
- package/models/Group/index.d.ts +43 -0
- package/models/Group/index.js +115 -0
- package/models/Group/types.d.ts +68 -0
- package/models/Group/types.js +21 -0
- package/models/Instrument/index.d.ts +9 -0
- package/models/Instrument/index.js +17 -0
- package/models/Metrics/index.d.ts +17 -0
- package/models/Metrics/index.js +47 -0
- package/models/Metrics/types.d.ts +12 -0
- package/models/Metrics/types.js +2 -0
- package/models/Model.d.ts +10 -0
- package/models/Model.js +21 -0
- package/models/MusicStyle/index.d.ts +8 -0
- package/models/MusicStyle/index.js +13 -0
- package/models/Notification/index.d.ts +12 -0
- package/models/Notification/index.js +26 -0
- package/models/Notification/types.d.ts +71 -0
- package/models/Notification/types.js +68 -0
- package/models/Partner/basic.d.ts +14 -0
- package/models/Partner/basic.js +43 -0
- package/models/Partner/index.d.ts +16 -0
- package/models/Partner/index.js +48 -0
- package/models/Partner/tiny.d.ts +9 -0
- package/models/Partner/tiny.js +24 -0
- package/models/Partner/types.d.ts +43 -0
- package/models/Partner/types.js +9 -0
- package/models/Partnership/Group/index.d.ts +8 -0
- package/models/Partnership/Group/index.js +17 -0
- package/models/Partnership/Group/types.d.ts +2 -0
- package/models/Partnership/Group/types.js +2 -0
- package/models/Partnership/Partner/Subscription/index.d.ts +19 -0
- package/models/Partnership/Partner/Subscription/index.js +56 -0
- package/models/Partnership/Partner/Subscription/types.d.ts +21 -0
- package/models/Partnership/Partner/Subscription/types.js +9 -0
- package/models/Partnership/Partner/index.d.ts +9 -0
- package/models/Partnership/Partner/index.js +22 -0
- package/models/Partnership/Partner/types.d.ts +5 -0
- package/models/Partnership/Partner/types.js +2 -0
- package/models/Partnership/Payment/index.d.ts +8 -0
- package/models/Partnership/Payment/index.js +18 -0
- package/models/Partnership/Payment/types.d.ts +6 -0
- package/models/Partnership/Payment/types.js +2 -0
- package/models/Partnership/Plan/basic.d.ts +19 -0
- package/models/Partnership/Plan/basic.js +65 -0
- package/models/Partnership/Plan/index.d.ts +12 -0
- package/models/Partnership/Plan/index.js +31 -0
- package/models/Partnership/Plan/types.d.ts +23 -0
- package/models/Partnership/Plan/types.js +10 -0
- package/models/Partnership/basic.d.ts +17 -0
- package/models/Partnership/basic.js +58 -0
- package/models/Partnership/index.d.ts +18 -0
- package/models/Partnership/index.js +55 -0
- package/models/Partnership/types.d.ts +37 -0
- package/models/Partnership/types.js +9 -0
- package/models/Payment/basic.d.ts +17 -0
- package/models/Payment/basic.js +53 -0
- package/models/Payment/index.d.ts +13 -0
- package/models/Payment/index.js +33 -0
- package/models/Payment/types.d.ts +32 -0
- package/models/Payment/types.js +17 -0
- package/models/Player/basic.d.ts +10 -0
- package/models/Player/basic.js +27 -0
- package/models/Player/types.d.ts +8 -0
- package/models/Player/types.js +2 -0
- package/models/Repertory/basic.d.ts +11 -0
- package/models/Repertory/basic.js +32 -0
- package/models/Repertory/types.d.ts +21 -0
- package/models/Repertory/types.js +2 -0
- package/models/User/Group/index.d.ts +15 -0
- package/models/User/Group/index.js +36 -0
- package/models/User/Group/types.d.ts +10 -0
- package/models/User/Group/types.js +2 -0
- package/models/User/Notification/index.d.ts +25 -0
- package/models/User/Notification/index.js +73 -0
- package/models/User/Notification/types.d.ts +25 -0
- package/models/User/Notification/types.js +2 -0
- package/models/User/basic.d.ts +13 -0
- package/models/User/basic.js +35 -0
- package/models/User/index.d.ts +46 -0
- package/models/User/index.js +119 -0
- package/models/User/types.d.ts +68 -0
- package/models/User/types.js +26 -0
- package/package.json +39 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { DocumentSnapshot } from '@google-cloud/firestore';
|
|
2
|
+
import { LanguagesTypes } from '../../../lang';
|
|
3
|
+
import EventoBasic from '../../Evento/basic';
|
|
4
|
+
import { GroupEventData } from './types';
|
|
5
|
+
export default class GroupEvent extends EventoBasic<GroupEventData> {
|
|
6
|
+
constructor(doc: DocumentSnapshot, lang?: LanguagesTypes);
|
|
7
|
+
get rollCalledAt(): FirebaseFirestore.Timestamp | null;
|
|
8
|
+
get playersCount(): number;
|
|
9
|
+
get playersConfirmedCount(): number;
|
|
10
|
+
get playersDeclinedCount(): number;
|
|
11
|
+
get playersConfirmedRollCallCount(): number;
|
|
12
|
+
get playersDecliendRollCallCount(): number;
|
|
13
|
+
get repertoryCount(): number;
|
|
14
|
+
get isOutDate(): boolean;
|
|
15
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
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 isPast_1 = __importDefault(require("date-fns/isPast"));
|
|
7
|
+
const lang_1 = require("../../../lang");
|
|
8
|
+
const basic_1 = __importDefault(require("../../Evento/basic"));
|
|
9
|
+
class GroupEvent extends basic_1.default {
|
|
10
|
+
constructor(doc, lang = lang_1.defaultLocale) {
|
|
11
|
+
super(doc, lang);
|
|
12
|
+
}
|
|
13
|
+
get rollCalledAt() {
|
|
14
|
+
return this.data.rollCalledAt || null;
|
|
15
|
+
}
|
|
16
|
+
get playersCount() {
|
|
17
|
+
return this.data.players_count || 0;
|
|
18
|
+
}
|
|
19
|
+
get playersConfirmedCount() {
|
|
20
|
+
return this.data.players_confirmed_count || 0;
|
|
21
|
+
}
|
|
22
|
+
get playersDeclinedCount() {
|
|
23
|
+
return this.data.players_declined_count || 0;
|
|
24
|
+
}
|
|
25
|
+
get playersConfirmedRollCallCount() {
|
|
26
|
+
return this.data.players_confirmed_rollcall_count || 0;
|
|
27
|
+
}
|
|
28
|
+
get playersDecliendRollCallCount() {
|
|
29
|
+
return this.data.players_declined_rollcall_count || 0;
|
|
30
|
+
}
|
|
31
|
+
get repertoryCount() {
|
|
32
|
+
return this.data.repertory_count || 0;
|
|
33
|
+
}
|
|
34
|
+
get isOutDate() {
|
|
35
|
+
return isPast_1.default(this.datetime.toDate());
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.default = GroupEvent;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Timestamp } from '@google-cloud/firestore';
|
|
2
|
+
import { EventBasicData } from '../../Evento/types';
|
|
3
|
+
export interface GroupEventData extends EventBasicData {
|
|
4
|
+
players_count: number;
|
|
5
|
+
players_confirmed_count: number;
|
|
6
|
+
players_declined_count: number;
|
|
7
|
+
rollCalledAt: Timestamp | null;
|
|
8
|
+
players_confirmed_rollcall_count: number;
|
|
9
|
+
players_declined_rollcall_count: number;
|
|
10
|
+
repertory_count: number;
|
|
11
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DocumentSnapshot } from '@google-cloud/firestore';
|
|
2
|
+
import { LanguagesTypes } from '../../../../lang';
|
|
3
|
+
import EventoBasic from '../../../Evento/basic';
|
|
4
|
+
import { EventPlayerStatus } from '../../../Evento/Player/types';
|
|
5
|
+
import { GroupPlayerEventData } from './types';
|
|
6
|
+
export default class GroupPlayerEvent extends EventoBasic<GroupPlayerEventData> {
|
|
7
|
+
constructor(doc: DocumentSnapshot, lang?: LanguagesTypes);
|
|
8
|
+
get playerId(): string;
|
|
9
|
+
get groupId(): string;
|
|
10
|
+
get status(): EventPlayerStatus | null;
|
|
11
|
+
get isConfirmed(): boolean;
|
|
12
|
+
get isDeclined(): boolean;
|
|
13
|
+
get rollcall(): EventPlayerStatus | null;
|
|
14
|
+
get isRollcallConfirmed(): boolean;
|
|
15
|
+
get isRollcallDeclined(): boolean;
|
|
16
|
+
get joinedAt(): FirebaseFirestore.Timestamp;
|
|
17
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
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 lang_1 = require("../../../../lang");
|
|
8
|
+
const basic_1 = __importDefault(require("../../../Evento/basic"));
|
|
9
|
+
const types_1 = require("../../../Evento/Player/types");
|
|
10
|
+
class GroupPlayerEvent extends basic_1.default {
|
|
11
|
+
constructor(doc, lang = lang_1.defaultLocale) {
|
|
12
|
+
super(doc, lang);
|
|
13
|
+
}
|
|
14
|
+
get playerId() {
|
|
15
|
+
return get_1.default(this.ref, 'parent.parent.id');
|
|
16
|
+
}
|
|
17
|
+
get groupId() {
|
|
18
|
+
return get_1.default(this.ref, 'parent.parent.parent.parent.id');
|
|
19
|
+
}
|
|
20
|
+
get status() {
|
|
21
|
+
return this.data.status || null;
|
|
22
|
+
}
|
|
23
|
+
get isConfirmed() {
|
|
24
|
+
return this.status === types_1.EventPlayerStatus.Confirmed;
|
|
25
|
+
}
|
|
26
|
+
get isDeclined() {
|
|
27
|
+
return this.status === types_1.EventPlayerStatus.Declined;
|
|
28
|
+
}
|
|
29
|
+
get rollcall() {
|
|
30
|
+
return this.data.rollcall || null;
|
|
31
|
+
}
|
|
32
|
+
get isRollcallConfirmed() {
|
|
33
|
+
return this.rollcall === types_1.EventPlayerStatus.Confirmed;
|
|
34
|
+
}
|
|
35
|
+
get isRollcallDeclined() {
|
|
36
|
+
return this.rollcall === types_1.EventPlayerStatus.Declined;
|
|
37
|
+
}
|
|
38
|
+
get joinedAt() {
|
|
39
|
+
return this.data.joinedAt;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.default = GroupPlayerEvent;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Timestamp } from '@google-cloud/firestore';
|
|
2
|
+
import { EventPlayerStatus } from '../../../Evento/Player/types';
|
|
3
|
+
import { EventBasicData } from '../../../Evento/types';
|
|
4
|
+
export interface GroupPlayerEventData extends EventBasicData {
|
|
5
|
+
status: EventPlayerStatus | null;
|
|
6
|
+
rollcall: EventPlayerStatus | null;
|
|
7
|
+
joinedAt: Timestamp;
|
|
8
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DocumentSnapshot } from '@google-cloud/firestore';
|
|
2
|
+
import Model from '../../../Model';
|
|
3
|
+
import { LogData } from './types';
|
|
4
|
+
export default class GroupPlayerLog extends Model<LogData> {
|
|
5
|
+
constructor(doc: DocumentSnapshot);
|
|
6
|
+
get type(): import("./types").LogTypes;
|
|
7
|
+
get values(): {
|
|
8
|
+
[key: string]: string;
|
|
9
|
+
};
|
|
10
|
+
get createdAt(): FirebaseFirestore.Timestamp;
|
|
11
|
+
get action(): import("./types").LogActions;
|
|
12
|
+
}
|
|
@@ -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 Model_1 = __importDefault(require("../../../Model"));
|
|
7
|
+
class GroupPlayerLog extends Model_1.default {
|
|
8
|
+
constructor(doc) {
|
|
9
|
+
super(doc);
|
|
10
|
+
}
|
|
11
|
+
get type() {
|
|
12
|
+
return this.data.type;
|
|
13
|
+
}
|
|
14
|
+
get values() {
|
|
15
|
+
return this.data.values || {};
|
|
16
|
+
}
|
|
17
|
+
get createdAt() {
|
|
18
|
+
return this.data.createdAt;
|
|
19
|
+
}
|
|
20
|
+
get action() {
|
|
21
|
+
return this.data.action;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.default = GroupPlayerLog;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Timestamp } from '@google-cloud/firestore';
|
|
2
|
+
export declare type LogTypes = 'event' | 'group' | 'user';
|
|
3
|
+
export declare type LogActions = 'create' | 'leave' | 'add' | 'remove' | 'delete' | 'invite' | 'confirm' | 'decline' | 'undo' | 'addAdmin' | 'removeAdmin';
|
|
4
|
+
export interface LogData {
|
|
5
|
+
type: LogTypes;
|
|
6
|
+
action: LogActions;
|
|
7
|
+
values: {
|
|
8
|
+
[key: string]: string;
|
|
9
|
+
};
|
|
10
|
+
createdAt: Timestamp;
|
|
11
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import * as firestore from '@google-cloud/firestore';
|
|
2
|
+
import { BadgesTypes } from '../../../helpers/badges';
|
|
3
|
+
import { LanguagesTypes } from '../../../lang';
|
|
4
|
+
import { EventType } from '../../Evento/types';
|
|
5
|
+
import PlayerBasic from '../../Player/basic';
|
|
6
|
+
import { GroupPlayerData, GroupPlayerRole } from './types';
|
|
7
|
+
export default class GroupPlayer extends PlayerBasic<GroupPlayerData> {
|
|
8
|
+
constructor(doc: firestore.DocumentSnapshot, lang?: LanguagesTypes);
|
|
9
|
+
get groupId(): string;
|
|
10
|
+
get instruments(): import("../../../helpers/instruments").InstrumentId[];
|
|
11
|
+
get role(): GroupPlayerRole;
|
|
12
|
+
get isAdmin(): boolean;
|
|
13
|
+
get joinedAt(): firestore.Timestamp;
|
|
14
|
+
get leavedAt(): firestore.Timestamp | null;
|
|
15
|
+
get isActive(): boolean;
|
|
16
|
+
get eventsInvited(): number;
|
|
17
|
+
get eventsAnswered(): number;
|
|
18
|
+
get eventsNoAnswered(): number;
|
|
19
|
+
get eventsConfirmed(): number;
|
|
20
|
+
get eventsDeclined(): number;
|
|
21
|
+
get performanceInvited(): number;
|
|
22
|
+
get performanceAnswered(): number;
|
|
23
|
+
get performanceNoAnswered(): number;
|
|
24
|
+
get performanceConfirmed(): number;
|
|
25
|
+
get performanceDeclined(): number;
|
|
26
|
+
get practiceInvited(): number;
|
|
27
|
+
get practiceAnswered(): number;
|
|
28
|
+
get practiceConfirmed(): number;
|
|
29
|
+
get practiceDeclined(): number;
|
|
30
|
+
get practiceRollCallConfirmedStrike(): number;
|
|
31
|
+
get eventsRollCall(): number;
|
|
32
|
+
get eventsRollCallConfirmed(): number;
|
|
33
|
+
get eventsRollCallDeclined(): number;
|
|
34
|
+
get performanceRollCall(): number;
|
|
35
|
+
get performanceRollCallConfirmed(): number;
|
|
36
|
+
get performanceRollCallDeclined(): number;
|
|
37
|
+
get practiceRollCall(): number;
|
|
38
|
+
get practiceRollCallConfirmed(): number;
|
|
39
|
+
get practiceRollCallDeclined(): number;
|
|
40
|
+
countStatus(type: EventType, action: 'invited' | 'answered' | 'confirmed' | 'declined'): number;
|
|
41
|
+
countRollcall(type: EventType, action?: 'confirmed' | 'declined'): number;
|
|
42
|
+
getBadgeLevel(field: BadgesTypes, level?: number): firestore.Timestamp | null;
|
|
43
|
+
getCurrentBadgeLevel(field: BadgesTypes): number | null;
|
|
44
|
+
getValueByBadgeType(field: BadgesTypes): number;
|
|
45
|
+
get badgeAccPractices(): import("./types").BadgeLevels | null;
|
|
46
|
+
get badgeAccPerformances(): import("./types").BadgeLevels | null;
|
|
47
|
+
get badgeStrikePractices(): import("./types").BadgeLevels | null;
|
|
48
|
+
get badgeAnswerEvents(): import("./types").BadgeLevels | null;
|
|
49
|
+
get badges(): {
|
|
50
|
+
id: BadgesTypes;
|
|
51
|
+
level: number | null;
|
|
52
|
+
obtainAt: Date | null;
|
|
53
|
+
currentValue: number;
|
|
54
|
+
}[];
|
|
55
|
+
}
|
|
@@ -0,0 +1,221 @@
|
|
|
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 lodash_1 = require("lodash");
|
|
7
|
+
const badges_1 = require("../../../helpers/badges");
|
|
8
|
+
const lang_1 = require("../../../lang");
|
|
9
|
+
const basic_1 = __importDefault(require("../../Player/basic"));
|
|
10
|
+
const types_1 = require("./types");
|
|
11
|
+
class GroupPlayer extends basic_1.default {
|
|
12
|
+
constructor(doc, lang = lang_1.defaultLocale) {
|
|
13
|
+
super(doc, lang);
|
|
14
|
+
}
|
|
15
|
+
get groupId() {
|
|
16
|
+
return lodash_1.get(this.ref, 'parent.parent.id');
|
|
17
|
+
}
|
|
18
|
+
get instruments() {
|
|
19
|
+
return this.data.instruments || [];
|
|
20
|
+
}
|
|
21
|
+
get role() {
|
|
22
|
+
return this.data.role;
|
|
23
|
+
}
|
|
24
|
+
get isAdmin() {
|
|
25
|
+
return this.role === types_1.GroupPlayerRole.Admin;
|
|
26
|
+
}
|
|
27
|
+
get joinedAt() {
|
|
28
|
+
return this.data.joinedAt;
|
|
29
|
+
}
|
|
30
|
+
get leavedAt() {
|
|
31
|
+
return this.data.leavedAt || null;
|
|
32
|
+
}
|
|
33
|
+
get isActive() {
|
|
34
|
+
return this.exists && lodash_1.isNull(this.leavedAt);
|
|
35
|
+
}
|
|
36
|
+
get eventsInvited() {
|
|
37
|
+
return this.data.events_invited_count || 0;
|
|
38
|
+
}
|
|
39
|
+
get eventsAnswered() {
|
|
40
|
+
return this.data.events_answered_count || 0;
|
|
41
|
+
}
|
|
42
|
+
get eventsNoAnswered() {
|
|
43
|
+
return this.eventsInvited - this.eventsAnswered;
|
|
44
|
+
}
|
|
45
|
+
get eventsConfirmed() {
|
|
46
|
+
return this.data.events_confirmed_count || 0;
|
|
47
|
+
}
|
|
48
|
+
get eventsDeclined() {
|
|
49
|
+
return this.data.events_declined_count || 0;
|
|
50
|
+
}
|
|
51
|
+
get performanceInvited() {
|
|
52
|
+
return this.data.performance_invited_count || 0;
|
|
53
|
+
}
|
|
54
|
+
get performanceAnswered() {
|
|
55
|
+
return this.data.performance_answered_count || 0;
|
|
56
|
+
}
|
|
57
|
+
get performanceNoAnswered() {
|
|
58
|
+
return this.performanceInvited - this.performanceAnswered;
|
|
59
|
+
}
|
|
60
|
+
get performanceConfirmed() {
|
|
61
|
+
return this.data.performance_confirmed_count || 0;
|
|
62
|
+
}
|
|
63
|
+
get performanceDeclined() {
|
|
64
|
+
return this.data.performance_declined_count || 0;
|
|
65
|
+
}
|
|
66
|
+
get practiceInvited() {
|
|
67
|
+
return this.data.practice_invited_count || 0;
|
|
68
|
+
}
|
|
69
|
+
get practiceAnswered() {
|
|
70
|
+
return this.data.practice_answered_count || 0;
|
|
71
|
+
}
|
|
72
|
+
get practiceConfirmed() {
|
|
73
|
+
return this.data.practice_confirmed_count || 0;
|
|
74
|
+
}
|
|
75
|
+
get practiceDeclined() {
|
|
76
|
+
return this.data.practice_declined_count || 0;
|
|
77
|
+
}
|
|
78
|
+
get practiceRollCallConfirmedStrike() {
|
|
79
|
+
return this.data.practice_rollcall_confirmed_strike || 0;
|
|
80
|
+
}
|
|
81
|
+
get eventsRollCall() {
|
|
82
|
+
return this.data.events_rollcall_count || 0;
|
|
83
|
+
}
|
|
84
|
+
get eventsRollCallConfirmed() {
|
|
85
|
+
return this.data.events_rollcall_confirmed_count || 0;
|
|
86
|
+
}
|
|
87
|
+
get eventsRollCallDeclined() {
|
|
88
|
+
return this.data.events_rollcall_declined_count || 0;
|
|
89
|
+
}
|
|
90
|
+
get performanceRollCall() {
|
|
91
|
+
return this.data.performance_rollcall_count || 0;
|
|
92
|
+
}
|
|
93
|
+
get performanceRollCallConfirmed() {
|
|
94
|
+
return this.data.performance_rollcall_confirmed_count || 0;
|
|
95
|
+
}
|
|
96
|
+
get performanceRollCallDeclined() {
|
|
97
|
+
return this.data.performance_rollcall_declined_count || 0;
|
|
98
|
+
}
|
|
99
|
+
get practiceRollCall() {
|
|
100
|
+
return this.data.practice_rollcall_count || 0;
|
|
101
|
+
}
|
|
102
|
+
get practiceRollCallConfirmed() {
|
|
103
|
+
return this.data.practice_rollcall_confirmed_count || 0;
|
|
104
|
+
}
|
|
105
|
+
get practiceRollCallDeclined() {
|
|
106
|
+
return this.data.practice_rollcall_declined_count || 0;
|
|
107
|
+
}
|
|
108
|
+
countStatus(type, action) {
|
|
109
|
+
const field = [type, action, 'count'].join('_');
|
|
110
|
+
return lodash_1.get(this.data, field) || 0;
|
|
111
|
+
}
|
|
112
|
+
countRollcall(type, action) {
|
|
113
|
+
const field = [type, 'rollcall', action, 'count'].join('_');
|
|
114
|
+
return lodash_1.get(this.data, field) || 0;
|
|
115
|
+
}
|
|
116
|
+
// public rollCallData(type?: EventType) {
|
|
117
|
+
// if (type) {
|
|
118
|
+
// const total = (this.get(`${type}_rollcall_count`) as number) || 0;
|
|
119
|
+
// const confirmed = (this.get(`${type}_rollcall_confirmed_count`) as number) || 0;
|
|
120
|
+
// const declined = (this.get(`${type}_rollcall_declined_count`) as number) || 0;
|
|
121
|
+
// return {
|
|
122
|
+
// total,
|
|
123
|
+
// confirmed,
|
|
124
|
+
// declined,
|
|
125
|
+
// nostatus: total - confirmed - declined,
|
|
126
|
+
// };
|
|
127
|
+
// }
|
|
128
|
+
// return {
|
|
129
|
+
// total: this.eventsRollCall,
|
|
130
|
+
// confirmed: this.eventsRollCallConfirmed,
|
|
131
|
+
// declined: this.eventsRollCallDeclined,
|
|
132
|
+
// nostatus:
|
|
133
|
+
// this.eventsRollCall - this.eventsRollCallConfirmed - this.eventsRollCallDeclined,
|
|
134
|
+
// };
|
|
135
|
+
// }
|
|
136
|
+
// public percPassEventsAnswered() {
|
|
137
|
+
// if (this.eventsPassed === 0) {
|
|
138
|
+
// return 0;
|
|
139
|
+
// }
|
|
140
|
+
// return Math.floor((this.eventsPassedAnswered * 100) / this.eventsPassed);
|
|
141
|
+
// }
|
|
142
|
+
// public answeredFreq() {
|
|
143
|
+
// const perc = this.percPassEventsAnswered();
|
|
144
|
+
// if (perc >= 0 && perc < 10) {
|
|
145
|
+
// return 'never';
|
|
146
|
+
// } else if (perc >= 10 && perc < 40) {
|
|
147
|
+
// return 'sometimes';
|
|
148
|
+
// } else if (perc >= 40 && perc < 70) {
|
|
149
|
+
// return 'often';
|
|
150
|
+
// } else if (perc >= 70 && perc < 90) {
|
|
151
|
+
// return 'usually';
|
|
152
|
+
// } else if (perc >= 90 && perc <= 100) {
|
|
153
|
+
// return 'always';
|
|
154
|
+
// }
|
|
155
|
+
// return null;
|
|
156
|
+
// }
|
|
157
|
+
getBadgeLevel(field, level) {
|
|
158
|
+
const _level = level || this.getCurrentBadgeLevel(field);
|
|
159
|
+
const badge = this[field];
|
|
160
|
+
if (!badge || !_level) {
|
|
161
|
+
return null;
|
|
162
|
+
}
|
|
163
|
+
const nameLevel = `level${_level}`;
|
|
164
|
+
if (!badge || !badge[nameLevel])
|
|
165
|
+
return null;
|
|
166
|
+
return badge[nameLevel];
|
|
167
|
+
}
|
|
168
|
+
getCurrentBadgeLevel(field) {
|
|
169
|
+
const levels = badges_1.getLevelsCountBadge(field);
|
|
170
|
+
if (!levels)
|
|
171
|
+
return null;
|
|
172
|
+
let level = levels.length;
|
|
173
|
+
while (level > 0) {
|
|
174
|
+
if (this.getBadgeLevel(field, level) !== null) {
|
|
175
|
+
return level;
|
|
176
|
+
}
|
|
177
|
+
level = level - 1;
|
|
178
|
+
}
|
|
179
|
+
return null;
|
|
180
|
+
}
|
|
181
|
+
getValueByBadgeType(field) {
|
|
182
|
+
switch (field) {
|
|
183
|
+
case badges_1.BadgesTypes.AccPractices:
|
|
184
|
+
return this.practiceRollCallConfirmed;
|
|
185
|
+
case badges_1.BadgesTypes.AccPerformances:
|
|
186
|
+
return this.performanceRollCallConfirmed;
|
|
187
|
+
case badges_1.BadgesTypes.AnswerEvents:
|
|
188
|
+
return this.eventsAnswered;
|
|
189
|
+
case badges_1.BadgesTypes.StrikePractices:
|
|
190
|
+
return this.practiceRollCallConfirmedStrike;
|
|
191
|
+
default:
|
|
192
|
+
return 0;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
get badgeAccPractices() {
|
|
196
|
+
return this.data.badgeAccPractices || null;
|
|
197
|
+
}
|
|
198
|
+
get badgeAccPerformances() {
|
|
199
|
+
return this.data.badgeAccPerformances || null;
|
|
200
|
+
}
|
|
201
|
+
get badgeStrikePractices() {
|
|
202
|
+
return this.data.badgeStrikePractices || null;
|
|
203
|
+
}
|
|
204
|
+
get badgeAnswerEvents() {
|
|
205
|
+
return this.data.badgeAnswerEvents || null;
|
|
206
|
+
}
|
|
207
|
+
get badges() {
|
|
208
|
+
const badges = [];
|
|
209
|
+
for (const badge of Object.values(badges_1.BadgesTypes)) {
|
|
210
|
+
const obtainAt = this.getBadgeLevel(badge);
|
|
211
|
+
badges.push({
|
|
212
|
+
id: badge,
|
|
213
|
+
level: this.getCurrentBadgeLevel(badge),
|
|
214
|
+
obtainAt: obtainAt ? obtainAt.toDate() : null,
|
|
215
|
+
currentValue: this.getValueByBadgeType(badge),
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
return badges;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
exports.default = GroupPlayer;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Timestamp } from '@google-cloud/firestore';
|
|
2
|
+
import { InstrumentId } from '../../../helpers/instruments';
|
|
3
|
+
import { PlayerBasicData } from '../../Player/types';
|
|
4
|
+
export declare enum GroupPlayerRole {
|
|
5
|
+
Admin = "admin",
|
|
6
|
+
Member = "member",
|
|
7
|
+
Guest = "guest"
|
|
8
|
+
}
|
|
9
|
+
export declare type BadgeLevels = {
|
|
10
|
+
[level: string]: Timestamp;
|
|
11
|
+
};
|
|
12
|
+
export interface GroupPlayerData extends PlayerBasicData {
|
|
13
|
+
instruments: InstrumentId[];
|
|
14
|
+
role: GroupPlayerRole;
|
|
15
|
+
joinedAt: Timestamp;
|
|
16
|
+
leavedAt: Timestamp | null;
|
|
17
|
+
badgeAccPractices?: BadgeLevels;
|
|
18
|
+
badgeAccPerformances?: BadgeLevels;
|
|
19
|
+
badgeStrikePractices?: BadgeLevels;
|
|
20
|
+
badgeAnswerEvents?: BadgeLevels;
|
|
21
|
+
events_invited_count?: number;
|
|
22
|
+
events_answered_count?: number;
|
|
23
|
+
events_confirmed_count?: number;
|
|
24
|
+
events_declined_count?: number;
|
|
25
|
+
events_rollcall_count?: number;
|
|
26
|
+
events_rollcall_confirmed_count?: number;
|
|
27
|
+
events_rollcall_declined_count?: number;
|
|
28
|
+
performance_invited_count?: number;
|
|
29
|
+
performance_answered_count?: number;
|
|
30
|
+
performance_confirmed_count?: number;
|
|
31
|
+
performance_declined_count?: number;
|
|
32
|
+
performance_rollcall_count?: number;
|
|
33
|
+
performance_rollcall_confirmed_count?: number;
|
|
34
|
+
performance_rollcall_declined_count?: number;
|
|
35
|
+
practice_invited_count?: number;
|
|
36
|
+
practice_answered_count?: number;
|
|
37
|
+
practice_confirmed_count?: number;
|
|
38
|
+
practice_declined_count?: number;
|
|
39
|
+
practice_rollcall_count?: number;
|
|
40
|
+
practice_rollcall_confirmed_count?: number;
|
|
41
|
+
practice_rollcall_declined_count?: number;
|
|
42
|
+
practice_rollcall_confirmed_strike?: number;
|
|
43
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GroupPlayerRole = void 0;
|
|
4
|
+
var GroupPlayerRole;
|
|
5
|
+
(function (GroupPlayerRole) {
|
|
6
|
+
GroupPlayerRole["Admin"] = "admin";
|
|
7
|
+
GroupPlayerRole["Member"] = "member";
|
|
8
|
+
GroupPlayerRole["Guest"] = "guest";
|
|
9
|
+
})(GroupPlayerRole = exports.GroupPlayerRole || (exports.GroupPlayerRole = {}));
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import * as firestore from '@google-cloud/firestore';
|
|
2
|
+
import { InstrumentId } from '../../../helpers/instruments';
|
|
3
|
+
import Theme from '../../Repertory/basic';
|
|
4
|
+
import { AGroupRepertoryClaim, GroupRepertoryData } from './types';
|
|
5
|
+
export default class GroupRepertory extends Theme<GroupRepertoryData> {
|
|
6
|
+
constructor(doc: firestore.DocumentSnapshot);
|
|
7
|
+
get groupId(): string;
|
|
8
|
+
get tagsAlgolia(): import("./types").GroupRepertoryTagAlgoliaData[];
|
|
9
|
+
get instruments(): {
|
|
10
|
+
filesPath: string[] | undefined;
|
|
11
|
+
id: InstrumentId;
|
|
12
|
+
pages: number[];
|
|
13
|
+
}[];
|
|
14
|
+
get mainFilePath(): string | null;
|
|
15
|
+
get events(): string[];
|
|
16
|
+
get eventsTL(): Record<string, import("../../Evento/types").EventTinyData>;
|
|
17
|
+
get eventsList(): (import("../../Evento/types").EventTinyData & {
|
|
18
|
+
id: string;
|
|
19
|
+
})[];
|
|
20
|
+
/** @deprecated use getNextEvents */
|
|
21
|
+
get nextEvents(): (import("../../Evento/types").EventTinyData & {
|
|
22
|
+
id: string;
|
|
23
|
+
})[];
|
|
24
|
+
/** @deprecated use getNextEvent */
|
|
25
|
+
get nextEvent(): (import("../../Evento/types").EventTinyData & {
|
|
26
|
+
id: string;
|
|
27
|
+
}) | null;
|
|
28
|
+
get scoresByInstruments(): boolean;
|
|
29
|
+
get editedAt(): firestore.Timestamp | null;
|
|
30
|
+
get createdAt(): firestore.Timestamp;
|
|
31
|
+
get audios(): string[];
|
|
32
|
+
get identifyAt(): firestore.Timestamp | null;
|
|
33
|
+
get isIdentify(): boolean;
|
|
34
|
+
get isActive(): boolean;
|
|
35
|
+
get thumbnailURL(): string | null;
|
|
36
|
+
get ownerId(): string;
|
|
37
|
+
/** @deprecated */
|
|
38
|
+
get viewers(): Record<string, import("./types").GroupRepertoryViewer>;
|
|
39
|
+
/** @deprecated */
|
|
40
|
+
get listViewers(): (import("./types").GroupRepertoryViewer & {
|
|
41
|
+
id: string;
|
|
42
|
+
})[];
|
|
43
|
+
/** @deprecated */
|
|
44
|
+
get totalViews(): number;
|
|
45
|
+
get claims(): Record<string, Record<string, import("./types").GroupRepertoryClaimType>>;
|
|
46
|
+
get claimsList(): AGroupRepertoryClaim[];
|
|
47
|
+
claimsByInstrument(instrumentId: string): Record<string, import("./types").GroupRepertoryClaimType>;
|
|
48
|
+
getPlayersByInstrumentClaimed(instrumentId: string, onlyNoNotified?: boolean): string[];
|
|
49
|
+
isInstrumentClaimed(instrumentId: string): boolean;
|
|
50
|
+
isInstrumentClaimedByPlayer(instrumentId: InstrumentId, userId: string): boolean;
|
|
51
|
+
/** @deprecated */
|
|
52
|
+
getViewer(userId: string): import("./types").GroupRepertoryViewer | null;
|
|
53
|
+
getInstrument(id: string): {
|
|
54
|
+
filesPath: string[] | undefined;
|
|
55
|
+
id: InstrumentId;
|
|
56
|
+
pages: number[];
|
|
57
|
+
} | undefined;
|
|
58
|
+
getNextEvents(endDay?: boolean): (import("../../Evento/types").EventTinyData & {
|
|
59
|
+
id: string;
|
|
60
|
+
})[];
|
|
61
|
+
getNextEvent(endDay?: boolean): (import("../../Evento/types").EventTinyData & {
|
|
62
|
+
id: string;
|
|
63
|
+
}) | null;
|
|
64
|
+
getEventsByOrder(order?: 'asc' | 'desc'): (import("../../Evento/types").EventTinyData & {
|
|
65
|
+
id: string;
|
|
66
|
+
})[];
|
|
67
|
+
}
|