@grapadigital/shared-schemas 1.0.230 → 1.0.232
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/dist/schemas/action.schema.d.ts +2 -0
- package/dist/schemas/action.schema.js +5 -0
- package/dist/schemas/client.schema.d.ts +1 -1
- package/dist/schemas/client.schema.js +2 -0
- package/dist/schemas/content.schema.d.ts +9 -0
- package/dist/schemas/content.schema.js +8 -0
- package/dist/schemas/recruitment.schema.d.ts +6 -0
- package/dist/schemas/recruitment.schema.js +4 -0
- package/package.json +1 -1
- package/src/schemas/action.schema.ts +5 -0
- package/src/schemas/client.schema.ts +2 -0
- package/src/schemas/content.schema.ts +13 -0
- package/src/schemas/recruitment.schema.ts +8 -0
|
@@ -148,6 +148,8 @@ export declare class Action {
|
|
|
148
148
|
phases?: ActionPhase[];
|
|
149
149
|
/** Metas da Ação: mesmo { metric, value } e catálogo dos Tiers do cliente. Ver GD-691. */
|
|
150
150
|
goals?: ClientMetricGoal[];
|
|
151
|
+
/** Fora dos relatórios do cliente no Hub (total de campanhas, lista e métricas). */
|
|
152
|
+
hideFromReports?: boolean;
|
|
151
153
|
}
|
|
152
154
|
export declare const ActionSchema: MongooseSchema<Action, import("mongoose").Model<Action, any, any, any, import("mongoose").Document<unknown, any, Action, any, {}> & Action & Required<{
|
|
153
155
|
_id: Types.ObjectId;
|
|
@@ -368,6 +368,11 @@ __decorate([
|
|
|
368
368
|
(0, mongoose_1.Prop)({ type: [client_schema_1.ClientMetricGoalSchema], default: [] }),
|
|
369
369
|
__metadata("design:type", Array)
|
|
370
370
|
], Action.prototype, "goals", void 0);
|
|
371
|
+
__decorate([
|
|
372
|
+
(0, swagger_1.ApiProperty)({ required: false, default: false }),
|
|
373
|
+
(0, mongoose_1.Prop)({ type: Boolean, default: false }),
|
|
374
|
+
__metadata("design:type", Boolean)
|
|
375
|
+
], Action.prototype, "hideFromReports", void 0);
|
|
371
376
|
Action = __decorate([
|
|
372
377
|
(0, mongoose_1.Schema)({ timestamps: true })
|
|
373
378
|
], Action);
|
|
@@ -40,7 +40,7 @@ export type ClientCustomization = (typeof CLIENT_CUSTOMIZATION_VALUES)[number];
|
|
|
40
40
|
* `viralReachEngagementRate` é o limite de viral e só vale no Tier.
|
|
41
41
|
* Ver GD-687.
|
|
42
42
|
*/
|
|
43
|
-
export declare const CLIENT_GOAL_METRIC_VALUES: readonly ["potentialReach", "reachCount", "impressionCount", "engagementCount", "engagementRate", "reachEngagementRate", "qualifiedEngagementRate", "effectiveReach", "earnedMediaValue", "score", "costPerInfluency", "costPerImpact", "costPerEngagement", "savedCount", "shareCount", "videoCompletionRate", "viralReachEngagementRate"];
|
|
43
|
+
export declare const CLIENT_GOAL_METRIC_VALUES: readonly ["potentialReach", "reachCount", "impressionCount", "engagementCount", "engagementRate", "reachEngagementRate", "followersEngagementRate", "qualifiedEngagementRate", "effectiveReach", "earnedMediaValue", "score", "costPerInfluency", "costPerImpact", "costPerEngagement", "savedCount", "shareCount", "videoCompletionRate", "viralReachEngagementRate"];
|
|
44
44
|
export type ClientGoalMetric = (typeof CLIENT_GOAL_METRIC_VALUES)[number];
|
|
45
45
|
export type ClientGoalMetricUnit = 'count' | 'rate' | 'currency';
|
|
46
46
|
/** Unidade de cada métrica. `rate` é guardado como fração (0,10 = 10%). */
|
|
@@ -33,6 +33,7 @@ exports.CLIENT_GOAL_METRIC_VALUES = [
|
|
|
33
33
|
'engagementCount',
|
|
34
34
|
'engagementRate',
|
|
35
35
|
'reachEngagementRate',
|
|
36
|
+
'followersEngagementRate',
|
|
36
37
|
'qualifiedEngagementRate',
|
|
37
38
|
'effectiveReach',
|
|
38
39
|
'earnedMediaValue',
|
|
@@ -53,6 +54,7 @@ exports.CLIENT_GOAL_METRIC_UNITS = {
|
|
|
53
54
|
engagementCount: 'count',
|
|
54
55
|
engagementRate: 'rate',
|
|
55
56
|
reachEngagementRate: 'rate',
|
|
57
|
+
followersEngagementRate: 'rate',
|
|
56
58
|
qualifiedEngagementRate: 'rate',
|
|
57
59
|
effectiveReach: 'count',
|
|
58
60
|
earnedMediaValue: 'currency',
|
|
@@ -126,6 +126,15 @@ export declare class Metrics {
|
|
|
126
126
|
reachEngagementRate?: number | null;
|
|
127
127
|
/** Tx. de Engaj. por Seguidores: engagementCount ÷ potentialReach (fração). Ver GD-703. */
|
|
128
128
|
followersEngagementRate?: number | null;
|
|
129
|
+
/**
|
|
130
|
+
* Engajamento ponderado do Real E/R (pesos do genc): curtidas×1 + comentários
|
|
131
|
+
* curados×2 + compartilhamentos×3 + salvos×3 + respostas×2 + cliques×6 +
|
|
132
|
+
* toques×1. Comentário curado = alvo marca ou conteúdo, fora de spam. null em
|
|
133
|
+
* story, sem GenIA ou sem comentários classificados. Ver GD-720.
|
|
134
|
+
*/
|
|
135
|
+
curatedEngagementCount?: number | null;
|
|
136
|
+
/** Real E/R: curatedEngagementCount ÷ potentialReach (fração). Ver GD-720. */
|
|
137
|
+
curatedEngagementRate?: number | null;
|
|
129
138
|
/** Nome do Client.tiers pelo potentialReach do post; null sem Tiers ou fora das faixas. Ver GD-703. */
|
|
130
139
|
tier?: string | null;
|
|
131
140
|
/**
|
|
@@ -219,6 +219,14 @@ __decorate([
|
|
|
219
219
|
(0, mongoose_1.Prop)({ type: Number, required: false, default: null }),
|
|
220
220
|
__metadata("design:type", Object)
|
|
221
221
|
], Metrics.prototype, "followersEngagementRate", void 0);
|
|
222
|
+
__decorate([
|
|
223
|
+
(0, mongoose_1.Prop)({ type: Number, required: false, default: null }),
|
|
224
|
+
__metadata("design:type", Object)
|
|
225
|
+
], Metrics.prototype, "curatedEngagementCount", void 0);
|
|
226
|
+
__decorate([
|
|
227
|
+
(0, mongoose_1.Prop)({ type: Number, required: false, default: null }),
|
|
228
|
+
__metadata("design:type", Object)
|
|
229
|
+
], Metrics.prototype, "curatedEngagementRate", void 0);
|
|
222
230
|
__decorate([
|
|
223
231
|
(0, mongoose_1.Prop)({ type: String, required: false, default: null }),
|
|
224
232
|
__metadata("design:type", Object)
|
|
@@ -190,6 +190,12 @@ export declare class Scope {
|
|
|
190
190
|
optIn?: OptIn;
|
|
191
191
|
exchange?: Exchange;
|
|
192
192
|
exclusivity?: boolean;
|
|
193
|
+
/**
|
|
194
|
+
* Squad do Influenciador nesta Ação (ex.: "Team Galaxy", "Content Creator",
|
|
195
|
+
* "Tech"). Nasce com o Squad do Contrato e é editável no escopo; os filtros de
|
|
196
|
+
* Squad da Samsung no Hub usam este valor.
|
|
197
|
+
*/
|
|
198
|
+
squad?: string | null;
|
|
193
199
|
estimates?: ScopeEstimates;
|
|
194
200
|
}
|
|
195
201
|
export declare const ScopeSchema: MongooseSchema<Scope, import("mongoose").Model<Scope, any, any, any, import("mongoose").Document<unknown, any, Scope, any, {}> & Scope & {
|
|
@@ -286,6 +286,10 @@ __decorate([
|
|
|
286
286
|
(0, mongoose_1.Prop)({ required: false }),
|
|
287
287
|
__metadata("design:type", Boolean)
|
|
288
288
|
], Scope.prototype, "exclusivity", void 0);
|
|
289
|
+
__decorate([
|
|
290
|
+
(0, mongoose_1.Prop)({ type: String, required: false, default: null }),
|
|
291
|
+
__metadata("design:type", Object)
|
|
292
|
+
], Scope.prototype, "squad", void 0);
|
|
289
293
|
__decorate([
|
|
290
294
|
(0, mongoose_1.Prop)({ type: exports.ScopeEstimatesSchema, required: false }),
|
|
291
295
|
__metadata("design:type", ScopeEstimates)
|
package/package.json
CHANGED
|
@@ -324,6 +324,11 @@ export class Action {
|
|
|
324
324
|
@ApiProperty({ type: () => [ClientMetricGoal], required: false })
|
|
325
325
|
@Prop({ type: [ClientMetricGoalSchema], default: [] })
|
|
326
326
|
goals?: ClientMetricGoal[];
|
|
327
|
+
|
|
328
|
+
/** Fora dos relatórios do cliente no Hub (total de campanhas, lista e métricas). */
|
|
329
|
+
@ApiProperty({ required: false, default: false })
|
|
330
|
+
@Prop({ type: Boolean, default: false })
|
|
331
|
+
hideFromReports?: boolean;
|
|
327
332
|
}
|
|
328
333
|
|
|
329
334
|
export const ActionSchema = SchemaFactory.createForClass(Action);
|
|
@@ -32,6 +32,7 @@ export const CLIENT_GOAL_METRIC_VALUES = [
|
|
|
32
32
|
'engagementCount',
|
|
33
33
|
'engagementRate',
|
|
34
34
|
'reachEngagementRate',
|
|
35
|
+
'followersEngagementRate',
|
|
35
36
|
'qualifiedEngagementRate',
|
|
36
37
|
'effectiveReach',
|
|
37
38
|
'earnedMediaValue',
|
|
@@ -56,6 +57,7 @@ export const CLIENT_GOAL_METRIC_UNITS: Record<ClientGoalMetric, ClientGoalMetric
|
|
|
56
57
|
engagementCount: 'count',
|
|
57
58
|
engagementRate: 'rate',
|
|
58
59
|
reachEngagementRate: 'rate',
|
|
60
|
+
followersEngagementRate: 'rate',
|
|
59
61
|
qualifiedEngagementRate: 'rate',
|
|
60
62
|
effectiveReach: 'count',
|
|
61
63
|
earnedMediaValue: 'currency',
|
|
@@ -177,6 +177,19 @@ export class Metrics {
|
|
|
177
177
|
@Prop({ type: Number, required: false, default: null })
|
|
178
178
|
followersEngagementRate?: number | null;
|
|
179
179
|
|
|
180
|
+
/**
|
|
181
|
+
* Engajamento ponderado do Real E/R (pesos do genc): curtidas×1 + comentários
|
|
182
|
+
* curados×2 + compartilhamentos×3 + salvos×3 + respostas×2 + cliques×6 +
|
|
183
|
+
* toques×1. Comentário curado = alvo marca ou conteúdo, fora de spam. null em
|
|
184
|
+
* story, sem GenIA ou sem comentários classificados. Ver GD-720.
|
|
185
|
+
*/
|
|
186
|
+
@Prop({ type: Number, required: false, default: null })
|
|
187
|
+
curatedEngagementCount?: number | null;
|
|
188
|
+
|
|
189
|
+
/** Real E/R: curatedEngagementCount ÷ potentialReach (fração). Ver GD-720. */
|
|
190
|
+
@Prop({ type: Number, required: false, default: null })
|
|
191
|
+
curatedEngagementRate?: number | null;
|
|
192
|
+
|
|
180
193
|
/** Nome do Client.tiers pelo potentialReach do post; null sem Tiers ou fora das faixas. Ver GD-703. */
|
|
181
194
|
@Prop({ type: String, required: false, default: null })
|
|
182
195
|
tier?: string | null;
|
|
@@ -184,6 +184,14 @@ export class Scope {
|
|
|
184
184
|
@Prop({ required: false })
|
|
185
185
|
exclusivity?: boolean;
|
|
186
186
|
|
|
187
|
+
/**
|
|
188
|
+
* Squad do Influenciador nesta Ação (ex.: "Team Galaxy", "Content Creator",
|
|
189
|
+
* "Tech"). Nasce com o Squad do Contrato e é editável no escopo; os filtros de
|
|
190
|
+
* Squad da Samsung no Hub usam este valor.
|
|
191
|
+
*/
|
|
192
|
+
@Prop({ type: String, required: false, default: null })
|
|
193
|
+
squad?: string | null;
|
|
194
|
+
|
|
187
195
|
@Prop({ type: ScopeEstimatesSchema, required: false })
|
|
188
196
|
estimates?: ScopeEstimates;
|
|
189
197
|
}
|