@grapadigital/shared-schemas 1.0.238 → 1.0.239
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.
|
@@ -277,6 +277,9 @@ export declare const CONTENT_REPORTABLE_STATUS_VALUES: ContentStatus[];
|
|
|
277
277
|
export declare const CONTENT_COMMENT_COUNT_SOURCE_VALUES: readonly ["primetag", "exportcomments"];
|
|
278
278
|
export type ContentCommentCountSource = (typeof CONTENT_COMMENT_COUNT_SOURCE_VALUES)[number];
|
|
279
279
|
export declare const CONTENT_METRICS_SOURCE_VALUES: readonly ["real", "organic", "estimated"];
|
|
280
|
+
/** Quem criou o Conteúdo (metricsFile = Métricas por arquivo, ainda sem uso). Ver GD-767. */
|
|
281
|
+
export declare const CONTENT_ORIGIN_VALUES: readonly ["primetag", "manual", "tagger", "metricsFile"];
|
|
282
|
+
export type ContentOrigin = (typeof CONTENT_ORIGIN_VALUES)[number];
|
|
280
283
|
/** Origem do Tipo e da Fase: auto = regra da captura, manual = quem revisou. Ver GD-691. */
|
|
281
284
|
export declare const CONTENT_CLASSIFICATION_SOURCE_VALUES: readonly ["auto", "manual"];
|
|
282
285
|
export type ContentClassificationSource = (typeof CONTENT_CLASSIFICATION_SOURCE_VALUES)[number];
|
|
@@ -331,6 +334,13 @@ export declare class Content {
|
|
|
331
334
|
createdAt?: Date;
|
|
332
335
|
updatedAt?: Date;
|
|
333
336
|
primetagId?: string;
|
|
337
|
+
/**
|
|
338
|
+
* Quem criou o Conteúdo. A Tagger pode assumir um existente, e a captura da
|
|
339
|
+
* Primetag não toca Conteúdo da Tagger. Ver GD-767.
|
|
340
|
+
*/
|
|
341
|
+
origin?: ContentOrigin | null;
|
|
342
|
+
/** id do post na Tagger (import de JSON, GD-767). */
|
|
343
|
+
taggerId?: string | null;
|
|
334
344
|
captureRunId?: string;
|
|
335
345
|
sentimentAnalysis?: SentimentAnalysis | null;
|
|
336
346
|
thumbnailUrl?: string;
|
|
@@ -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.ContentModel = exports.ContentSchema = exports.Content = exports.ContentStatusChangedBySchema = exports.ContentStatusChangedBy = exports.CONTENT_CLASSIFICATION_SOURCE_VALUES = exports.CONTENT_METRICS_SOURCE_VALUES = exports.CONTENT_COMMENT_COUNT_SOURCE_VALUES = exports.CONTENT_REPORTABLE_STATUS_VALUES = exports.CONTENT_STATUS_VALUES = exports.EstimatedMetricsSchema = exports.EstimatedMetrics = exports.ContentMetricsHistoryEntrySchema = exports.ContentMetricsHistoryEntry = exports.ContentVideoSchema = exports.ContentVideo = exports.ContentMetricsBreakdownSchema = exports.ContentMetricsBreakdown = exports.ContentBaseMetricsSchema = exports.ContentBaseMetrics = exports.CONTENT_BASE_METRIC_KEYS = exports.ContentCollabSchema = exports.ContentCollab = exports.MetricsSchema = exports.Metrics = exports.SentimentAnalysisSchema = exports.SentimentAnalysis = exports.SentimentScoreSchema = exports.SentimentScore = exports.WordCloudSchema = exports.WordCloud = exports.SentimentCommentSchema = exports.SentimentComment = void 0;
|
|
12
|
+
exports.ContentModel = exports.ContentSchema = exports.Content = exports.ContentStatusChangedBySchema = exports.ContentStatusChangedBy = exports.CONTENT_CLASSIFICATION_SOURCE_VALUES = exports.CONTENT_ORIGIN_VALUES = exports.CONTENT_METRICS_SOURCE_VALUES = exports.CONTENT_COMMENT_COUNT_SOURCE_VALUES = exports.CONTENT_REPORTABLE_STATUS_VALUES = exports.CONTENT_STATUS_VALUES = exports.EstimatedMetricsSchema = exports.EstimatedMetrics = exports.ContentMetricsHistoryEntrySchema = exports.ContentMetricsHistoryEntry = exports.ContentVideoSchema = exports.ContentVideo = exports.ContentMetricsBreakdownSchema = exports.ContentMetricsBreakdown = exports.ContentBaseMetricsSchema = exports.ContentBaseMetrics = exports.CONTENT_BASE_METRIC_KEYS = exports.ContentCollabSchema = exports.ContentCollab = exports.MetricsSchema = exports.Metrics = exports.SentimentAnalysisSchema = exports.SentimentAnalysis = exports.SentimentScoreSchema = exports.SentimentScore = exports.WordCloudSchema = exports.WordCloud = exports.SentimentCommentSchema = exports.SentimentComment = void 0;
|
|
13
13
|
const mongoose_1 = require("@nestjs/mongoose");
|
|
14
14
|
const mongoose_2 = require("mongoose");
|
|
15
15
|
const normalize_content_link_util_1 = require("../utils/normalize-content-link.util");
|
|
@@ -457,6 +457,8 @@ exports.CONTENT_REPORTABLE_STATUS_VALUES = [
|
|
|
457
457
|
];
|
|
458
458
|
exports.CONTENT_COMMENT_COUNT_SOURCE_VALUES = ['primetag', 'exportcomments'];
|
|
459
459
|
exports.CONTENT_METRICS_SOURCE_VALUES = ['real', 'organic', 'estimated'];
|
|
460
|
+
/** Quem criou o Conteúdo (metricsFile = Métricas por arquivo, ainda sem uso). Ver GD-767. */
|
|
461
|
+
exports.CONTENT_ORIGIN_VALUES = ['primetag', 'manual', 'tagger', 'metricsFile'];
|
|
460
462
|
/** Origem do Tipo e da Fase: auto = regra da captura, manual = quem revisou. Ver GD-691. */
|
|
461
463
|
exports.CONTENT_CLASSIFICATION_SOURCE_VALUES = ['auto', 'manual'];
|
|
462
464
|
let ContentStatusChangedBy = class ContentStatusChangedBy {
|
|
@@ -613,6 +615,14 @@ __decorate([
|
|
|
613
615
|
(0, mongoose_1.Prop)({ type: String, required: false }),
|
|
614
616
|
__metadata("design:type", String)
|
|
615
617
|
], Content.prototype, "primetagId", void 0);
|
|
618
|
+
__decorate([
|
|
619
|
+
(0, mongoose_1.Prop)({ type: String, enum: exports.CONTENT_ORIGIN_VALUES, required: false, default: null }),
|
|
620
|
+
__metadata("design:type", Object)
|
|
621
|
+
], Content.prototype, "origin", void 0);
|
|
622
|
+
__decorate([
|
|
623
|
+
(0, mongoose_1.Prop)({ type: String, required: false, default: null }),
|
|
624
|
+
__metadata("design:type", Object)
|
|
625
|
+
], Content.prototype, "taggerId", void 0);
|
|
616
626
|
__decorate([
|
|
617
627
|
(0, mongoose_1.Prop)({ type: String, required: false }),
|
|
618
628
|
__metadata("design:type", String)
|
|
@@ -706,4 +716,6 @@ exports.ContentSchema.index({ 'collabs.profile': 1 });
|
|
|
706
716
|
// Chave de idempotência da captura da Primetag — conteúdos manuais (sem
|
|
707
717
|
// primetagId) ficam fora do índice.
|
|
708
718
|
exports.ContentSchema.index({ action: 1, primetagId: 1 }, { unique: true, partialFilterExpression: { primetagId: { $type: 'string' } } });
|
|
719
|
+
// Chave do import da Tagger (GD-767) — Conteúdos sem taggerId ficam fora.
|
|
720
|
+
exports.ContentSchema.index({ action: 1, taggerId: 1 }, { unique: true, partialFilterExpression: { taggerId: { $type: 'string' } } });
|
|
709
721
|
exports.ContentModel = (0, mongoose_2.model)('Content', exports.ContentSchema);
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
import { HydratedDocument, Schema as MongooseSchema, Types } from 'mongoose';
|
|
27
27
|
import { Action } from './action.schema';
|
|
28
28
|
export type JobDocument = HydratedDocument<Job>;
|
|
29
|
-
export declare const JOB_ORIGINS: readonly ["trigger", "approval", "reclassify"];
|
|
29
|
+
export declare const JOB_ORIGINS: readonly ["trigger", "approval", "reclassify", "tagger"];
|
|
30
30
|
export type JobOrigin = (typeof JOB_ORIGINS)[number];
|
|
31
31
|
export declare const JOB_WORKERS: readonly ["api-campaigns", "content-capture-trigger", "content-capture", "comment-capture", "content-classification", "metrics-generator", "profile-sync"];
|
|
32
32
|
export type JobWorker = (typeof JOB_WORKERS)[number];
|
|
@@ -12,7 +12,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.JobModel = exports.JobSchema = exports.Job = exports.JOB_STATUSES = exports.JOB_WORKERS = exports.JOB_ORIGINS = void 0;
|
|
13
13
|
const mongoose_1 = require("@nestjs/mongoose");
|
|
14
14
|
const mongoose_2 = require("mongoose");
|
|
15
|
-
|
|
15
|
+
// tagger: import do JSON da Tagger na tela (GD-767).
|
|
16
|
+
exports.JOB_ORIGINS = ['trigger', 'approval', 'reclassify', 'tagger'];
|
|
16
17
|
exports.JOB_WORKERS = [
|
|
17
18
|
// Clique de aprovação (lote): quantos conteúdos o disparo colocou no pipeline.
|
|
18
19
|
'api-campaigns',
|
package/package.json
CHANGED
|
@@ -400,6 +400,10 @@ export type ContentCommentCountSource = (typeof CONTENT_COMMENT_COUNT_SOURCE_VAL
|
|
|
400
400
|
|
|
401
401
|
export const CONTENT_METRICS_SOURCE_VALUES = ['real', 'organic', 'estimated'] as const;
|
|
402
402
|
|
|
403
|
+
/** Quem criou o Conteúdo (metricsFile = Métricas por arquivo, ainda sem uso). Ver GD-767. */
|
|
404
|
+
export const CONTENT_ORIGIN_VALUES = ['primetag', 'manual', 'tagger', 'metricsFile'] as const;
|
|
405
|
+
export type ContentOrigin = (typeof CONTENT_ORIGIN_VALUES)[number];
|
|
406
|
+
|
|
403
407
|
/** Origem do Tipo e da Fase: auto = regra da captura, manual = quem revisou. Ver GD-691. */
|
|
404
408
|
export const CONTENT_CLASSIFICATION_SOURCE_VALUES = ['auto', 'manual'] as const;
|
|
405
409
|
export type ContentClassificationSource = (typeof CONTENT_CLASSIFICATION_SOURCE_VALUES)[number];
|
|
@@ -554,6 +558,17 @@ export class Content {
|
|
|
554
558
|
@Prop({ type: String, required: false })
|
|
555
559
|
primetagId?: string;
|
|
556
560
|
|
|
561
|
+
/**
|
|
562
|
+
* Quem criou o Conteúdo. A Tagger pode assumir um existente, e a captura da
|
|
563
|
+
* Primetag não toca Conteúdo da Tagger. Ver GD-767.
|
|
564
|
+
*/
|
|
565
|
+
@Prop({ type: String, enum: CONTENT_ORIGIN_VALUES, required: false, default: null })
|
|
566
|
+
origin?: ContentOrigin | null;
|
|
567
|
+
|
|
568
|
+
/** id do post na Tagger (import de JSON, GD-767). */
|
|
569
|
+
@Prop({ type: String, required: false, default: null })
|
|
570
|
+
taggerId?: string | null;
|
|
571
|
+
|
|
557
572
|
// runId da última captura que tocou o conteúdo (não o da rodada que o
|
|
558
573
|
// criou) — a aprovação e a reclassificação reaproveitam esse runId pra
|
|
559
574
|
// continuar na mesma trilha da coleção `jobs`.
|
|
@@ -664,5 +679,10 @@ ContentSchema.index(
|
|
|
664
679
|
{ action: 1, primetagId: 1 },
|
|
665
680
|
{ unique: true, partialFilterExpression: { primetagId: { $type: 'string' } } },
|
|
666
681
|
);
|
|
682
|
+
// Chave do import da Tagger (GD-767) — Conteúdos sem taggerId ficam fora.
|
|
683
|
+
ContentSchema.index(
|
|
684
|
+
{ action: 1, taggerId: 1 },
|
|
685
|
+
{ unique: true, partialFilterExpression: { taggerId: { $type: 'string' } } },
|
|
686
|
+
);
|
|
667
687
|
|
|
668
688
|
export const ContentModel = MongooseModel('Content', ContentSchema);
|
|
@@ -9,7 +9,8 @@ import { Action } from './action.schema';
|
|
|
9
9
|
|
|
10
10
|
export type JobDocument = HydratedDocument<Job>;
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
// tagger: import do JSON da Tagger na tela (GD-767).
|
|
13
|
+
export const JOB_ORIGINS = ['trigger', 'approval', 'reclassify', 'tagger'] as const;
|
|
13
14
|
export type JobOrigin = (typeof JOB_ORIGINS)[number];
|
|
14
15
|
|
|
15
16
|
export const JOB_WORKERS = [
|