@grapadigital/shared-schemas 1.0.218 → 1.0.219
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.
|
@@ -34,6 +34,17 @@ export type ClientDocument = HydratedDocument<Client>;
|
|
|
34
34
|
*/
|
|
35
35
|
export declare const CLIENT_CUSTOMIZATION_VALUES: readonly ["samsung"];
|
|
36
36
|
export type ClientCustomization = (typeof CLIENT_CUSTOMIZATION_VALUES)[number];
|
|
37
|
+
/**
|
|
38
|
+
* Catálogo de métricas que podem virar meta no Tier ou na Meta anual do
|
|
39
|
+
* cliente. Quem cadastra escolhe a métrica e o valor; nada fica fixo.
|
|
40
|
+
* `viralReachEngagementRate` é o limite de viral e só vale no Tier.
|
|
41
|
+
* Ver GD-687.
|
|
42
|
+
*/
|
|
43
|
+
export declare const CLIENT_GOAL_METRIC_VALUES: readonly ["potentialReach", "reachCount", "impressionCount", "engagementCount", "engagementRate", "reachEngagementRate", "qualifiedEngagementRate", "effectiveReach", "emv", "score", "cpmi", "cpi", "cpe", "viralReachEngagementRate"];
|
|
44
|
+
export type ClientGoalMetric = (typeof CLIENT_GOAL_METRIC_VALUES)[number];
|
|
45
|
+
export type ClientGoalMetricUnit = 'count' | 'rate' | 'currency';
|
|
46
|
+
/** Unidade de cada métrica. `rate` é guardado como fração (0,10 = 10%). */
|
|
47
|
+
export declare const CLIENT_GOAL_METRIC_UNITS: Record<ClientGoalMetric, ClientGoalMetricUnit>;
|
|
37
48
|
export declare class Cluster {
|
|
38
49
|
key: string;
|
|
39
50
|
label: string;
|
|
@@ -74,6 +85,56 @@ export declare const CommissionRangeSchema: MongooseSchema<CommissionRange, impo
|
|
|
74
85
|
} & {
|
|
75
86
|
__v: number;
|
|
76
87
|
}>;
|
|
88
|
+
export declare class ClientMetricGoal {
|
|
89
|
+
metric: ClientGoalMetric;
|
|
90
|
+
/** Na unidade da métrica (`CLIENT_GOAL_METRIC_UNITS`); `rate` em fração. */
|
|
91
|
+
value: number;
|
|
92
|
+
}
|
|
93
|
+
export declare const ClientMetricGoalSchema: MongooseSchema<ClientMetricGoal, import("mongoose").Model<ClientMetricGoal, any, any, any, import("mongoose").Document<unknown, any, ClientMetricGoal, any, {}> & ClientMetricGoal & {
|
|
94
|
+
_id: Types.ObjectId;
|
|
95
|
+
} & {
|
|
96
|
+
__v: number;
|
|
97
|
+
}, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, ClientMetricGoal, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<ClientMetricGoal>, {}, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & import("mongoose").FlatRecord<ClientMetricGoal> & {
|
|
98
|
+
_id: Types.ObjectId;
|
|
99
|
+
} & {
|
|
100
|
+
__v: number;
|
|
101
|
+
}>;
|
|
102
|
+
/**
|
|
103
|
+
* Faixa de seguidores do cliente com as metas dela (ex.: Micro, Macro, Hero,
|
|
104
|
+
* Icon da Samsung). O Tier é do cliente, não do Influenciador: para mudar a
|
|
105
|
+
* meta, edita o Tier. Faixas inclusivas nas duas pontas, contínuas e sem
|
|
106
|
+
* sobreposição (validado na api-entities). Ver GD-687.
|
|
107
|
+
*/
|
|
108
|
+
export declare class ClientTier {
|
|
109
|
+
name: string;
|
|
110
|
+
minFollowers: number;
|
|
111
|
+
/** `null` = sem teto (só o último Tier). */
|
|
112
|
+
maxFollowers?: number | null;
|
|
113
|
+
goals: ClientMetricGoal[];
|
|
114
|
+
}
|
|
115
|
+
export declare const ClientTierSchema: MongooseSchema<ClientTier, import("mongoose").Model<ClientTier, any, any, any, import("mongoose").Document<unknown, any, ClientTier, any, {}> & ClientTier & {
|
|
116
|
+
_id: Types.ObjectId;
|
|
117
|
+
} & {
|
|
118
|
+
__v: number;
|
|
119
|
+
}, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, ClientTier, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<ClientTier>, {}, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & import("mongoose").FlatRecord<ClientTier> & {
|
|
120
|
+
_id: Types.ObjectId;
|
|
121
|
+
} & {
|
|
122
|
+
__v: number;
|
|
123
|
+
}>;
|
|
124
|
+
/** Metas do cliente num ano (alimentam os cards do gen_ia). Ver GD-687. */
|
|
125
|
+
export declare class ClientAnnualGoal {
|
|
126
|
+
year: number;
|
|
127
|
+
goals: ClientMetricGoal[];
|
|
128
|
+
}
|
|
129
|
+
export declare const ClientAnnualGoalSchema: MongooseSchema<ClientAnnualGoal, import("mongoose").Model<ClientAnnualGoal, any, any, any, import("mongoose").Document<unknown, any, ClientAnnualGoal, any, {}> & ClientAnnualGoal & {
|
|
130
|
+
_id: Types.ObjectId;
|
|
131
|
+
} & {
|
|
132
|
+
__v: number;
|
|
133
|
+
}, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, ClientAnnualGoal, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<ClientAnnualGoal>, {}, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & import("mongoose").FlatRecord<ClientAnnualGoal> & {
|
|
134
|
+
_id: Types.ObjectId;
|
|
135
|
+
} & {
|
|
136
|
+
__v: number;
|
|
137
|
+
}>;
|
|
77
138
|
export declare class AgencyCommissionPeriod {
|
|
78
139
|
ranges: CommissionRange[];
|
|
79
140
|
startDate: Date;
|
|
@@ -149,6 +210,10 @@ export declare class Client extends Party {
|
|
|
149
210
|
* Ver GD-683.
|
|
150
211
|
*/
|
|
151
212
|
customization?: ClientCustomization | null;
|
|
213
|
+
/** Tiers do cliente (só com Personalização Samsung por enquanto). Ver GD-687. */
|
|
214
|
+
tiers: ClientTier[];
|
|
215
|
+
/** Metas anuais do cliente (só com Personalização Samsung por enquanto). Ver GD-687. */
|
|
216
|
+
annualGoals: ClientAnnualGoal[];
|
|
152
217
|
/**
|
|
153
218
|
* Client de organização (ex.: "Oma Creators"): representa a organização
|
|
154
219
|
* inteira, não uma marca. No hub, mostra todas as actions dessa organização
|
|
@@ -9,7 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.ClientModel = exports.ClientSchema = exports.Client = exports.ClientResponsibleSchema = exports.ClientResponsible = exports.NicheItemSchema = exports.NicheItem = exports.AgencyCommissionPeriodSchema = exports.AgencyCommissionPeriod = exports.CommissionRangeSchema = exports.CommissionRange = exports.CompanySchema = exports.Company = exports.ClusterSchema = exports.Cluster = exports.CLIENT_CUSTOMIZATION_VALUES = void 0;
|
|
12
|
+
exports.ClientModel = exports.ClientSchema = exports.Client = exports.ClientResponsibleSchema = exports.ClientResponsible = exports.NicheItemSchema = exports.NicheItem = exports.AgencyCommissionPeriodSchema = exports.AgencyCommissionPeriod = exports.ClientAnnualGoalSchema = exports.ClientAnnualGoal = exports.ClientTierSchema = exports.ClientTier = exports.ClientMetricGoalSchema = exports.ClientMetricGoal = exports.CommissionRangeSchema = exports.CommissionRange = exports.CompanySchema = exports.Company = exports.ClusterSchema = exports.Cluster = exports.CLIENT_GOAL_METRIC_UNITS = exports.CLIENT_GOAL_METRIC_VALUES = exports.CLIENT_CUSTOMIZATION_VALUES = void 0;
|
|
13
13
|
const mongoose_1 = require("@nestjs/mongoose");
|
|
14
14
|
const swagger_1 = require("@nestjs/swagger");
|
|
15
15
|
const mongoose_2 = require("mongoose");
|
|
@@ -20,6 +20,45 @@ const responsible_schema_1 = require("./responsible.schema");
|
|
|
20
20
|
* Ver GD-683.
|
|
21
21
|
*/
|
|
22
22
|
exports.CLIENT_CUSTOMIZATION_VALUES = ['samsung'];
|
|
23
|
+
/**
|
|
24
|
+
* Catálogo de métricas que podem virar meta no Tier ou na Meta anual do
|
|
25
|
+
* cliente. Quem cadastra escolhe a métrica e o valor; nada fica fixo.
|
|
26
|
+
* `viralReachEngagementRate` é o limite de viral e só vale no Tier.
|
|
27
|
+
* Ver GD-687.
|
|
28
|
+
*/
|
|
29
|
+
exports.CLIENT_GOAL_METRIC_VALUES = [
|
|
30
|
+
'potentialReach',
|
|
31
|
+
'reachCount',
|
|
32
|
+
'impressionCount',
|
|
33
|
+
'engagementCount',
|
|
34
|
+
'engagementRate',
|
|
35
|
+
'reachEngagementRate',
|
|
36
|
+
'qualifiedEngagementRate',
|
|
37
|
+
'effectiveReach',
|
|
38
|
+
'emv',
|
|
39
|
+
'score',
|
|
40
|
+
'cpmi',
|
|
41
|
+
'cpi',
|
|
42
|
+
'cpe',
|
|
43
|
+
'viralReachEngagementRate',
|
|
44
|
+
];
|
|
45
|
+
/** Unidade de cada métrica. `rate` é guardado como fração (0,10 = 10%). */
|
|
46
|
+
exports.CLIENT_GOAL_METRIC_UNITS = {
|
|
47
|
+
potentialReach: 'count',
|
|
48
|
+
reachCount: 'count',
|
|
49
|
+
impressionCount: 'count',
|
|
50
|
+
engagementCount: 'count',
|
|
51
|
+
engagementRate: 'rate',
|
|
52
|
+
reachEngagementRate: 'rate',
|
|
53
|
+
qualifiedEngagementRate: 'rate',
|
|
54
|
+
effectiveReach: 'count',
|
|
55
|
+
emv: 'currency',
|
|
56
|
+
score: 'count',
|
|
57
|
+
cpmi: 'currency',
|
|
58
|
+
cpi: 'currency',
|
|
59
|
+
cpe: 'currency',
|
|
60
|
+
viralReachEngagementRate: 'rate',
|
|
61
|
+
};
|
|
23
62
|
let Cluster = class Cluster {
|
|
24
63
|
};
|
|
25
64
|
__decorate([
|
|
@@ -69,6 +108,66 @@ CommissionRange = __decorate([
|
|
|
69
108
|
], CommissionRange);
|
|
70
109
|
exports.CommissionRange = CommissionRange;
|
|
71
110
|
exports.CommissionRangeSchema = mongoose_1.SchemaFactory.createForClass(CommissionRange);
|
|
111
|
+
let ClientMetricGoal = class ClientMetricGoal {
|
|
112
|
+
};
|
|
113
|
+
__decorate([
|
|
114
|
+
(0, mongoose_1.Prop)({ type: String, enum: exports.CLIENT_GOAL_METRIC_VALUES, required: true }),
|
|
115
|
+
__metadata("design:type", String)
|
|
116
|
+
], ClientMetricGoal.prototype, "metric", void 0);
|
|
117
|
+
__decorate([
|
|
118
|
+
(0, mongoose_1.Prop)({ type: Number, required: true }),
|
|
119
|
+
__metadata("design:type", Number)
|
|
120
|
+
], ClientMetricGoal.prototype, "value", void 0);
|
|
121
|
+
ClientMetricGoal = __decorate([
|
|
122
|
+
(0, mongoose_1.Schema)({ _id: false })
|
|
123
|
+
], ClientMetricGoal);
|
|
124
|
+
exports.ClientMetricGoal = ClientMetricGoal;
|
|
125
|
+
exports.ClientMetricGoalSchema = mongoose_1.SchemaFactory.createForClass(ClientMetricGoal);
|
|
126
|
+
/**
|
|
127
|
+
* Faixa de seguidores do cliente com as metas dela (ex.: Micro, Macro, Hero,
|
|
128
|
+
* Icon da Samsung). O Tier é do cliente, não do Influenciador: para mudar a
|
|
129
|
+
* meta, edita o Tier. Faixas inclusivas nas duas pontas, contínuas e sem
|
|
130
|
+
* sobreposição (validado na api-entities). Ver GD-687.
|
|
131
|
+
*/
|
|
132
|
+
let ClientTier = class ClientTier {
|
|
133
|
+
};
|
|
134
|
+
__decorate([
|
|
135
|
+
(0, mongoose_1.Prop)({ type: String, required: true }),
|
|
136
|
+
__metadata("design:type", String)
|
|
137
|
+
], ClientTier.prototype, "name", void 0);
|
|
138
|
+
__decorate([
|
|
139
|
+
(0, mongoose_1.Prop)({ type: Number, required: true }),
|
|
140
|
+
__metadata("design:type", Number)
|
|
141
|
+
], ClientTier.prototype, "minFollowers", void 0);
|
|
142
|
+
__decorate([
|
|
143
|
+
(0, mongoose_1.Prop)({ type: Number, required: false, default: null }),
|
|
144
|
+
__metadata("design:type", Object)
|
|
145
|
+
], ClientTier.prototype, "maxFollowers", void 0);
|
|
146
|
+
__decorate([
|
|
147
|
+
(0, mongoose_1.Prop)({ type: [exports.ClientMetricGoalSchema], default: [] }),
|
|
148
|
+
__metadata("design:type", Array)
|
|
149
|
+
], ClientTier.prototype, "goals", void 0);
|
|
150
|
+
ClientTier = __decorate([
|
|
151
|
+
(0, mongoose_1.Schema)({ _id: false })
|
|
152
|
+
], ClientTier);
|
|
153
|
+
exports.ClientTier = ClientTier;
|
|
154
|
+
exports.ClientTierSchema = mongoose_1.SchemaFactory.createForClass(ClientTier);
|
|
155
|
+
/** Metas do cliente num ano (alimentam os cards do gen_ia). Ver GD-687. */
|
|
156
|
+
let ClientAnnualGoal = class ClientAnnualGoal {
|
|
157
|
+
};
|
|
158
|
+
__decorate([
|
|
159
|
+
(0, mongoose_1.Prop)({ type: Number, required: true }),
|
|
160
|
+
__metadata("design:type", Number)
|
|
161
|
+
], ClientAnnualGoal.prototype, "year", void 0);
|
|
162
|
+
__decorate([
|
|
163
|
+
(0, mongoose_1.Prop)({ type: [exports.ClientMetricGoalSchema], default: [] }),
|
|
164
|
+
__metadata("design:type", Array)
|
|
165
|
+
], ClientAnnualGoal.prototype, "goals", void 0);
|
|
166
|
+
ClientAnnualGoal = __decorate([
|
|
167
|
+
(0, mongoose_1.Schema)({ _id: false })
|
|
168
|
+
], ClientAnnualGoal);
|
|
169
|
+
exports.ClientAnnualGoal = ClientAnnualGoal;
|
|
170
|
+
exports.ClientAnnualGoalSchema = mongoose_1.SchemaFactory.createForClass(ClientAnnualGoal);
|
|
72
171
|
let AgencyCommissionPeriod = class AgencyCommissionPeriod {
|
|
73
172
|
};
|
|
74
173
|
__decorate([
|
|
@@ -178,6 +277,14 @@ __decorate([
|
|
|
178
277
|
(0, mongoose_1.Prop)({ type: String, enum: exports.CLIENT_CUSTOMIZATION_VALUES, required: false, default: null }),
|
|
179
278
|
__metadata("design:type", Object)
|
|
180
279
|
], Client.prototype, "customization", void 0);
|
|
280
|
+
__decorate([
|
|
281
|
+
(0, mongoose_1.Prop)({ type: [exports.ClientTierSchema], default: [] }),
|
|
282
|
+
__metadata("design:type", Array)
|
|
283
|
+
], Client.prototype, "tiers", void 0);
|
|
284
|
+
__decorate([
|
|
285
|
+
(0, mongoose_1.Prop)({ type: [exports.ClientAnnualGoalSchema], default: [] }),
|
|
286
|
+
__metadata("design:type", Array)
|
|
287
|
+
], Client.prototype, "annualGoals", void 0);
|
|
181
288
|
__decorate([
|
|
182
289
|
(0, mongoose_1.Prop)({ type: mongoose_2.Schema.Types.ObjectId, ref: 'Organization', required: false }),
|
|
183
290
|
__metadata("design:type", mongoose_2.Types.ObjectId)
|
package/package.json
CHANGED
|
@@ -19,6 +19,50 @@ export type ClientDocument = HydratedDocument<Client>;
|
|
|
19
19
|
export const CLIENT_CUSTOMIZATION_VALUES = ['samsung'] as const;
|
|
20
20
|
export type ClientCustomization = (typeof CLIENT_CUSTOMIZATION_VALUES)[number];
|
|
21
21
|
|
|
22
|
+
/**
|
|
23
|
+
* Catálogo de métricas que podem virar meta no Tier ou na Meta anual do
|
|
24
|
+
* cliente. Quem cadastra escolhe a métrica e o valor; nada fica fixo.
|
|
25
|
+
* `viralReachEngagementRate` é o limite de viral e só vale no Tier.
|
|
26
|
+
* Ver GD-687.
|
|
27
|
+
*/
|
|
28
|
+
export const CLIENT_GOAL_METRIC_VALUES = [
|
|
29
|
+
'potentialReach',
|
|
30
|
+
'reachCount',
|
|
31
|
+
'impressionCount',
|
|
32
|
+
'engagementCount',
|
|
33
|
+
'engagementRate',
|
|
34
|
+
'reachEngagementRate',
|
|
35
|
+
'qualifiedEngagementRate',
|
|
36
|
+
'effectiveReach',
|
|
37
|
+
'emv',
|
|
38
|
+
'score',
|
|
39
|
+
'cpmi',
|
|
40
|
+
'cpi',
|
|
41
|
+
'cpe',
|
|
42
|
+
'viralReachEngagementRate',
|
|
43
|
+
] as const;
|
|
44
|
+
export type ClientGoalMetric = (typeof CLIENT_GOAL_METRIC_VALUES)[number];
|
|
45
|
+
|
|
46
|
+
export type ClientGoalMetricUnit = 'count' | 'rate' | 'currency';
|
|
47
|
+
|
|
48
|
+
/** Unidade de cada métrica. `rate` é guardado como fração (0,10 = 10%). */
|
|
49
|
+
export const CLIENT_GOAL_METRIC_UNITS: Record<ClientGoalMetric, ClientGoalMetricUnit> = {
|
|
50
|
+
potentialReach: 'count',
|
|
51
|
+
reachCount: 'count',
|
|
52
|
+
impressionCount: 'count',
|
|
53
|
+
engagementCount: 'count',
|
|
54
|
+
engagementRate: 'rate',
|
|
55
|
+
reachEngagementRate: 'rate',
|
|
56
|
+
qualifiedEngagementRate: 'rate',
|
|
57
|
+
effectiveReach: 'count',
|
|
58
|
+
emv: 'currency',
|
|
59
|
+
score: 'count',
|
|
60
|
+
cpmi: 'currency',
|
|
61
|
+
cpi: 'currency',
|
|
62
|
+
cpe: 'currency',
|
|
63
|
+
viralReachEngagementRate: 'rate',
|
|
64
|
+
};
|
|
65
|
+
|
|
22
66
|
@Schema({ _id: false })
|
|
23
67
|
export class Cluster {
|
|
24
68
|
@Prop({ required: true })
|
|
@@ -55,6 +99,54 @@ export class CommissionRange {
|
|
|
55
99
|
|
|
56
100
|
export const CommissionRangeSchema = SchemaFactory.createForClass(CommissionRange);
|
|
57
101
|
|
|
102
|
+
@Schema({ _id: false })
|
|
103
|
+
export class ClientMetricGoal {
|
|
104
|
+
@Prop({ type: String, enum: CLIENT_GOAL_METRIC_VALUES, required: true })
|
|
105
|
+
metric: ClientGoalMetric;
|
|
106
|
+
|
|
107
|
+
/** Na unidade da métrica (`CLIENT_GOAL_METRIC_UNITS`); `rate` em fração. */
|
|
108
|
+
@Prop({ type: Number, required: true })
|
|
109
|
+
value: number;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
export const ClientMetricGoalSchema = SchemaFactory.createForClass(ClientMetricGoal);
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Faixa de seguidores do cliente com as metas dela (ex.: Micro, Macro, Hero,
|
|
116
|
+
* Icon da Samsung). O Tier é do cliente, não do Influenciador: para mudar a
|
|
117
|
+
* meta, edita o Tier. Faixas inclusivas nas duas pontas, contínuas e sem
|
|
118
|
+
* sobreposição (validado na api-entities). Ver GD-687.
|
|
119
|
+
*/
|
|
120
|
+
@Schema({ _id: false })
|
|
121
|
+
export class ClientTier {
|
|
122
|
+
@Prop({ type: String, required: true })
|
|
123
|
+
name: string;
|
|
124
|
+
|
|
125
|
+
@Prop({ type: Number, required: true })
|
|
126
|
+
minFollowers: number;
|
|
127
|
+
|
|
128
|
+
/** `null` = sem teto (só o último Tier). */
|
|
129
|
+
@Prop({ type: Number, required: false, default: null })
|
|
130
|
+
maxFollowers?: number | null;
|
|
131
|
+
|
|
132
|
+
@Prop({ type: [ClientMetricGoalSchema], default: [] })
|
|
133
|
+
goals: ClientMetricGoal[];
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
export const ClientTierSchema = SchemaFactory.createForClass(ClientTier);
|
|
137
|
+
|
|
138
|
+
/** Metas do cliente num ano (alimentam os cards do gen_ia). Ver GD-687. */
|
|
139
|
+
@Schema({ _id: false })
|
|
140
|
+
export class ClientAnnualGoal {
|
|
141
|
+
@Prop({ type: Number, required: true })
|
|
142
|
+
year: number;
|
|
143
|
+
|
|
144
|
+
@Prop({ type: [ClientMetricGoalSchema], default: [] })
|
|
145
|
+
goals: ClientMetricGoal[];
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
export const ClientAnnualGoalSchema = SchemaFactory.createForClass(ClientAnnualGoal);
|
|
149
|
+
|
|
58
150
|
@Schema({ _id: false })
|
|
59
151
|
export class AgencyCommissionPeriod {
|
|
60
152
|
@Prop({ type: [CommissionRangeSchema], required: true, default: [] })
|
|
@@ -157,6 +249,14 @@ export class Client extends Party {
|
|
|
157
249
|
@Prop({ type: String, enum: CLIENT_CUSTOMIZATION_VALUES, required: false, default: null })
|
|
158
250
|
customization?: ClientCustomization | null;
|
|
159
251
|
|
|
252
|
+
/** Tiers do cliente (só com Personalização Samsung por enquanto). Ver GD-687. */
|
|
253
|
+
@Prop({ type: [ClientTierSchema], default: [] })
|
|
254
|
+
tiers: ClientTier[];
|
|
255
|
+
|
|
256
|
+
/** Metas anuais do cliente (só com Personalização Samsung por enquanto). Ver GD-687. */
|
|
257
|
+
@Prop({ type: [ClientAnnualGoalSchema], default: [] })
|
|
258
|
+
annualGoals: ClientAnnualGoal[];
|
|
259
|
+
|
|
160
260
|
/**
|
|
161
261
|
* Client de organização (ex.: "Oma Creators"): representa a organização
|
|
162
262
|
* inteira, não uma marca. No hub, mostra todas as actions dessa organização
|