uaxi-shared-entities 1.0.232 → 1.0.233

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.
@@ -75,6 +75,7 @@ export * from "./cronjob-configuration.entity";
75
75
  export * from "./driver-search-expansion-configuration.entity";
76
76
  export * from "./enterprise-otp-phone.entity";
77
77
  export * from "./news-notification.entity";
78
+ export * from "./marketing-campaign.entity";
78
79
  export * from "./semovi-record.entity";
79
80
  export * from "./semovi-hourly-report.entity";
80
81
  export * from "./semovi-operator-report.entity";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,yCAAyC,CAAC;AACxD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kBAAkB,CAAC;AACjC,cAAc,kCAAkC,CAAC;AACjD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oCAAoC,CAAC;AACnD,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gDAAgD,CAAC;AAC/D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qCAAqC,CAAC;AACpD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wCAAwC,CAAC;AACvD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uCAAuC,CAAC;AACtD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,yCAAyC,CAAC;AACxD,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,yCAAyC,CAAC;AACxD,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC"}
@@ -91,6 +91,7 @@ __exportStar(require("./cronjob-configuration.entity"), exports);
91
91
  __exportStar(require("./driver-search-expansion-configuration.entity"), exports);
92
92
  __exportStar(require("./enterprise-otp-phone.entity"), exports);
93
93
  __exportStar(require("./news-notification.entity"), exports);
94
+ __exportStar(require("./marketing-campaign.entity"), exports);
94
95
  __exportStar(require("./semovi-record.entity"), exports);
95
96
  __exportStar(require("./semovi-hourly-report.entity"), exports);
