@glissandoo/lib 1.85.0 → 1.87.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/index.d.ts +2 -2
- package/functions/index.js +2 -2
- package/functions/offer.d.ts +26 -10
- package/functions/offerApplicant.d.ts +4 -3
- package/functions/regions.js +2 -2
- package/helpers/collections.d.ts +1 -0
- package/helpers/collections.js +1 -0
- package/models/Offer/Applicant/index.d.ts +17 -0
- package/models/Offer/Applicant/{basic.js → index.js} +16 -7
- package/models/Offer/Applicant/types.d.ts +9 -8
- package/models/Offer/index.d.ts +13 -6
- package/models/Offer/index.js +19 -4
- package/models/Offer/types.d.ts +20 -5
- package/models/User/index.d.ts +0 -1
- package/models/User/index.js +0 -3
- package/models/User/types.d.ts +0 -1
- package/package.json +3 -7
- package/types/supabase/generated.d.ts +90 -1
- package/types/supabase/generated.ts +90 -1
- package/types/supabase/index.d.ts +6 -11
- package/types/supabase/index.ts +6 -11
- package/types/supabase/overwrites/index.d.ts +6 -0
- package/types/supabase/overwrites/index.js +2 -0
- package/types/supabase/overwrites/index.ts +7 -0
- package/types/supabase/overwrites/offer.d.ts +11 -0
- package/types/supabase/overwrites/offer.js +2 -0
- package/types/supabase/overwrites/offer.ts +13 -0
- package/models/Offer/Applicant/basic.d.ts +0 -16
package/functions/index.d.ts
CHANGED
|
@@ -94,7 +94,6 @@ export declare enum FbFunctionName {
|
|
|
94
94
|
GroupRepertoryRate = "groupRepertory-rate",
|
|
95
95
|
GroupSendInvitationEmail = "group-sendInvitationEmail",
|
|
96
96
|
JWTGenerate = "jwt-generate",
|
|
97
|
-
MetricsDaily = "metrics-daily",
|
|
98
97
|
MetricsWeekly = "metrics-weekly",
|
|
99
98
|
MiscAddSubscriber = "misc-addSubscriber",
|
|
100
99
|
MiscScheduledFirestoreExport = "misc-scheduledFirestoreExport",
|
|
@@ -124,7 +123,8 @@ export declare enum FbFunctionName {
|
|
|
124
123
|
UserSendYearWrapped = "user-sendYearWrapped",
|
|
125
124
|
OfferPublish = "offer-publish",
|
|
126
125
|
OfferEdit = "offer-edit",
|
|
127
|
-
|
|
126
|
+
OfferSelectApplicant = "offer-selectApplicant",
|
|
127
|
+
OfferViewApplicant = "offer-viewApplicant",
|
|
128
128
|
OfferOnUpdate = "offer-onUpdate",
|
|
129
129
|
OfferCloseSelection = "offer-closeSelection",
|
|
130
130
|
OfferRemove = "offer-remove",
|
package/functions/index.js
CHANGED
|
@@ -98,7 +98,6 @@ var FbFunctionName;
|
|
|
98
98
|
FbFunctionName["GroupRepertoryRate"] = "groupRepertory-rate";
|
|
99
99
|
FbFunctionName["GroupSendInvitationEmail"] = "group-sendInvitationEmail";
|
|
100
100
|
FbFunctionName["JWTGenerate"] = "jwt-generate";
|
|
101
|
-
FbFunctionName["MetricsDaily"] = "metrics-daily";
|
|
102
101
|
FbFunctionName["MetricsWeekly"] = "metrics-weekly";
|
|
103
102
|
FbFunctionName["MiscAddSubscriber"] = "misc-addSubscriber";
|
|
104
103
|
FbFunctionName["MiscScheduledFirestoreExport"] = "misc-scheduledFirestoreExport";
|
|
@@ -128,7 +127,8 @@ var FbFunctionName;
|
|
|
128
127
|
FbFunctionName["UserSendYearWrapped"] = "user-sendYearWrapped";
|
|
129
128
|
FbFunctionName["OfferPublish"] = "offer-publish";
|
|
130
129
|
FbFunctionName["OfferEdit"] = "offer-edit";
|
|
131
|
-
FbFunctionName["
|
|
130
|
+
FbFunctionName["OfferSelectApplicant"] = "offer-selectApplicant";
|
|
131
|
+
FbFunctionName["OfferViewApplicant"] = "offer-viewApplicant";
|
|
132
132
|
FbFunctionName["OfferOnUpdate"] = "offer-onUpdate";
|
|
133
133
|
FbFunctionName["OfferCloseSelection"] = "offer-closeSelection";
|
|
134
134
|
FbFunctionName["OfferRemove"] = "offer-remove";
|
package/functions/offer.d.ts
CHANGED
|
@@ -1,27 +1,43 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DefaultInstrumentId } from '../helpers/instruments';
|
|
2
|
+
import { Descendant } from '../helpers/slate';
|
|
2
3
|
import { OfferType } from '../models/Offer/types';
|
|
3
4
|
export declare namespace OfferFbFunctionsTypes {
|
|
4
5
|
interface PublishParams {
|
|
5
6
|
offerId: string;
|
|
6
7
|
title: string;
|
|
7
|
-
description:
|
|
8
|
-
instrument:
|
|
8
|
+
description: Descendant[];
|
|
9
|
+
instrument: DefaultInstrumentId;
|
|
10
|
+
locality: string;
|
|
11
|
+
location: {
|
|
12
|
+
_latitude: number;
|
|
13
|
+
_longitude: number;
|
|
14
|
+
};
|
|
15
|
+
country: string;
|
|
9
16
|
type: OfferType;
|
|
10
17
|
group: string;
|
|
11
18
|
event: string | null;
|
|
12
19
|
deadlineAt: number | null;
|
|
20
|
+
timezone: string;
|
|
13
21
|
}
|
|
14
22
|
type PublishResult = void;
|
|
15
|
-
type EditParams =
|
|
23
|
+
type EditParams = Omit<PublishParams, 'instrument' | 'type' | 'group' | 'event'>;
|
|
16
24
|
type EditResult = void;
|
|
17
|
-
interface
|
|
25
|
+
interface SelectApplicantParams {
|
|
26
|
+
offerId: string;
|
|
27
|
+
userId: string;
|
|
28
|
+
}
|
|
29
|
+
type SelectApplicantResult = void;
|
|
30
|
+
interface ViewApplicantParams {
|
|
31
|
+
offerId: string;
|
|
32
|
+
userId: string;
|
|
33
|
+
}
|
|
34
|
+
type ViewApplicantResult = void;
|
|
35
|
+
interface CloseSelectionParams {
|
|
18
36
|
offerId: string;
|
|
19
|
-
selectedApplicantsIds: string[];
|
|
20
|
-
discardedApplicantsIds: string[];
|
|
21
37
|
}
|
|
22
|
-
type EditSelectionResult = void;
|
|
23
|
-
type CloseSelectionParams = Pick<PublishParams, 'offerId'>;
|
|
24
38
|
type CloseSelectionResult = void;
|
|
25
|
-
|
|
39
|
+
interface RemoveParams {
|
|
40
|
+
offerId: string;
|
|
41
|
+
}
|
|
26
42
|
type RemoveResult = void;
|
|
27
43
|
}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
export declare namespace OfferApplicantFbFunctionsTypes {
|
|
2
2
|
interface AddParams {
|
|
3
3
|
offerId: string;
|
|
4
|
-
|
|
5
|
-
message: string | null;
|
|
4
|
+
message: string;
|
|
6
5
|
}
|
|
7
6
|
type AddResult = void;
|
|
8
7
|
type EditParams = AddParams;
|
|
9
8
|
type EditResult = void;
|
|
10
|
-
|
|
9
|
+
interface RemoveParams {
|
|
10
|
+
offerId: string;
|
|
11
|
+
}
|
|
11
12
|
type RemoveResult = void;
|
|
12
13
|
}
|
package/functions/regions.js
CHANGED
|
@@ -123,7 +123,8 @@ const regionByFunctions = {
|
|
|
123
123
|
[index_1.FbFunctionName.PartnershipGroupRemove]: GCloudRegions.EuropeWest6,
|
|
124
124
|
[index_1.FbFunctionName.OfferPublish]: GCloudRegions.EuropeWest6,
|
|
125
125
|
[index_1.FbFunctionName.OfferEdit]: GCloudRegions.EuropeWest6,
|
|
126
|
-
[index_1.FbFunctionName.
|
|
126
|
+
[index_1.FbFunctionName.OfferSelectApplicant]: GCloudRegions.EuropeWest6,
|
|
127
|
+
[index_1.FbFunctionName.OfferViewApplicant]: GCloudRegions.EuropeWest6,
|
|
127
128
|
[index_1.FbFunctionName.OfferOnUpdate]: GCloudRegions.EuropeWest6,
|
|
128
129
|
[index_1.FbFunctionName.OfferCloseSelection]: GCloudRegions.EuropeWest6,
|
|
129
130
|
[index_1.FbFunctionName.OfferRemove]: GCloudRegions.EuropeWest6,
|
|
@@ -134,7 +135,6 @@ const regionByFunctions = {
|
|
|
134
135
|
[index_1.FbFunctionName.MiscHandleActiveCampaignAutomationContacts]: GCloudRegions.EuropeWest6,
|
|
135
136
|
[index_1.FbFunctionName.Auth]: GCloudRegions.UsCentral1,
|
|
136
137
|
[index_1.FbFunctionName.GroupCronSatistactionIndexWeekly]: GCloudRegions.EuropeWest6,
|
|
137
|
-
[index_1.FbFunctionName.MetricsDaily]: GCloudRegions.EuropeWest6,
|
|
138
138
|
[index_1.FbFunctionName.MetricsWeekly]: GCloudRegions.EuropeWest6,
|
|
139
139
|
[index_1.FbFunctionName.MiscScheduledFirestoreExport]: GCloudRegions.EuropeWest6,
|
|
140
140
|
[index_1.FbFunctionName.ReminderResponseDeadlineSoon]: GCloudRegions.EuropeWest6,
|
package/helpers/collections.d.ts
CHANGED
package/helpers/collections.js
CHANGED
|
@@ -35,5 +35,6 @@ var CollectionNames;
|
|
|
35
35
|
CollectionNames["Federation"] = "federation";
|
|
36
36
|
CollectionNames["FederationPartnerships"] = "partnerships";
|
|
37
37
|
CollectionNames["Offer"] = "offer";
|
|
38
|
+
CollectionNames["OfferApplicants"] = "applicants";
|
|
38
39
|
CollectionNames["WebhookEvent"] = "webhookEvent";
|
|
39
40
|
})(CollectionNames = exports.CollectionNames || (exports.CollectionNames = {}));
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import Model, { DocumentModel } from '../../Model';
|
|
2
|
+
import { OfferApplicantData } from './types';
|
|
3
|
+
export default class OfferApplicantBasic extends Model<OfferApplicantData> {
|
|
4
|
+
constructor(doc: DocumentModel);
|
|
5
|
+
get username(): string;
|
|
6
|
+
get displayName(): string;
|
|
7
|
+
get photoURL(): string;
|
|
8
|
+
get appliedAt(): FirebaseFirestore.Timestamp;
|
|
9
|
+
get selectedAt(): FirebaseFirestore.Timestamp | null;
|
|
10
|
+
get isSelected(): boolean;
|
|
11
|
+
get discardedAt(): FirebaseFirestore.Timestamp | null;
|
|
12
|
+
get isDiscarded(): boolean;
|
|
13
|
+
get message(): string | null;
|
|
14
|
+
get viewedAt(): FirebaseFirestore.Timestamp | null;
|
|
15
|
+
get isViewed(): boolean;
|
|
16
|
+
get history(): import("./types").OfferApplicantHistory[];
|
|
17
|
+
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
get id() {
|
|
9
|
-
return this.data.id;
|
|
6
|
+
const Model_1 = __importDefault(require("../../Model"));
|
|
7
|
+
class OfferApplicantBasic extends Model_1.default {
|
|
8
|
+
constructor(doc) {
|
|
9
|
+
super(doc);
|
|
10
10
|
}
|
|
11
11
|
get username() {
|
|
12
12
|
return this.data.username;
|
|
@@ -35,5 +35,14 @@ class OfferApplicantBasic {
|
|
|
35
35
|
get message() {
|
|
36
36
|
return this.data.message || null;
|
|
37
37
|
}
|
|
38
|
+
get viewedAt() {
|
|
39
|
+
return this.data.viewedAt || null;
|
|
40
|
+
}
|
|
41
|
+
get isViewed() {
|
|
42
|
+
return !!this.viewedAt;
|
|
43
|
+
}
|
|
44
|
+
get history() {
|
|
45
|
+
return (this.data.history || []).sort((a, b) => a.changedAt.toMillis() - b.changedAt.toMillis());
|
|
46
|
+
}
|
|
38
47
|
}
|
|
39
48
|
exports.default = OfferApplicantBasic;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { Timestamp } from '@google-cloud/firestore';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
import { OfferApplicantBasicData } from '../types';
|
|
3
|
+
type OfferApplicantHistoricalAction = 'viewed' | 'selected' | 'apply' | 'discard' | 'edit';
|
|
4
|
+
export interface OfferApplicantHistory {
|
|
5
|
+
action: OfferApplicantHistoricalAction;
|
|
6
|
+
changedAt: Timestamp;
|
|
7
|
+
changedBy: string;
|
|
8
8
|
}
|
|
9
|
-
export interface
|
|
10
|
-
|
|
9
|
+
export interface OfferApplicantData extends OfferApplicantBasicData {
|
|
10
|
+
history: OfferApplicantHistory[];
|
|
11
11
|
}
|
|
12
|
+
export {};
|
package/models/Offer/index.d.ts
CHANGED
|
@@ -1,28 +1,35 @@
|
|
|
1
|
+
import { DefaultInstrumentId } from '../../helpers/instruments';
|
|
1
2
|
import { LanguagesTypes } from '../../lang';
|
|
2
3
|
import { DocumentModel } from '../Model';
|
|
3
4
|
import ModelWithLang from '../Model/lang';
|
|
4
|
-
import OfferApplicantBasic from './Applicant/basic';
|
|
5
5
|
import { OfferData, OfferType } from './types';
|
|
6
6
|
export default class Offer extends ModelWithLang<OfferData> {
|
|
7
7
|
constructor(doc: DocumentModel, lang?: LanguagesTypes);
|
|
8
8
|
get createdAt(): FirebaseFirestore.Timestamp;
|
|
9
9
|
get createdBy(): string;
|
|
10
10
|
get title(): string;
|
|
11
|
-
get instrument():
|
|
12
|
-
get description():
|
|
11
|
+
get instrument(): DefaultInstrumentId;
|
|
12
|
+
get description(): import("../../helpers/slate").Descendant[];
|
|
13
|
+
get plainDescription(): string;
|
|
13
14
|
get type(): OfferType;
|
|
14
15
|
get group(): string;
|
|
15
16
|
get event(): string | null;
|
|
17
|
+
get locality(): string;
|
|
18
|
+
get location(): FirebaseFirestore.GeoPoint;
|
|
19
|
+
get country(): string;
|
|
16
20
|
get applicantsIds(): string[];
|
|
17
|
-
get applicants(): Record<string, import("./
|
|
18
|
-
get applicantList():
|
|
21
|
+
get applicants(): Record<string, import("./types").OfferApplicantBasicData>;
|
|
22
|
+
get applicantList(): (import("./types").OfferApplicantBasicData & {
|
|
23
|
+
id: string;
|
|
24
|
+
})[];
|
|
19
25
|
get deadlineAt(): FirebaseFirestore.Timestamp | null;
|
|
26
|
+
get timezone(): string;
|
|
20
27
|
get isResponseAllowed(): boolean;
|
|
21
28
|
get selectionClosedAt(): FirebaseFirestore.Timestamp | null;
|
|
22
29
|
get selectionClosedBy(): string | null;
|
|
23
30
|
get isSelectionClosed(): boolean;
|
|
24
31
|
get updatedAt(): FirebaseFirestore.Timestamp;
|
|
25
|
-
get updatedBy(): string
|
|
32
|
+
get updatedBy(): string;
|
|
26
33
|
get deletedAt(): FirebaseFirestore.Timestamp | null;
|
|
27
34
|
get deletedBy(): string | null;
|
|
28
35
|
get isDeleted(): boolean;
|
package/models/Offer/index.js
CHANGED
|
@@ -7,9 +7,9 @@ const date_fns_1 = require("date-fns");
|
|
|
7
7
|
const lodash_1 = require("lodash");
|
|
8
8
|
const instruments_1 = require("../../helpers/instruments");
|
|
9
9
|
const objects_1 = require("../../helpers/objects");
|
|
10
|
+
const slate_1 = require("../../helpers/slate");
|
|
10
11
|
const lang_1 = require("../../lang");
|
|
11
12
|
const lang_2 = __importDefault(require("../Model/lang"));
|
|
12
|
-
const basic_1 = __importDefault(require("./Applicant/basic"));
|
|
13
13
|
const types_1 = require("./types");
|
|
14
14
|
class Offer extends lang_2.default {
|
|
15
15
|
constructor(doc, lang = lang_1.defaultLocale) {
|
|
@@ -30,6 +30,9 @@ class Offer extends lang_2.default {
|
|
|
30
30
|
get description() {
|
|
31
31
|
return this.data.description || '';
|
|
32
32
|
}
|
|
33
|
+
get plainDescription() {
|
|
34
|
+
return (0, slate_1.serializeSlateBlock)(this.description);
|
|
35
|
+
}
|
|
33
36
|
get type() {
|
|
34
37
|
return this.data.type || types_1.OfferType.Group;
|
|
35
38
|
}
|
|
@@ -39,6 +42,15 @@ class Offer extends lang_2.default {
|
|
|
39
42
|
get event() {
|
|
40
43
|
return this.data.event || null;
|
|
41
44
|
}
|
|
45
|
+
get locality() {
|
|
46
|
+
return this.data.locality;
|
|
47
|
+
}
|
|
48
|
+
get location() {
|
|
49
|
+
return this.data.location;
|
|
50
|
+
}
|
|
51
|
+
get country() {
|
|
52
|
+
return this.data.country;
|
|
53
|
+
}
|
|
42
54
|
get applicantsIds() {
|
|
43
55
|
return this.data.applicantsIds || [];
|
|
44
56
|
}
|
|
@@ -46,11 +58,14 @@ class Offer extends lang_2.default {
|
|
|
46
58
|
return this.data.applicants || {};
|
|
47
59
|
}
|
|
48
60
|
get applicantList() {
|
|
49
|
-
return (0, objects_1.mapToArray)(this.applicants)
|
|
61
|
+
return (0, objects_1.mapToArray)(this.applicants);
|
|
50
62
|
}
|
|
51
63
|
get deadlineAt() {
|
|
52
64
|
return this.data.deadlineAt || null;
|
|
53
65
|
}
|
|
66
|
+
get timezone() {
|
|
67
|
+
return this.data.timezone || 'Europe/Madrid';
|
|
68
|
+
}
|
|
54
69
|
get isResponseAllowed() {
|
|
55
70
|
return (!this.isSelectionClosed && (this.deadlineAt ? (0, date_fns_1.isFuture)(this.deadlineAt.toDate()) : true));
|
|
56
71
|
}
|
|
@@ -64,10 +79,10 @@ class Offer extends lang_2.default {
|
|
|
64
79
|
return !(0, lodash_1.isNull)(this.selectionClosedAt);
|
|
65
80
|
}
|
|
66
81
|
get updatedAt() {
|
|
67
|
-
return this.data.updatedAt
|
|
82
|
+
return this.data.updatedAt;
|
|
68
83
|
}
|
|
69
84
|
get updatedBy() {
|
|
70
|
-
return this.data.updatedBy
|
|
85
|
+
return this.data.updatedBy;
|
|
71
86
|
}
|
|
72
87
|
get deletedAt() {
|
|
73
88
|
return this.data.deletedAt || null;
|
package/models/Offer/types.d.ts
CHANGED
|
@@ -1,20 +1,35 @@
|
|
|
1
|
-
import { Timestamp } from '@google-cloud/firestore';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { GeoPoint, Timestamp } from '@google-cloud/firestore';
|
|
2
|
+
import { DefaultInstrumentId } from '../../helpers/instruments';
|
|
3
|
+
import { Descendant } from '../../helpers/slate';
|
|
4
|
+
import { UserBasicData } from '../User/types';
|
|
4
5
|
export declare enum OfferType {
|
|
5
6
|
Group = "group",
|
|
6
7
|
Event = "event"
|
|
7
8
|
}
|
|
9
|
+
export interface OfferApplicantBasicData extends UserBasicData {
|
|
10
|
+
appliedAt: Timestamp;
|
|
11
|
+
viewedAt: Timestamp | null;
|
|
12
|
+
selectedAt: Timestamp | null;
|
|
13
|
+
discardedAt: Timestamp | null;
|
|
14
|
+
message: string | null;
|
|
15
|
+
}
|
|
16
|
+
export interface AOfferApplicantBasicData extends OfferApplicantBasicData {
|
|
17
|
+
id: string;
|
|
18
|
+
}
|
|
8
19
|
export interface OfferData {
|
|
9
20
|
title: string;
|
|
10
|
-
description:
|
|
11
|
-
instrument:
|
|
21
|
+
description: Descendant[];
|
|
22
|
+
instrument: DefaultInstrumentId;
|
|
23
|
+
locality: string;
|
|
24
|
+
location: GeoPoint;
|
|
25
|
+
country: string;
|
|
12
26
|
type: OfferType;
|
|
13
27
|
group: string;
|
|
14
28
|
event: string | null;
|
|
15
29
|
applicantsIds: string[];
|
|
16
30
|
applicants: Record<string, OfferApplicantBasicData>;
|
|
17
31
|
deadlineAt: Timestamp | null;
|
|
32
|
+
timezone: string;
|
|
18
33
|
selectionClosedAt: Timestamp | null;
|
|
19
34
|
selectionClosedBy: string | null;
|
|
20
35
|
updatedAt: Timestamp;
|
package/models/User/index.d.ts
CHANGED
package/models/User/index.js
CHANGED
package/models/User/types.d.ts
CHANGED
|
@@ -93,7 +93,6 @@ export interface UserData extends UserBasicData {
|
|
|
93
93
|
registerVia: UserRegisterVia;
|
|
94
94
|
lastAppLoginAt: Timestamp | null;
|
|
95
95
|
lastWebLoginAt: Timestamp | null;
|
|
96
|
-
appliedOffers: string[];
|
|
97
96
|
}
|
|
98
97
|
export interface AUserBasicData extends UserBasicData {
|
|
99
98
|
id: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@glissandoo/lib",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.87.0",
|
|
4
4
|
"description": "Glissandoo library js",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"types": "./index.d.ts",
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
"format": "prettier --write \"src/**/*.ts\" \"src/lang/*.json\"",
|
|
14
14
|
"format:single": "prettier --write",
|
|
15
15
|
"lint": "eslint --ext .ts ./src",
|
|
16
|
+
"lint:single": "eslint",
|
|
16
17
|
"prepare": "rm -rf ./lib && npm run build:link",
|
|
17
18
|
"set-husky": "node scripts/setHusky.js",
|
|
18
19
|
"preversion": "npm run lint",
|
|
@@ -48,11 +49,6 @@
|
|
|
48
49
|
"typescript": "^4.9.4"
|
|
49
50
|
},
|
|
50
51
|
"lint-staged": {
|
|
51
|
-
"*.ts":
|
|
52
|
-
"npm run format:single --"
|
|
53
|
-
],
|
|
54
|
-
"*.json": [
|
|
55
|
-
"npm run format:single --"
|
|
56
|
-
]
|
|
52
|
+
"*.{ts,json}": "npm run format:single --"
|
|
57
53
|
}
|
|
58
54
|
}
|
|
@@ -38,6 +38,7 @@ export interface Database {
|
|
|
38
38
|
datetime: string;
|
|
39
39
|
datetimeEnd: string;
|
|
40
40
|
deletedAt: string | null;
|
|
41
|
+
deletedBy: string | null;
|
|
41
42
|
description: string | null;
|
|
42
43
|
descriptionSlate: Json[];
|
|
43
44
|
displayName: string | null;
|
|
@@ -83,6 +84,7 @@ export interface Database {
|
|
|
83
84
|
datetime: string;
|
|
84
85
|
datetimeEnd: string;
|
|
85
86
|
deletedAt?: string | null;
|
|
87
|
+
deletedBy?: string | null;
|
|
86
88
|
description?: string | null;
|
|
87
89
|
descriptionSlate: Json[];
|
|
88
90
|
displayName?: string | null;
|
|
@@ -128,6 +130,7 @@ export interface Database {
|
|
|
128
130
|
datetime?: string;
|
|
129
131
|
datetimeEnd?: string;
|
|
130
132
|
deletedAt?: string | null;
|
|
133
|
+
deletedBy?: string | null;
|
|
131
134
|
description?: string | null;
|
|
132
135
|
descriptionSlate?: Json[];
|
|
133
136
|
displayName?: string | null;
|
|
@@ -167,7 +170,7 @@ export interface Database {
|
|
|
167
170
|
};
|
|
168
171
|
Relationships: [
|
|
169
172
|
{
|
|
170
|
-
foreignKeyName: '
|
|
173
|
+
foreignKeyName: 'event_promoter_group_id_fkey';
|
|
171
174
|
columns: ['promoter'];
|
|
172
175
|
referencedRelation: 'group';
|
|
173
176
|
referencedColumns: ['id'];
|
|
@@ -186,6 +189,7 @@ export interface Database {
|
|
|
186
189
|
createdOn: Database['public']['Enums']['group_created_on'];
|
|
187
190
|
customerId: string | null;
|
|
188
191
|
deletedAt: string | null;
|
|
192
|
+
deletedBy: string | null;
|
|
189
193
|
description: string | null;
|
|
190
194
|
displayName: string;
|
|
191
195
|
id: string;
|
|
@@ -206,10 +210,12 @@ export interface Database {
|
|
|
206
210
|
playerIds: string[];
|
|
207
211
|
players: Json;
|
|
208
212
|
repertoireTags: Json;
|
|
213
|
+
rollcallLink: string | null;
|
|
209
214
|
satisfactionIndex: Json;
|
|
210
215
|
shortDynamicLink: string | null;
|
|
211
216
|
socialNetworks: Json | null;
|
|
212
217
|
status: Database['public']['Enums']['group_status'];
|
|
218
|
+
subscriptionId: string | null;
|
|
213
219
|
templates: Json;
|
|
214
220
|
trialEndAt: string | null;
|
|
215
221
|
updatedAt: string;
|
|
@@ -227,6 +233,7 @@ export interface Database {
|
|
|
227
233
|
createdOn: Database['public']['Enums']['group_created_on'];
|
|
228
234
|
customerId?: string | null;
|
|
229
235
|
deletedAt?: string | null;
|
|
236
|
+
deletedBy?: string | null;
|
|
230
237
|
description?: string | null;
|
|
231
238
|
displayName: string;
|
|
232
239
|
id: string;
|
|
@@ -247,10 +254,12 @@ export interface Database {
|
|
|
247
254
|
playerIds: string[];
|
|
248
255
|
players: Json;
|
|
249
256
|
repertoireTags: Json;
|
|
257
|
+
rollcallLink?: string | null;
|
|
250
258
|
satisfactionIndex: Json;
|
|
251
259
|
shortDynamicLink?: string | null;
|
|
252
260
|
socialNetworks?: Json | null;
|
|
253
261
|
status: Database['public']['Enums']['group_status'];
|
|
262
|
+
subscriptionId?: string | null;
|
|
254
263
|
templates: Json;
|
|
255
264
|
trialEndAt?: string | null;
|
|
256
265
|
updatedAt?: string;
|
|
@@ -268,6 +277,7 @@ export interface Database {
|
|
|
268
277
|
createdOn?: Database['public']['Enums']['group_created_on'];
|
|
269
278
|
customerId?: string | null;
|
|
270
279
|
deletedAt?: string | null;
|
|
280
|
+
deletedBy?: string | null;
|
|
271
281
|
description?: string | null;
|
|
272
282
|
displayName?: string;
|
|
273
283
|
id?: string;
|
|
@@ -288,10 +298,12 @@ export interface Database {
|
|
|
288
298
|
playerIds?: string[];
|
|
289
299
|
players?: Json;
|
|
290
300
|
repertoireTags?: Json;
|
|
301
|
+
rollcallLink?: string | null;
|
|
291
302
|
satisfactionIndex?: Json;
|
|
292
303
|
shortDynamicLink?: string | null;
|
|
293
304
|
socialNetworks?: Json | null;
|
|
294
305
|
status?: Database['public']['Enums']['group_status'];
|
|
306
|
+
subscriptionId?: string | null;
|
|
295
307
|
templates?: Json;
|
|
296
308
|
trialEndAt?: string | null;
|
|
297
309
|
updatedAt?: string;
|
|
@@ -300,6 +312,82 @@ export interface Database {
|
|
|
300
312
|
};
|
|
301
313
|
Relationships: [];
|
|
302
314
|
};
|
|
315
|
+
offer: {
|
|
316
|
+
Row: {
|
|
317
|
+
applicants: Json;
|
|
318
|
+
applicantsIds: string[];
|
|
319
|
+
createdAt: string;
|
|
320
|
+
createdBy: string;
|
|
321
|
+
deadlineAt: string | null;
|
|
322
|
+
deletedAt: string | null;
|
|
323
|
+
deletedBy: string | null;
|
|
324
|
+
description: string;
|
|
325
|
+
event: string | null;
|
|
326
|
+
group: string;
|
|
327
|
+
id: string;
|
|
328
|
+
instrument: string;
|
|
329
|
+
selectionClosedAt: string | null;
|
|
330
|
+
selectionClosedBy: string | null;
|
|
331
|
+
title: string;
|
|
332
|
+
type: Database['public']['Enums']['offer_type'];
|
|
333
|
+
updatedAt: string;
|
|
334
|
+
updatedBy: string;
|
|
335
|
+
};
|
|
336
|
+
Insert: {
|
|
337
|
+
applicants: Json;
|
|
338
|
+
applicantsIds: string[];
|
|
339
|
+
createdAt: string;
|
|
340
|
+
createdBy: string;
|
|
341
|
+
deadlineAt?: string | null;
|
|
342
|
+
deletedAt?: string | null;
|
|
343
|
+
deletedBy?: string | null;
|
|
344
|
+
description: string;
|
|
345
|
+
event?: string | null;
|
|
346
|
+
group: string;
|
|
347
|
+
id: string;
|
|
348
|
+
instrument: string;
|
|
349
|
+
selectionClosedAt?: string | null;
|
|
350
|
+
selectionClosedBy?: string | null;
|
|
351
|
+
title: string;
|
|
352
|
+
type: Database['public']['Enums']['offer_type'];
|
|
353
|
+
updatedAt: string;
|
|
354
|
+
updatedBy: string;
|
|
355
|
+
};
|
|
356
|
+
Update: {
|
|
357
|
+
applicants?: Json;
|
|
358
|
+
applicantsIds?: string[];
|
|
359
|
+
createdAt?: string;
|
|
360
|
+
createdBy?: string;
|
|
361
|
+
deadlineAt?: string | null;
|
|
362
|
+
deletedAt?: string | null;
|
|
363
|
+
deletedBy?: string | null;
|
|
364
|
+
description?: string;
|
|
365
|
+
event?: string | null;
|
|
366
|
+
group?: string;
|
|
367
|
+
id?: string;
|
|
368
|
+
instrument?: string;
|
|
369
|
+
selectionClosedAt?: string | null;
|
|
370
|
+
selectionClosedBy?: string | null;
|
|
371
|
+
title?: string;
|
|
372
|
+
type?: Database['public']['Enums']['offer_type'];
|
|
373
|
+
updatedAt?: string;
|
|
374
|
+
updatedBy?: string;
|
|
375
|
+
};
|
|
376
|
+
Relationships: [
|
|
377
|
+
{
|
|
378
|
+
foreignKeyName: 'public_offer_event_fkey';
|
|
379
|
+
columns: ['event'];
|
|
380
|
+
referencedRelation: 'event';
|
|
381
|
+
referencedColumns: ['id'];
|
|
382
|
+
},
|
|
383
|
+
{
|
|
384
|
+
foreignKeyName: 'public_offer_group_fkey';
|
|
385
|
+
columns: ['group'];
|
|
386
|
+
referencedRelation: 'group';
|
|
387
|
+
referencedColumns: ['id'];
|
|
388
|
+
}
|
|
389
|
+
];
|
|
390
|
+
};
|
|
303
391
|
};
|
|
304
392
|
Views: {
|
|
305
393
|
[_ in never]: never;
|
|
@@ -315,6 +403,7 @@ export interface Database {
|
|
|
315
403
|
group_plan: 'piano' | 'mezzopiano' | 'mezzoforte' | 'forte' | 'fortissimo' | 'tutti';
|
|
316
404
|
group_plan_period: 'yearly' | 'monthly';
|
|
317
405
|
group_status: 'premium' | 'trial' | 'inactive' | 'deleted';
|
|
406
|
+
offer_type: 'group' | 'event';
|
|
318
407
|
social_network: 'facebook' | 'twitter' | 'instagram' | 'youtube';
|
|
319
408
|
};
|
|
320
409
|
CompositeTypes: {
|
|
@@ -37,6 +37,7 @@ export interface Database {
|
|
|
37
37
|
datetime: string;
|
|
38
38
|
datetimeEnd: string;
|
|
39
39
|
deletedAt: string | null;
|
|
40
|
+
deletedBy: string | null;
|
|
40
41
|
description: string | null;
|
|
41
42
|
descriptionSlate: Json[];
|
|
42
43
|
displayName: string | null;
|
|
@@ -82,6 +83,7 @@ export interface Database {
|
|
|
82
83
|
datetime: string;
|
|
83
84
|
datetimeEnd: string;
|
|
84
85
|
deletedAt?: string | null;
|
|
86
|
+
deletedBy?: string | null;
|
|
85
87
|
description?: string | null;
|
|
86
88
|
descriptionSlate: Json[];
|
|
87
89
|
displayName?: string | null;
|
|
@@ -127,6 +129,7 @@ export interface Database {
|
|
|
127
129
|
datetime?: string;
|
|
128
130
|
datetimeEnd?: string;
|
|
129
131
|
deletedAt?: string | null;
|
|
132
|
+
deletedBy?: string | null;
|
|
130
133
|
description?: string | null;
|
|
131
134
|
descriptionSlate?: Json[];
|
|
132
135
|
displayName?: string | null;
|
|
@@ -166,7 +169,7 @@ export interface Database {
|
|
|
166
169
|
};
|
|
167
170
|
Relationships: [
|
|
168
171
|
{
|
|
169
|
-
foreignKeyName: '
|
|
172
|
+
foreignKeyName: 'event_promoter_group_id_fkey';
|
|
170
173
|
columns: ['promoter'];
|
|
171
174
|
referencedRelation: 'group';
|
|
172
175
|
referencedColumns: ['id'];
|
|
@@ -185,6 +188,7 @@ export interface Database {
|
|
|
185
188
|
createdOn: Database['public']['Enums']['group_created_on'];
|
|
186
189
|
customerId: string | null;
|
|
187
190
|
deletedAt: string | null;
|
|
191
|
+
deletedBy: string | null;
|
|
188
192
|
description: string | null;
|
|
189
193
|
displayName: string;
|
|
190
194
|
id: string;
|
|
@@ -205,10 +209,12 @@ export interface Database {
|
|
|
205
209
|
playerIds: string[];
|
|
206
210
|
players: Json;
|
|
207
211
|
repertoireTags: Json;
|
|
212
|
+
rollcallLink: string | null;
|
|
208
213
|
satisfactionIndex: Json;
|
|
209
214
|
shortDynamicLink: string | null;
|
|
210
215
|
socialNetworks: Json | null;
|
|
211
216
|
status: Database['public']['Enums']['group_status'];
|
|
217
|
+
subscriptionId: string | null;
|
|
212
218
|
templates: Json;
|
|
213
219
|
trialEndAt: string | null;
|
|
214
220
|
updatedAt: string;
|
|
@@ -226,6 +232,7 @@ export interface Database {
|
|
|
226
232
|
createdOn: Database['public']['Enums']['group_created_on'];
|
|
227
233
|
customerId?: string | null;
|
|
228
234
|
deletedAt?: string | null;
|
|
235
|
+
deletedBy?: string | null;
|
|
229
236
|
description?: string | null;
|
|
230
237
|
displayName: string;
|
|
231
238
|
id: string;
|
|
@@ -246,10 +253,12 @@ export interface Database {
|
|
|
246
253
|
playerIds: string[];
|
|
247
254
|
players: Json;
|
|
248
255
|
repertoireTags: Json;
|
|
256
|
+
rollcallLink?: string | null;
|
|
249
257
|
satisfactionIndex: Json;
|
|
250
258
|
shortDynamicLink?: string | null;
|
|
251
259
|
socialNetworks?: Json | null;
|
|
252
260
|
status: Database['public']['Enums']['group_status'];
|
|
261
|
+
subscriptionId?: string | null;
|
|
253
262
|
templates: Json;
|
|
254
263
|
trialEndAt?: string | null;
|
|
255
264
|
updatedAt?: string;
|
|
@@ -267,6 +276,7 @@ export interface Database {
|
|
|
267
276
|
createdOn?: Database['public']['Enums']['group_created_on'];
|
|
268
277
|
customerId?: string | null;
|
|
269
278
|
deletedAt?: string | null;
|
|
279
|
+
deletedBy?: string | null;
|
|
270
280
|
description?: string | null;
|
|
271
281
|
displayName?: string;
|
|
272
282
|
id?: string;
|
|
@@ -287,10 +297,12 @@ export interface Database {
|
|
|
287
297
|
playerIds?: string[];
|
|
288
298
|
players?: Json;
|
|
289
299
|
repertoireTags?: Json;
|
|
300
|
+
rollcallLink?: string | null;
|
|
290
301
|
satisfactionIndex?: Json;
|
|
291
302
|
shortDynamicLink?: string | null;
|
|
292
303
|
socialNetworks?: Json | null;
|
|
293
304
|
status?: Database['public']['Enums']['group_status'];
|
|
305
|
+
subscriptionId?: string | null;
|
|
294
306
|
templates?: Json;
|
|
295
307
|
trialEndAt?: string | null;
|
|
296
308
|
updatedAt?: string;
|
|
@@ -299,6 +311,82 @@ export interface Database {
|
|
|
299
311
|
};
|
|
300
312
|
Relationships: [];
|
|
301
313
|
};
|
|
314
|
+
offer: {
|
|
315
|
+
Row: {
|
|
316
|
+
applicants: Json;
|
|
317
|
+
applicantsIds: string[];
|
|
318
|
+
createdAt: string;
|
|
319
|
+
createdBy: string;
|
|
320
|
+
deadlineAt: string | null;
|
|
321
|
+
deletedAt: string | null;
|
|
322
|
+
deletedBy: string | null;
|
|
323
|
+
description: string;
|
|
324
|
+
event: string | null;
|
|
325
|
+
group: string;
|
|
326
|
+
id: string;
|
|
327
|
+
instrument: string;
|
|
328
|
+
selectionClosedAt: string | null;
|
|
329
|
+
selectionClosedBy: string | null;
|
|
330
|
+
title: string;
|
|
331
|
+
type: Database['public']['Enums']['offer_type'];
|
|
332
|
+
updatedAt: string;
|
|
333
|
+
updatedBy: string;
|
|
334
|
+
};
|
|
335
|
+
Insert: {
|
|
336
|
+
applicants: Json;
|
|
337
|
+
applicantsIds: string[];
|
|
338
|
+
createdAt: string;
|
|
339
|
+
createdBy: string;
|
|
340
|
+
deadlineAt?: string | null;
|
|
341
|
+
deletedAt?: string | null;
|
|
342
|
+
deletedBy?: string | null;
|
|
343
|
+
description: string;
|
|
344
|
+
event?: string | null;
|
|
345
|
+
group: string;
|
|
346
|
+
id: string;
|
|
347
|
+
instrument: string;
|
|
348
|
+
selectionClosedAt?: string | null;
|
|
349
|
+
selectionClosedBy?: string | null;
|
|
350
|
+
title: string;
|
|
351
|
+
type: Database['public']['Enums']['offer_type'];
|
|
352
|
+
updatedAt: string;
|
|
353
|
+
updatedBy: string;
|
|
354
|
+
};
|
|
355
|
+
Update: {
|
|
356
|
+
applicants?: Json;
|
|
357
|
+
applicantsIds?: string[];
|
|
358
|
+
createdAt?: string;
|
|
359
|
+
createdBy?: string;
|
|
360
|
+
deadlineAt?: string | null;
|
|
361
|
+
deletedAt?: string | null;
|
|
362
|
+
deletedBy?: string | null;
|
|
363
|
+
description?: string;
|
|
364
|
+
event?: string | null;
|
|
365
|
+
group?: string;
|
|
366
|
+
id?: string;
|
|
367
|
+
instrument?: string;
|
|
368
|
+
selectionClosedAt?: string | null;
|
|
369
|
+
selectionClosedBy?: string | null;
|
|
370
|
+
title?: string;
|
|
371
|
+
type?: Database['public']['Enums']['offer_type'];
|
|
372
|
+
updatedAt?: string;
|
|
373
|
+
updatedBy?: string;
|
|
374
|
+
};
|
|
375
|
+
Relationships: [
|
|
376
|
+
{
|
|
377
|
+
foreignKeyName: 'public_offer_event_fkey';
|
|
378
|
+
columns: ['event'];
|
|
379
|
+
referencedRelation: 'event';
|
|
380
|
+
referencedColumns: ['id'];
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
foreignKeyName: 'public_offer_group_fkey';
|
|
384
|
+
columns: ['group'];
|
|
385
|
+
referencedRelation: 'group';
|
|
386
|
+
referencedColumns: ['id'];
|
|
387
|
+
}
|
|
388
|
+
];
|
|
389
|
+
};
|
|
302
390
|
};
|
|
303
391
|
Views: {
|
|
304
392
|
[_ in never]: never;
|
|
@@ -314,6 +402,7 @@ export interface Database {
|
|
|
314
402
|
group_plan: 'piano' | 'mezzopiano' | 'mezzoforte' | 'forte' | 'fortissimo' | 'tutti';
|
|
315
403
|
group_plan_period: 'yearly' | 'monthly';
|
|
316
404
|
group_status: 'premium' | 'trial' | 'inactive' | 'deleted';
|
|
405
|
+
offer_type: 'group' | 'event';
|
|
317
406
|
social_network: 'facebook' | 'twitter' | 'instagram' | 'youtube';
|
|
318
407
|
};
|
|
319
408
|
CompositeTypes: {
|
|
@@ -1,20 +1,15 @@
|
|
|
1
|
-
import { MergeDeep
|
|
1
|
+
import { MergeDeep } from 'type-fest';
|
|
2
2
|
import { Database as DatabaseGenerated } from './generated';
|
|
3
3
|
import { EventOverwrite } from './overwrites/event';
|
|
4
4
|
import { GroupOverwrite } from './overwrites/group';
|
|
5
|
+
import { OfferOverwrite } from './overwrites/offer';
|
|
6
|
+
import { Overwrite } from './overwrites';
|
|
5
7
|
export type Database = MergeDeep<DatabaseGenerated, {
|
|
6
8
|
public: {
|
|
7
9
|
Tables: {
|
|
8
|
-
group:
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
Update: Partial<GroupOverwrite>;
|
|
12
|
-
};
|
|
13
|
-
event: {
|
|
14
|
-
Row: EventOverwrite;
|
|
15
|
-
Insert: SetOptional<EventOverwrite, 'repeat' | 'stage'>;
|
|
16
|
-
Update: Partial<EventOverwrite>;
|
|
17
|
-
};
|
|
10
|
+
group: Overwrite<GroupOverwrite, 'configSites' | 'socialNetworks'>;
|
|
11
|
+
event: Overwrite<EventOverwrite, 'repeat' | 'stage'>;
|
|
12
|
+
offer: Overwrite<OfferOverwrite>;
|
|
18
13
|
};
|
|
19
14
|
};
|
|
20
15
|
}>;
|
package/types/supabase/index.ts
CHANGED
|
@@ -1,23 +1,18 @@
|
|
|
1
|
-
import { MergeDeep
|
|
1
|
+
import { MergeDeep } from 'type-fest';
|
|
2
2
|
import { Database as DatabaseGenerated } from './generated';
|
|
3
3
|
import { EventOverwrite } from './overwrites/event';
|
|
4
4
|
import { GroupOverwrite } from './overwrites/group';
|
|
5
|
+
import { OfferOverwrite } from './overwrites/offer';
|
|
6
|
+
import { Overwrite } from './overwrites';
|
|
5
7
|
|
|
6
8
|
export type Database = MergeDeep<
|
|
7
9
|
DatabaseGenerated,
|
|
8
10
|
{
|
|
9
11
|
public: {
|
|
10
12
|
Tables: {
|
|
11
|
-
group:
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
Update: Partial<GroupOverwrite>;
|
|
15
|
-
};
|
|
16
|
-
event: {
|
|
17
|
-
Row: EventOverwrite;
|
|
18
|
-
Insert: SetOptional<EventOverwrite, 'repeat' | 'stage'>;
|
|
19
|
-
Update: Partial<EventOverwrite>;
|
|
20
|
-
};
|
|
13
|
+
group: Overwrite<GroupOverwrite, 'configSites' | 'socialNetworks'>;
|
|
14
|
+
event: Overwrite<EventOverwrite, 'repeat' | 'stage'>;
|
|
15
|
+
offer: Overwrite<OfferOverwrite>;
|
|
21
16
|
};
|
|
22
17
|
};
|
|
23
18
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { InstrumentId } from '../../../helpers/instruments';
|
|
2
|
+
export interface OfferApplicantBasicData {
|
|
3
|
+
appliedAt: string;
|
|
4
|
+
selectedAt: string | null;
|
|
5
|
+
discardedAt: string | null;
|
|
6
|
+
message: string | null;
|
|
7
|
+
}
|
|
8
|
+
export interface OfferOverwrite {
|
|
9
|
+
instrument: InstrumentId;
|
|
10
|
+
applicants: Record<string, OfferApplicantBasicData>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { InstrumentId } from '../../../helpers/instruments';
|
|
2
|
+
|
|
3
|
+
export interface OfferApplicantBasicData {
|
|
4
|
+
appliedAt: string;
|
|
5
|
+
selectedAt: string | null;
|
|
6
|
+
discardedAt: string | null;
|
|
7
|
+
message: string | null;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface OfferOverwrite {
|
|
11
|
+
instrument: InstrumentId;
|
|
12
|
+
applicants: Record<string, OfferApplicantBasicData>;
|
|
13
|
+
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { AOfferApplicantBasicData } from './types';
|
|
2
|
-
export default class OfferApplicantBasic {
|
|
3
|
-
offerId: string;
|
|
4
|
-
protected data: AOfferApplicantBasicData;
|
|
5
|
-
constructor(offerId: string, data: AOfferApplicantBasicData);
|
|
6
|
-
get id(): string;
|
|
7
|
-
get username(): string;
|
|
8
|
-
get displayName(): string;
|
|
9
|
-
get photoURL(): string;
|
|
10
|
-
get appliedAt(): FirebaseFirestore.Timestamp;
|
|
11
|
-
get selectedAt(): FirebaseFirestore.Timestamp | null;
|
|
12
|
-
get isSelected(): boolean;
|
|
13
|
-
get discardedAt(): FirebaseFirestore.Timestamp | null;
|
|
14
|
-
get isDiscarded(): boolean;
|
|
15
|
-
get message(): string | null;
|
|
16
|
-
}
|