96
97
  __exportStar(require("./semovi-operator-report.entity"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,gDAA8B;AAC9B,uDAAqC;AACrC,mDAAiC;AACjC,uDAAqC;AACrC,mDAAiC;AACjC,iDAA+B;AAC/B,yDAAuC;AACvC,yDAAuC;AACvC,mEAAiD;AACjD,kDAAgC;AAChC,6DAA2C;AAC3C,kDAAgC;AAChC,0EAAwD;AACxD,4DAA0C;AAC1C,6DAA2C;AAC3C,qDAAmC;AACnC,yDAAuC;AACvC,oDAAkC;AAClC,+CAA6B;AAC7B,oDAAkC;AAClC,iDAA+B;AAC/B,gDAA8B;AAC9B,yDAAuC;AACvC,wDAAsC;AACtC,iDAA+B;AAC/B,iEAA+C;AAC/C,gEAA8C;AAC9C,mDAAiC;AACjC,mEAAiD;AACjD,4DAA0C;AAC1C,mDAAiC;AACjC,oDAAkC;AAClC,0DAAwC;AACxC,uDAAqC;AACrC,sDAAoC;AACpC,wDAAsC;AACtC,2DAAyC;AACzC,kDAAgC;AAChC,qEAAmD;AACnD,yDAAuC;AACvC,gEAA8C;AAC9C,4EAA0D;AAC1D,sDAAoC;AACpC,6DAA2C;AAC3C,yDAAuC;AACvC,iEAA+C;AAC/C,kEAAgD;AAChD,qDAAmC;AACnC,4DAA0C;AAC1C,oDAAkC;AAClC,iEAA+C;AAC/C,iEAA+C;AAC/C,+CAA6B;AAC7B,yDAAuC;AACvC,qDAAmC;AACnC,6DAA2C;AAC3C,2DAAyC;AACzC,6DAA2C;AAC3C,kEAAgD;AAChD,4DAA0C;AAC1C,gEAA8C;AAC9C,0DAAwC;AACxC,0DAAwC;AACxC,qDAAmC;AACnC,0DAAwC;AACxC,qEAAmD;AACnD,8DAA4C;AAC5C,uEAAqD;AACrD,uEAAqD;AACrD,wEAAsD;AACtD,qEAAmD;AACnD,gEAA8C;AAC9C,iEAA+C;AAC/C,iFAA+D;AAC/D,gEAA8C;AAC9C,6DAA2C;AAC3C,yDAAuC;AACvC,gEAA8C;AAC9C,kEAAgD;AAChD,mEAAiD;AACjD,gEAA8C;AAC9C,uDAAqC;AACrC,2DAAyC;AACzC,sEAAoD;AACpD,4DAA0C;AAC1C,8DAA4C;AAC5C,+DAA6C;AAC7C,oEAAkD;AAClD,iEAA+C;AAC/C,gEAA8C;AAC9C,yEAAuD;AACvD,gEAA8C;AAC9C,wEAAsD;AACtD,8DAA4C;AAC5C,mEAAiD;AACjD,0EAAwD;AACxD,mEAAiD;AACjD,qEAAmD;AACnD,0EAAwD;AACxD,oEAAkD;AAClD,kEAAgD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,gDAA8B;AAC9B,uDAAqC;AACrC,mDAAiC;AACjC,uDAAqC;AACrC,mDAAiC;AACjC,iDAA+B;AAC/B,yDAAuC;AACvC,yDAAuC;AACvC,mEAAiD;AACjD,kDAAgC;AAChC,6DAA2C;AAC3C,kDAAgC;AAChC,0EAAwD;AACxD,4DAA0C;AAC1C,6DAA2C;AAC3C,qDAAmC;AACnC,yDAAuC;AACvC,oDAAkC;AAClC,+CAA6B;AAC7B,oDAAkC;AAClC,iDAA+B;AAC/B,gDAA8B;AAC9B,yDAAuC;AACvC,wDAAsC;AACtC,iDAA+B;AAC/B,iEAA+C;AAC/C,gEAA8C;AAC9C,mDAAiC;AACjC,mEAAiD;AACjD,4DAA0C;AAC1C,mDAAiC;AACjC,oDAAkC;AAClC,0DAAwC;AACxC,uDAAqC;AACrC,sDAAoC;AACpC,wDAAsC;AACtC,2DAAyC;AACzC,kDAAgC;AAChC,qEAAmD;AACnD,yDAAuC;AACvC,gEAA8C;AAC9C,4EAA0D;AAC1D,sDAAoC;AACpC,6DAA2C;AAC3C,yDAAuC;AACvC,iEAA+C;AAC/C,kEAAgD;AAChD,qDAAmC;AACnC,4DAA0C;AAC1C,oDAAkC;AAClC,iEAA+C;AAC/C,iEAA+C;AAC/C,+CAA6B;AAC7B,yDAAuC;AACvC,qDAAmC;AACnC,6DAA2C;AAC3C,2DAAyC;AACzC,6DAA2C;AAC3C,kEAAgD;AAChD,4DAA0C;AAC1C,gEAA8C;AAC9C,0DAAwC;AACxC,0DAAwC;AACxC,qDAAmC;AACnC,0DAAwC;AACxC,qEAAmD;AACnD,8DAA4C;AAC5C,uEAAqD;AACrD,uEAAqD;AACrD,wEAAsD;AACtD,qEAAmD;AACnD,gEAA8C;AAC9C,iEAA+C;AAC/C,iFAA+D;AAC/D,gEAA8C;AAC9C,6DAA2C;AAC3C,8DAA4C;AAC5C,yDAAuC;AACvC,gEAA8C;AAC9C,kEAAgD;AAChD,mEAAiD;AACjD,gEAA8C;AAC9C,uDAAqC;AACrC,2DAAyC;AACzC,sEAAoD;AACpD,4DAA0C;AAC1C,8DAA4C;AAC5C,+DAA6C;AAC7C,oEAAkD;AAClD,iEAA+C;AAC/C,gEAA8C;AAC9C,yEAAuD;AACvD,gEAA8C;AAC9C,wEAAsD;AACtD,8DAA4C;AAC5C,mEAAiD;AACjD,0EAAwD;AACxD,mEAAiD;AACjD,qEAAmD;AACnD,0EAAwD;AACxD,oEAAkD;AAClD,kEAAgD"}
@@ -0,0 +1,51 @@
1
+ import { Model } from 'sequelize-typescript';
2
+ import { MarketingCampaignStatus } from '../enums/marketing-campaign.enum';
3
+ export interface MarketingCampaignAttributes {
4
+ id: string;
5
+ /** Nombre interno opcional para identificar la campaña en admin. */
6
+ name: string | null;
7
+ /** Título del mensaje (text[0] en Jaxis). */
8
+ title: string;
9
+ /** Cuerpo del mensaje (text[1] en Jaxis). */
10
+ body: string;
11
+ imageUrl: string;
12
+ messageType: string;
13
+ template: string;
14
+ destinations: string[];
15
+ status: MarketingCampaignStatus;
16
+ sentAt: Date | null;
17
+ sendResult: Record<string, unknown> | null;
18
+ metadata: Record<string, unknown> | null;
19
+ createdAt: Date;
20
+ updatedAt: Date;
21
+ deletedAt: Date | null;
22
+ }
23
+ export interface CreateMarketingCampaignData {
24
+ name?: string | null;
25
+ title: string;
26
+ body: string;
27
+ imageUrl: string;
28
+ messageType?: string;
29
+ template?: string;
30
+ destinations: string[];
31
+ status?: MarketingCampaignStatus;
32
+ metadata?: Record<string, unknown> | null;
33
+ }
34
+ export declare class MarketingCampaign extends Model<MarketingCampaignAttributes, CreateMarketingCampaignData> {
35
+ id: string;
36
+ name: string | null;
37
+ title: string;
38
+ body: string;
39
+ imageUrl: string;
40
+ messageType: string;
41
+ template: string;
42
+ destinations: string[];
43
+ status: MarketingCampaignStatus;
44
+ sentAt: Date | null;
45
+ sendResult: Record<string, unknown> | null;
46
+ metadata: Record<string, unknown> | null;
47
+ createdAt: Date;
48
+ updatedAt: Date;
49
+ deletedAt: Date | null;
50
+ }
51
+ //# sourceMappingURL=marketing-campaign.entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marketing-campaign.entity.d.ts","sourceRoot":"","sources":["../../src/entities/marketing-campaign.entity.ts"],"names":[],"mappings":"AAIA,OAAO,EAKL,KAAK,EAGN,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAE3E,MAAM,WAAW,2BAA2B;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,oEAAoE;IACpE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,uBAAuB,CAAC;IAChC,MAAM,EAAE,IAAI,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACzC,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC3C;AAED,qBAea,iBAAkB,SAAQ,KAAK,CAC1C,2BAA2B,EAC3B,2BAA2B,CAC5B;IAMS,EAAE,EAAE,MAAM,CAAC;IAMnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAMpB,KAAK,EAAE,MAAM,CAAC;IAMd,IAAI,EAAE,MAAM,CAAC;IAOb,QAAQ,EAAE,MAAM,CAAC;IAQjB,WAAW,EAAE,MAAM,CAAC;IAOpB,QAAQ,EAAE,MAAM,CAAC;IAOjB,YAAY,EAAE,MAAM,EAAE,CAAC;IAOvB,MAAM,EAAE,uBAAuB,CAAC;IAOhC,MAAM,EAAE,IAAI,GAAG,IAAI,CAAC;IAOpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAM3C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAGzC,SAAS,EAAE,IAAI,CAAC;IAGhB,SAAS,EAAE,IAAI,CAAC;IAGhB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;CACxB"}
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ // =============================================
3
+ // MARKETING CAMPAIGN — Mensajes WhatsApp masivos vía Jaxis
4
+ // =============================================
5
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
6
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
8
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
9
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
10
+ };
11
+ var __metadata = (this && this.__metadata) || function (k, v) {
12
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.MarketingCampaign = void 0;
16
+ const sequelize_typescript_1 = require("sequelize-typescript");
17
+ const marketing_campaign_enum_1 = require("../enums/marketing-campaign.enum");
18
+ let MarketingCampaign = class MarketingCampaign extends sequelize_typescript_1.Model {
19
+ };
20
+ exports.MarketingCampaign = MarketingCampaign;
21
+ __decorate([
22
+ (0, sequelize_typescript_1.Column)({
23
+ type: sequelize_typescript_1.DataType.UUID,
24
+ defaultValue: sequelize_typescript_1.DataType.UUIDV4,
25
+ primaryKey: true,
26
+ }),
27
+ __metadata("design:type", String)
28
+ ], MarketingCampaign.prototype, "id", void 0);
29
+ __decorate([
30
+ (0, sequelize_typescript_1.Column)({
31
+ type: sequelize_typescript_1.DataType.STRING(180),
32
+ allowNull: true,
33
+ }),
34
+ __metadata("design:type", Object)
35
+ ], MarketingCampaign.prototype, "name", void 0);
36
+ __decorate([
37
+ (0, sequelize_typescript_1.Column)({
38
+ type: sequelize_typescript_1.DataType.STRING(500),
39
+ allowNull: false,
40
+ }),
41
+ __metadata("design:type", String)
42
+ ], MarketingCampaign.prototype, "title", void 0);
43
+ __decorate([
44
+ (0, sequelize_typescript_1.Column)({
45
+ type: sequelize_typescript_1.DataType.TEXT,
46
+ allowNull: false,
47
+ }),
48
+ __metadata("design:type", String)
49
+ ], MarketingCampaign.prototype, "body", void 0);
50
+ __decorate([
51
+ (0, sequelize_typescript_1.Column)({
52
+ type: sequelize_typescript_1.DataType.TEXT,
53
+ allowNull: false,
54
+ field: 'image_url',
55
+ }),
56
+ __metadata("design:type", String)
57
+ ], MarketingCampaign.prototype, "imageUrl", void 0);
58
+ __decorate([
59
+ (0, sequelize_typescript_1.Column)({
60
+ type: sequelize_typescript_1.DataType.STRING(10),
61
+ allowNull: false,
62
+ defaultValue: 'mk',
63
+ field: 'message_type',
64
+ }),
65
+ __metadata("design:type", String)
66
+ ], MarketingCampaign.prototype, "messageType", void 0);
67
+ __decorate([
68
+ (0, sequelize_typescript_1.Column)({
69
+ type: sequelize_typescript_1.DataType.STRING(10),
70
+ allowNull: false,
71
+ defaultValue: '01',
72
+ }),
73
+ __metadata("design:type", String)
74
+ ], MarketingCampaign.prototype, "template", void 0);
75
+ __decorate([
76
+ (0, sequelize_typescript_1.Column)({
77
+ type: sequelize_typescript_1.DataType.JSONB,
78
+ allowNull: false,
79
+ defaultValue: [],
80
+ }),
81
+ __metadata("design:type", Array)
82
+ ], MarketingCampaign.prototype, "destinations", void 0);
83
+ __decorate([
84
+ (0, sequelize_typescript_1.Column)({
85
+ type: sequelize_typescript_1.DataType.ENUM(...Object.values(marketing_campaign_enum_1.MarketingCampaignStatus)),
86
+ allowNull: false,
87
+ defaultValue: marketing_campaign_enum_1.MarketingCampaignStatus.DRAFT,
88
+ }),
89
+ __metadata("design:type", String)
90
+ ], MarketingCampaign.prototype, "status", void 0);
91
+ __decorate([
92
+ (0, sequelize_typescript_1.Column)({
93
+ type: sequelize_typescript_1.DataType.DATE,
94
+ allowNull: true,
95
+ field: 'sent_at',
96
+ }),
97
+ __metadata("design:type", Object)
98
+ ], MarketingCampaign.prototype, "sentAt", void 0);
99
+ __decorate([
100
+ (0, sequelize_typescript_1.Column)({
101
+ type: sequelize_typescript_1.DataType.JSONB,
102
+ allowNull: true,
103
+ field: 'send_result',
104
+ }),
105
+ __metadata("design:type", Object)
106
+ ], MarketingCampaign.prototype, "sendResult", void 0);
107
+ __decorate([
108
+ (0, sequelize_typescript_1.Column)({
109
+ type: sequelize_typescript_1.DataType.JSONB,
110
+ allowNull: true,
111
+ }),
112
+ __metadata("design:type", Object)
113
+ ], MarketingCampaign.prototype, "metadata", void 0);
114
+ __decorate([
115
+ sequelize_typescript_1.CreatedAt,
116
+ __metadata("design:type", Date)
117
+ ], MarketingCampaign.prototype, "createdAt", void 0);
118
+ __decorate([
119
+ sequelize_typescript_1.UpdatedAt,
120
+ __metadata("design:type", Date)
121
+ ], MarketingCampaign.prototype, "updatedAt", void 0);
122
+ __decorate([
123
+ sequelize_typescript_1.DeletedAt,
124
+ __metadata("design:type", Object)
125
+ ], MarketingCampaign.prototype, "deletedAt", void 0);
126
+ exports.MarketingCampaign = MarketingCampaign = __decorate([
127
+ (0, sequelize_typescript_1.Table)({
128
+ tableName: 'marketing_campaigns',
129
+ timestamps: true,
130
+ paranoid: true,
131
+ indexes: [
132
+ {
133
+ name: 'idx_marketing_campaigns_status',
134
+ fields: ['status'],
135
+ },
136
+ {
137
+ name: 'idx_marketing_campaigns_sent_at',
138
+ fields: ['sentAt'],
139
+ },
140
+ ],
141
+ })
142
+ ], MarketingCampaign);
143
+ //# sourceMappingURL=marketing-campaign.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marketing-campaign.entity.js","sourceRoot":"","sources":["../../src/entities/marketing-campaign.entity.ts"],"names":[],"mappings":"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"}
@@ -26,4 +26,5 @@ export * from "./business-trip-link.enum";
26
26
  export * from "./business-recurring-trip.enum";
27
27
  export * from "./fare-calculation-request.enum";
28
28
  export * from "./tip.enum";
29
+ export * from "./marketing-campaign.enum";
29
30
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/enums/index.ts"],"names":[],"mappings":"AAIA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/enums/index.ts"],"names":[],"mappings":"AAIA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC"}
@@ -45,4 +45,5 @@ __exportStar(require("./business-trip-link.enum"), exports);
45
45
  __exportStar(require("./business-recurring-trip.enum"), exports);
46
46
  __exportStar(require("./fare-calculation-request.enum"), exports);
47
47
  __exportStar(require("./tip.enum"), exports);
48
+ __exportStar(require("./marketing-campaign.enum"), exports);
48
49
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/enums/index.ts"],"names":[],"mappings":";AAAA,gDAAgD;AAChD,yBAAyB;AACzB,gDAAgD;;;;;;;;;;;;;;;;AAEhD,8CAA4B;AAC5B,gDAA8B;AAC9B,iDAA+B;AAC/B,8CAA4B;AAC5B,iDAA+B;AAC/B,iDAA+B;AAC/B,gDAA8B;AAC9B,sDAAoC;AACpC,gDAA8B;AAC9B,kDAAgC;AAChC,iDAA+B;AAC/B,uDAAqC;AACrC,0DAAwC;AACxC,2DAAyC;AACzC,yDAAuC;AACvC,yDAAuC;AACvC,8DAA4C;AAC5C,mEAAiD;AACjD,mDAAiC;AACjC,2DAAyC;AACzC,gDAA8B;AAC9B,qDAAmC;AACnC,+CAA6B;AAC7B,+DAA6C;AAC7C,4DAA0C;AAC1C,iEAA+C;AAC/C,kEAAgD;AAChD,6CAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/enums/index.ts"],"names":[],"mappings":";AAAA,gDAAgD;AAChD,yBAAyB;AACzB,gDAAgD;;;;;;;;;;;;;;;;AAEhD,8CAA4B;AAC5B,gDAA8B;AAC9B,iDAA+B;AAC/B,8CAA4B;AAC5B,iDAA+B;AAC/B,iDAA+B;AAC/B,gDAA8B;AAC9B,sDAAoC;AACpC,gDAA8B;AAC9B,kDAAgC;AAChC,iDAA+B;AAC/B,uDAAqC;AACrC,0DAAwC;AACxC,2DAAyC;AACzC,yDAAuC;AACvC,yDAAuC;AACvC,8DAA4C;AAC5C,mEAAiD;AACjD,mDAAiC;AACjC,2DAAyC;AACzC,gDAA8B;AAC9B,qDAAmC;AACnC,+CAA6B;AAC7B,+DAA6C;AAC7C,4DAA0C;AAC1C,iEAA+C;AAC/C,kEAAgD;AAChD,6CAA2B;AAC3B,4DAA0C"}
@@ -0,0 +1,7 @@
1
+ export declare enum MarketingCampaignStatus {
2
+ DRAFT = "draft",
3
+ SENDING = "sending",
4
+ SENT = "sent",
5
+ FAILED = "failed"
6
+ }
7
+ //# sourceMappingURL=marketing-campaign.enum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marketing-campaign.enum.d.ts","sourceRoot":"","sources":["../../src/enums/marketing-campaign.enum.ts"],"names":[],"mappings":"AAAA,oBAAY,uBAAuB;IACjC,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,MAAM,WAAW;CAClB"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MarketingCampaignStatus = void 0;
4
+ var MarketingCampaignStatus;
5
+ (function (MarketingCampaignStatus) {
6
+ MarketingCampaignStatus["DRAFT"] = "draft";
7
+ MarketingCampaignStatus["SENDING"] = "sending";
8
+ MarketingCampaignStatus["SENT"] = "sent";
9
+ MarketingCampaignStatus["FAILED"] = "failed";
10
+ })(MarketingCampaignStatus || (exports.MarketingCampaignStatus = MarketingCampaignStatus = {}));
11
+ //# sourceMappingURL=marketing-campaign.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marketing-campaign.enum.js","sourceRoot":"","sources":["../../src/enums/marketing-campaign.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,uBAKX;AALD,WAAY,uBAAuB;IACjC,0CAAe,CAAA;IACf,8CAAmB,CAAA;IACnB,wCAAa,CAAA;IACb,4CAAiB,CAAA;AACnB,CAAC,EALW,uBAAuB,uCAAvB,uBAAuB,QAKlC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "uaxi-shared-entities",
3
- "version": "1.0.232",
3
+ "version": "1.0.233",
4
4
  "description": "Entidades compartidas para microservicios UAXI",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -75,6 +75,7 @@ export * from "./cronjob-configuration.entity";
75
75
  export * from "./driver-search-expansion-configuration.entity";
76
76
  export * from "./enterprise-otp-phone.entity";
77
77
  export * from "./news-notification.entity";
78
+ export * from "./marketing-campaign.entity";
78
79
  export * from "./semovi-record.entity";
79
80
  export * from "./semovi-hourly-report.entity";
80
81
  export * from "./semovi-operator-report.entity";
@@ -0,0 +1,157 @@
1
+ // =============================================
2
+ // MARKETING CAMPAIGN — Mensajes WhatsApp masivos vía Jaxis
3
+ // =============================================
4
+
5
+ import {
6
+ Column,
7
+ CreatedAt,
8
+ DataType,
9
+ DeletedAt,
10
+ Model,
11
+ Table,
12
+ UpdatedAt,
13
+ } from 'sequelize-typescript';
14
+ import { MarketingCampaignStatus } from '../enums/marketing-campaign.enum';
15
+
16
+ export interface MarketingCampaignAttributes {
17
+ id: string;
18
+ /** Nombre interno opcional para identificar la campaña en admin. */
19
+ name: string | null;
20
+ /** Título del mensaje (text[0] en Jaxis). */
21
+ title: string;
22
+ /** Cuerpo del mensaje (text[1] en Jaxis). */
23
+ body: string;
24
+ imageUrl: string;
25
+ messageType: string;
26
+ template: string;
27
+ destinations: string[];
28
+ status: MarketingCampaignStatus;
29
+ sentAt: Date | null;
30
+ sendResult: Record<string, unknown> | null;
31
+ metadata: Record<string, unknown> | null;
32
+ createdAt: Date;
33
+ updatedAt: Date;
34
+ deletedAt: Date | null;
35
+ }
36
+
37
+ export interface CreateMarketingCampaignData {
38
+ name?: string | null;
39
+ title: string;
40
+ body: string;
41
+ imageUrl: string;
42
+ messageType?: string;
43
+ template?: string;
44
+ destinations: string[];
45
+ status?: MarketingCampaignStatus;
46
+ metadata?: Record<string, unknown> | null;
47
+ }
48
+
49
+ @Table({
50
+ tableName: 'marketing_campaigns',
51
+ timestamps: true,
52
+ paranoid: true,
53
+ indexes: [
54
+ {
55
+ name: 'idx_marketing_campaigns_status',
56
+ fields: ['status'],
57
+ },
58
+ {
59
+ name: 'idx_marketing_campaigns_sent_at',
60
+ fields: ['sentAt'],
61
+ },
62
+ ],
63
+ })
64
+ export class MarketingCampaign extends Model<
65
+ MarketingCampaignAttributes,
66
+ CreateMarketingCampaignData
67
+ > {
68
+ @Column({
69
+ type: DataType.UUID,
70
+ defaultValue: DataType.UUIDV4,
71
+ primaryKey: true,
72
+ })
73
+ declare id: string;
74
+
75
+ @Column({
76
+ type: DataType.STRING(180),
77
+ allowNull: true,
78
+ })
79
+ name: string | null;
80
+
81
+ @Column({
82
+ type: DataType.STRING(500),
83
+ allowNull: false,
84
+ })
85
+ title: string;
86
+
87
+ @Column({
88
+ type: DataType.TEXT,
89
+ allowNull: false,
90
+ })
91
+ body: string;
92
+
93
+ @Column({
94
+ type: DataType.TEXT,
95
+ allowNull: false,
96
+ field: 'image_url',
97
+ })
98
+ imageUrl: string;
99
+
100
+ @Column({
101
+ type: DataType.STRING(10),
102
+ allowNull: false,
103
+ defaultValue: 'mk',
104
+ field: 'message_type',
105
+ })
106
+ messageType: string;
107
+
108
+ @Column({
109
+ type: DataType.STRING(10),
110
+ allowNull: false,
111
+ defaultValue: '01',
112
+ })
113
+ template: string;
114
+
115
+ @Column({
116
+ type: DataType.JSONB,
117
+ allowNull: false,
118
+ defaultValue: [],
119
+ })
120
+ destinations: string[];
121
+
122
+ @Column({
123
+ type: DataType.ENUM(...Object.values(MarketingCampaignStatus)),
124
+ allowNull: false,
125
+ defaultValue: MarketingCampaignStatus.DRAFT,
126
+ })
127
+ status: MarketingCampaignStatus;
128
+
129
+ @Column({
130
+ type: DataType.DATE,
131
+ allowNull: true,
132
+ field: 'sent_at',
133
+ })
134
+ sentAt: Date | null;
135
+
136
+ @Column({
137
+ type: DataType.JSONB,
138
+ allowNull: true,
139
+ field: 'send_result',
140
+ })
141
+ sendResult: Record<string, unknown> | null;
142
+
143
+ @Column({
144
+ type: DataType.JSONB,
145
+ allowNull: true,
146
+ })
147
+ metadata: Record<string, unknown> | null;
148
+
149
+ @CreatedAt
150
+ createdAt: Date;
151
+
152
+ @UpdatedAt
153
+ updatedAt: Date;
154
+
155
+ @DeletedAt
156
+ deletedAt: Date | null;
157
+ }
@@ -30,3 +30,4 @@ export * from "./business-trip-link.enum";
30
30
  export * from "./business-recurring-trip.enum";
31
31
  export * from "./fare-calculation-request.enum";
32
32
  export * from "./tip.enum";
33
+ export * from "./marketing-campaign.enum";
@@ -0,0 +1,6 @@
1
+ export enum MarketingCampaignStatus {
2
+ DRAFT = 'draft',
3
+ SENDING = 'sending',
4
+ SENT = 'sent',
5
+ FAILED = 'failed',
6
+ }