uaxi-shared-entities 1.0.168 → 1.0.170

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.
Files changed (31) hide show
  1. package/dist/entities/business-beneficiary-address.entity.d.ts +41 -0
  2. package/dist/entities/business-beneficiary-address.entity.d.ts.map +1 -0
  3. package/dist/entities/business-beneficiary-address.entity.js +121 -0
  4. package/dist/entities/business-beneficiary-address.entity.js.map +1 -0
  5. package/dist/entities/business-beneficiary.entity.d.ts +36 -0
  6. package/dist/entities/business-beneficiary.entity.d.ts.map +1 -0
  7. package/dist/entities/business-beneficiary.entity.js +113 -0
  8. package/dist/entities/business-beneficiary.entity.js.map +1 -0
  9. package/dist/entities/fare-calculation-request.entity.d.ts +46 -0
  10. package/dist/entities/fare-calculation-request.entity.d.ts.map +1 -0
  11. package/dist/entities/fare-calculation-request.entity.js +132 -0
  12. package/dist/entities/fare-calculation-request.entity.js.map +1 -0
  13. package/dist/entities/index.d.ts +3 -0
  14. package/dist/entities/index.d.ts.map +1 -1
  15. package/dist/entities/index.js +3 -0
  16. package/dist/entities/index.js.map +1 -1
  17. package/dist/enums/fare-calculation-request.enum.d.ts +5 -0
  18. package/dist/enums/fare-calculation-request.enum.d.ts.map +1 -0
  19. package/dist/enums/fare-calculation-request.enum.js +9 -0
  20. package/dist/enums/fare-calculation-request.enum.js.map +1 -0
  21. package/dist/enums/index.d.ts +1 -0
  22. package/dist/enums/index.d.ts.map +1 -1
  23. package/dist/enums/index.js +1 -0
  24. package/dist/enums/index.js.map +1 -1
  25. package/package.json +1 -1
  26. package/src/entities/business-beneficiary-address.entity.ts +131 -0
  27. package/src/entities/business-beneficiary.entity.ts +119 -0
  28. package/src/entities/fare-calculation-request.entity.ts +136 -0
  29. package/src/entities/index.ts +3 -0
  30. package/src/enums/fare-calculation-request.enum.ts +5 -0
  31. package/src/enums/index.ts +1 -0
@@ -0,0 +1,41 @@
1
+ import { Model } from "sequelize-typescript";
2
+ import { BusinessBeneficiary } from "./business-beneficiary.entity";
3
+ export type BusinessBeneficiaryAddressType = "pickup" | "destination";
4
+ export interface BusinessBeneficiaryAddressAttributes {
5
+ id: string;
6
+ businessBeneficiaryId: string;
7
+ type: BusinessBeneficiaryAddressType;
8
+ address: string;
9
+ latitude: number;
10
+ longitude: number;
11
+ placeId: string | null;
12
+ usageCount: number;
13
+ lastUsedAt: Date | null;
14
+ createdAt: Date;
15
+ updatedAt: Date;
16
+ deletedAt: Date | null;
17
+ }
18
+ export interface CreateBusinessBeneficiaryAddressData {
19
+ businessBeneficiaryId: string;
20
+ type: BusinessBeneficiaryAddressType;
21
+ address: string;
22
+ latitude: number;
23
+ longitude: number;
24
+ placeId?: string | null;
25
+ }
26
+ export declare class BusinessBeneficiaryAddress extends Model<BusinessBeneficiaryAddressAttributes, CreateBusinessBeneficiaryAddressData> {
27
+ id: string;
28
+ businessBeneficiaryId: string;
29
+ type: BusinessBeneficiaryAddressType;
30
+ address: string;
31
+ latitude: number;
32
+ longitude: number;
33
+ placeId: string | null;
34
+ usageCount: number;
35
+ lastUsedAt: Date | null;
36
+ createdAt: Date;
37
+ updatedAt: Date;
38
+ deletedAt: Date | null;
39
+ beneficiary: BusinessBeneficiary;
40
+ }
41
+ //# sourceMappingURL=business-beneficiary-address.entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"business-beneficiary-address.entity.d.ts","sourceRoot":"","sources":["../../src/entities/business-beneficiary-address.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,EAON,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,MAAM,MAAM,8BAA8B,GAAG,QAAQ,GAAG,aAAa,CAAC;AAEtE,MAAM,WAAW,oCAAoC;IACnD,EAAE,EAAE,MAAM,CAAC;IACX,qBAAqB,EAAE,MAAM,CAAC;IAC9B,IAAI,EAAE,8BAA8B,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,oCAAoC;IACnD,qBAAqB,EAAE,MAAM,CAAC;IAC9B,IAAI,EAAE,8BAA8B,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,qBAiBa,0BAA2B,SAAQ,KAAK,CACnD,oCAAoC,EACpC,oCAAoC,CACrC;IAMS,EAAE,EAAE,MAAM,CAAC;IAOnB,qBAAqB,EAAE,MAAM,CAAC;IAM9B,IAAI,EAAE,8BAA8B,CAAC;IAMrC,OAAO,EAAE,MAAM,CAAC;IAMhB,QAAQ,EAAE,MAAM,CAAC;IAMjB,SAAS,EAAE,MAAM,CAAC;IAOlB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAQvB,UAAU,EAAE,MAAM,CAAC;IAMnB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IAGhB,SAAS,EAAE,IAAI,CAAC;IAGhB,SAAS,EAAE,IAAI,CAAC;IAGhB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IAG/B,WAAW,EAAE,mBAAmB,CAAC;CAClC"}
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.BusinessBeneficiaryAddress = void 0;
13
+ const sequelize_typescript_1 = require("sequelize-typescript");
14
+ const business_beneficiary_entity_1 = require("./business-beneficiary.entity");
15
+ let BusinessBeneficiaryAddress = class BusinessBeneficiaryAddress extends sequelize_typescript_1.Model {
16
+ };
17
+ exports.BusinessBeneficiaryAddress = BusinessBeneficiaryAddress;
18
+ __decorate([
19
+ (0, sequelize_typescript_1.Column)({
20
+ type: sequelize_typescript_1.DataType.UUID,
21
+ defaultValue: sequelize_typescript_1.DataType.UUIDV4,
22
+ primaryKey: true,
23
+ }),
24
+ __metadata("design:type", String)
25
+ ], BusinessBeneficiaryAddress.prototype, "id", void 0);
26
+ __decorate([
27
+ (0, sequelize_typescript_1.ForeignKey)(() => business_beneficiary_entity_1.BusinessBeneficiary),
28
+ (0, sequelize_typescript_1.Column)({
29
+ type: sequelize_typescript_1.DataType.UUID,
30
+ allowNull: false,
31
+ }),
32
+ __metadata("design:type", String)
33
+ ], BusinessBeneficiaryAddress.prototype, "businessBeneficiaryId", void 0);
34
+ __decorate([
35
+ (0, sequelize_typescript_1.Column)({
36
+ type: sequelize_typescript_1.DataType.ENUM("pickup", "destination"),
37
+ allowNull: false,
38
+ }),
39
+ __metadata("design:type", String)
40
+ ], BusinessBeneficiaryAddress.prototype, "type", void 0);
41
+ __decorate([
42
+ (0, sequelize_typescript_1.Column)({
43
+ type: sequelize_typescript_1.DataType.STRING,
44
+ allowNull: false,
45
+ }),
46
+ __metadata("design:type", String)
47
+ ], BusinessBeneficiaryAddress.prototype, "address", void 0);
48
+ __decorate([
49
+ (0, sequelize_typescript_1.Column)({
50
+ type: sequelize_typescript_1.DataType.DOUBLE,
51
+ allowNull: false,
52
+ }),
53
+ __metadata("design:type", Number)
54
+ ], BusinessBeneficiaryAddress.prototype, "latitude", void 0);
55
+ __decorate([
56
+ (0, sequelize_typescript_1.Column)({
57
+ type: sequelize_typescript_1.DataType.DOUBLE,
58
+ allowNull: false,
59
+ }),
60
+ __metadata("design:type", Number)
61
+ ], BusinessBeneficiaryAddress.prototype, "longitude", void 0);
62
+ __decorate([
63
+ (0, sequelize_typescript_1.Column)({
64
+ type: sequelize_typescript_1.DataType.STRING,
65
+ allowNull: true,
66
+ comment: "Google place_id cuando esté disponible (para deduplicar)",
67
+ }),
68
+ __metadata("design:type", Object)
69
+ ], BusinessBeneficiaryAddress.prototype, "placeId", void 0);
70
+ __decorate([
71
+ (0, sequelize_typescript_1.Column)({
72
+ type: sequelize_typescript_1.DataType.INTEGER,
73
+ allowNull: false,
74
+ defaultValue: 1,
75
+ comment: "Número de veces que se ha usado esta dirección",
76
+ }),
77
+ __metadata("design:type", Number)
78
+ ], BusinessBeneficiaryAddress.prototype, "usageCount", void 0);
79
+ __decorate([
80
+ (0, sequelize_typescript_1.Column)({
81
+ type: sequelize_typescript_1.DataType.DATE,
82
+ allowNull: true,
83
+ }),
84
+ __metadata("design:type", Object)
85
+ ], BusinessBeneficiaryAddress.prototype, "lastUsedAt", void 0);
86
+ __decorate([
87
+ sequelize_typescript_1.CreatedAt,
88
+ __metadata("design:type", Date)
89
+ ], BusinessBeneficiaryAddress.prototype, "createdAt", void 0);
90
+ __decorate([
91
+ sequelize_typescript_1.UpdatedAt,
92
+ __metadata("design:type", Date)
93
+ ], BusinessBeneficiaryAddress.prototype, "updatedAt", void 0);
94
+ __decorate([
95
+ sequelize_typescript_1.DeletedAt,
96
+ __metadata("design:type", Object)
97
+ ], BusinessBeneficiaryAddress.prototype, "deletedAt", void 0);
98
+ __decorate([
99
+ (0, sequelize_typescript_1.BelongsTo)(() => business_beneficiary_entity_1.BusinessBeneficiary),
100
+ __metadata("design:type", business_beneficiary_entity_1.BusinessBeneficiary)
101
+ ], BusinessBeneficiaryAddress.prototype, "beneficiary", void 0);
102
+ exports.BusinessBeneficiaryAddress = BusinessBeneficiaryAddress = __decorate([
103
+ (0, sequelize_typescript_1.Table)({
104
+ tableName: "business_beneficiary_addresses",
105
+ timestamps: true,
106
+ paranoid: true,
107
+ indexes: [
108
+ {
109
+ // Ranking principal para las sugerencias (más usadas primero)
110
+ fields: [
111
+ "businessBeneficiaryId",
112
+ "type",
113
+ "usageCount",
114
+ "lastUsedAt",
115
+ ],
116
+ name: "bba_beneficiary_type_ranking_idx",
117
+ },
118
+ ],
119
+ })
120
+ ], BusinessBeneficiaryAddress);
121
+ //# sourceMappingURL=business-beneficiary-address.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"business-beneficiary-address.entity.js","sourceRoot":"","sources":["../../src/entities/business-beneficiary-address.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+DAU8B;AAC9B,+EAAoE;AA6C7D,IAAM,0BAA0B,GAAhC,MAAM,0BAA2B,SAAQ,4BAG/C;CAuEA,CAAA;AA1EY,gEAA0B;AAS7B;IALP,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,IAAI;QACnB,YAAY,EAAE,+BAAQ,CAAC,MAAM;QAC7B,UAAU,EAAE,IAAI;KACjB,CAAC;;sDACiB;AAOnB;IALC,IAAA,iCAAU,EAAC,GAAG,EAAE,CAAC,iDAAmB,CAAC;IACrC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,IAAI;QACnB,SAAS,EAAE,KAAK;KACjB,CAAC;;yEAC4B;AAM9B;IAJC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC;QAC5C,SAAS,EAAE,KAAK;KACjB,CAAC;;wDACmC;AAMrC;IAJC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,MAAM;QACrB,SAAS,EAAE,KAAK;KACjB,CAAC;;2DACc;AAMhB;IAJC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,MAAM;QACrB,SAAS,EAAE,KAAK;KACjB,CAAC;;4DACe;AAMjB;IAJC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,MAAM;QACrB,SAAS,EAAE,KAAK;KACjB,CAAC;;6DACgB;AAOlB;IALC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,MAAM;QACrB,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,0DAA0D;KACpE,CAAC;;2DACqB;AAQvB;IANC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,OAAO;QACtB,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,CAAC;QACf,OAAO,EAAE,gDAAgD;KAC1D,CAAC;;8DACiB;AAMnB;IAJC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,IAAI;QACnB,SAAS,EAAE,IAAI;KAChB,CAAC;;8DACsB;AAGhB;IADP,gCAAS;8BACS,IAAI;6DAAC;AAGhB;IADP,gCAAS;8BACS,IAAI;6DAAC;AAGhB;IADP,gCAAS;;6DACqB;AAG/B;IADC,IAAA,gCAAS,EAAC,GAAG,EAAE,CAAC,iDAAmB,CAAC;8BACxB,iDAAmB;+DAAC;qCAzEtB,0BAA0B;IAjBtC,IAAA,4BAAK,EAAC;QACL,SAAS,EAAE,gCAAgC;QAC3C,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE;YACP;gBACE,8DAA8D;gBAC9D,MAAM,EAAE;oBACN,uBAAuB;oBACvB,MAAM;oBACN,YAAY;oBACZ,YAAY;iBACb;gBACD,IAAI,EAAE,kCAAkC;aACzC;SACF;KACF,CAAC;GACW,0BAA0B,CA0EtC"}
@@ -0,0 +1,36 @@
1
+ import { Model } from "sequelize-typescript";
2
+ import { BusinessAccount } from "./business-account.entity";
3
+ import { BusinessBeneficiaryAddress } from "./business-beneficiary-address.entity";
4
+ export interface BusinessBeneficiaryAttributes {
5
+ id: string;
6
+ businessAccountId: string;
7
+ phoneNumber: string;
8
+ name: string;
9
+ notes: string | null;
10
+ totalTrips: number;
11
+ lastUsedAt: Date | null;
12
+ createdAt: Date;
13
+ updatedAt: Date;
14
+ deletedAt: Date | null;
15
+ }
16
+ export interface CreateBusinessBeneficiaryData {
17
+ businessAccountId: string;
18
+ phoneNumber: string;
19
+ name: string;
20
+ notes?: string | null;
21
+ }
22
+ export declare class BusinessBeneficiary extends Model<BusinessBeneficiaryAttributes, CreateBusinessBeneficiaryData> {
23
+ id: string;
24
+ businessAccountId: string;
25
+ phoneNumber: string;
26
+ name: string;
27
+ notes: string | null;
28
+ totalTrips: number;
29
+ lastUsedAt: Date | null;
30
+ createdAt: Date;
31
+ updatedAt: Date;
32
+ deletedAt: Date | null;
33
+ businessAccount: BusinessAccount;
34
+ addresses: BusinessBeneficiaryAddress[];
35
+ }
36
+ //# sourceMappingURL=business-beneficiary.entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"business-beneficiary.entity.d.ts","sourceRoot":"","sources":["../../src/entities/business-beneficiary.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,EAQN,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AAEnF,MAAM,WAAW,6BAA6B;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,6BAA6B;IAC5C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,qBAgBa,mBAAoB,SAAQ,KAAK,CAC5C,6BAA6B,EAC7B,6BAA6B,CAC9B;IAMS,EAAE,EAAE,MAAM,CAAC;IAQnB,iBAAiB,EAAE,MAAM,CAAC;IAO1B,WAAW,EAAE,MAAM,CAAC;IAMpB,IAAI,EAAE,MAAM,CAAC;IAMb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAQrB,UAAU,EAAE,MAAM,CAAC;IAOnB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IAGhB,SAAS,EAAE,IAAI,CAAC;IAGhB,SAAS,EAAE,IAAI,CAAC;IAGhB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IAG/B,eAAe,EAAE,eAAe,CAAC;IAGjC,SAAS,EAAE,0BAA0B,EAAE,CAAC;CACzC"}
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.BusinessBeneficiary = void 0;
13
+ const sequelize_typescript_1 = require("sequelize-typescript");
14
+ const business_account_entity_1 = require("./business-account.entity");
15
+ const business_beneficiary_address_entity_1 = require("./business-beneficiary-address.entity");
16
+ let BusinessBeneficiary = class BusinessBeneficiary extends sequelize_typescript_1.Model {
17
+ };
18
+ exports.BusinessBeneficiary = BusinessBeneficiary;
19
+ __decorate([
20
+ (0, sequelize_typescript_1.Column)({
21
+ type: sequelize_typescript_1.DataType.UUID,
22
+ defaultValue: sequelize_typescript_1.DataType.UUIDV4,
23
+ primaryKey: true,
24
+ }),
25
+ __metadata("design:type", String)
26
+ ], BusinessBeneficiary.prototype, "id", void 0);
27
+ __decorate([
28
+ (0, sequelize_typescript_1.ForeignKey)(() => business_account_entity_1.BusinessAccount),
29
+ (0, sequelize_typescript_1.Column)({
30
+ type: sequelize_typescript_1.DataType.UUID,
31
+ allowNull: false,
32
+ comment: "Cuenta business dueña del beneficiario",
33
+ }),
34
+ __metadata("design:type", String)
35
+ ], BusinessBeneficiary.prototype, "businessAccountId", void 0);
36
+ __decorate([
37
+ (0, sequelize_typescript_1.Column)({
38
+ type: sequelize_typescript_1.DataType.STRING(20),
39
+ allowNull: false,
40
+ comment: "Teléfono normalizado en formato E.164 (p. ej. +5255...)",
41
+ }),
42
+ __metadata("design:type", String)
43
+ ], BusinessBeneficiary.prototype, "phoneNumber", void 0);
44
+ __decorate([
45
+ (0, sequelize_typescript_1.Column)({
46
+ type: sequelize_typescript_1.DataType.STRING,
47
+ allowNull: false,
48
+ }),
49
+ __metadata("design:type", String)
50
+ ], BusinessBeneficiary.prototype, "name", void 0);
51
+ __decorate([
52
+ (0, sequelize_typescript_1.Column)({
53
+ type: sequelize_typescript_1.DataType.STRING,
54
+ allowNull: true,
55
+ }),
56
+ __metadata("design:type", Object)
57
+ ], BusinessBeneficiary.prototype, "notes", void 0);
58
+ __decorate([
59
+ (0, sequelize_typescript_1.Column)({
60
+ type: sequelize_typescript_1.DataType.INTEGER,
61
+ allowNull: false,
62
+ defaultValue: 0,
63
+ comment: "Conteo total de viajes generados para este beneficiario",
64
+ }),
65
+ __metadata("design:type", Number)
66
+ ], BusinessBeneficiary.prototype, "totalTrips", void 0);
67
+ __decorate([
68
+ (0, sequelize_typescript_1.Column)({
69
+ type: sequelize_typescript_1.DataType.DATE,
70
+ allowNull: true,
71
+ comment: "Última vez que se usó este beneficiario para crear un viaje",
72
+ }),
73
+ __metadata("design:type", Object)
74
+ ], BusinessBeneficiary.prototype, "lastUsedAt", void 0);
75
+ __decorate([
76
+ sequelize_typescript_1.CreatedAt,
77
+ __metadata("design:type", Date)
78
+ ], BusinessBeneficiary.prototype, "createdAt", void 0);
79
+ __decorate([
80
+ sequelize_typescript_1.UpdatedAt,
81
+ __metadata("design:type", Date)
82
+ ], BusinessBeneficiary.prototype, "updatedAt", void 0);
83
+ __decorate([
84
+ sequelize_typescript_1.DeletedAt,
85
+ __metadata("design:type", Object)
86
+ ], BusinessBeneficiary.prototype, "deletedAt", void 0);
87
+ __decorate([
88
+ (0, sequelize_typescript_1.BelongsTo)(() => business_account_entity_1.BusinessAccount),
89
+ __metadata("design:type", business_account_entity_1.BusinessAccount)
90
+ ], BusinessBeneficiary.prototype, "businessAccount", void 0);
91
+ __decorate([
92
+ (0, sequelize_typescript_1.HasMany)(() => business_beneficiary_address_entity_1.BusinessBeneficiaryAddress, "businessBeneficiaryId"),
93
+ __metadata("design:type", Array)
94
+ ], BusinessBeneficiary.prototype, "addresses", void 0);
95
+ exports.BusinessBeneficiary = BusinessBeneficiary = __decorate([
96
+ (0, sequelize_typescript_1.Table)({
97
+ tableName: "business_beneficiaries",
98
+ timestamps: true,
99
+ paranoid: true,
100
+ indexes: [
101
+ {
102
+ unique: true,
103
+ fields: ["businessAccountId", "phoneNumber"],
104
+ name: "business_beneficiaries_account_phone_unique",
105
+ },
106
+ {
107
+ fields: ["phoneNumber"],
108
+ name: "business_beneficiaries_phone_idx",
109
+ },
110
+ ],
111
+ })
112
+ ], BusinessBeneficiary);
113
+ //# sourceMappingURL=business-beneficiary.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"business-beneficiary.entity.js","sourceRoot":"","sources":["../../src/entities/business-beneficiary.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+DAW8B;AAC9B,uEAA4D;AAC5D,+FAAmF;AAsC5E,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,4BAGxC;CAgEA,CAAA;AAnEY,kDAAmB;AAStB;IALP,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,IAAI;QACnB,YAAY,EAAE,+BAAQ,CAAC,MAAM;QAC7B,UAAU,EAAE,IAAI;KACjB,CAAC;;+CACiB;AAQnB;IANC,IAAA,iCAAU,EAAC,GAAG,EAAE,CAAC,yCAAe,CAAC;IACjC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,IAAI;QACnB,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,wCAAwC;KAClD,CAAC;;8DACwB;AAO1B;IALC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,yDAAyD;KACnE,CAAC;;wDACkB;AAMpB;IAJC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,MAAM;QACrB,SAAS,EAAE,KAAK;KACjB,CAAC;;iDACW;AAMb;IAJC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,MAAM;QACrB,SAAS,EAAE,IAAI;KAChB,CAAC;;kDACmB;AAQrB;IANC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,OAAO;QACtB,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,CAAC;QACf,OAAO,EAAE,yDAAyD;KACnE,CAAC;;uDACiB;AAOnB;IALC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,IAAI;QACnB,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,6DAA6D;KACvE,CAAC;;uDACsB;AAGhB;IADP,gCAAS;8BACS,IAAI;sDAAC;AAGhB;IADP,gCAAS;8BACS,IAAI;sDAAC;AAGhB;IADP,gCAAS;;sDACqB;AAG/B;IADC,IAAA,gCAAS,EAAC,GAAG,EAAE,CAAC,yCAAe,CAAC;8BAChB,yCAAe;4DAAC;AAGjC;IADC,IAAA,8BAAO,EAAC,GAAG,EAAE,CAAC,gEAA0B,EAAE,uBAAuB,CAAC;;sDAC3B;8BAlE7B,mBAAmB;IAhB/B,IAAA,4BAAK,EAAC;QACL,SAAS,EAAE,wBAAwB;QACnC,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE;YACP;gBACE,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,CAAC,mBAAmB,EAAE,aAAa,CAAC;gBAC5C,IAAI,EAAE,6CAA6C;aACpD;YACD;gBACE,MAAM,EAAE,CAAC,aAAa,CAAC;gBACvB,IAAI,EAAE,kCAAkC;aACzC;SACF;KACF,CAAC;GACW,mBAAmB,CAmE/B"}
@@ -0,0 +1,46 @@
1
+ import { Model } from "sequelize-typescript";
2
+ import { ServiceType } from "../enums/service-types.enum";
3
+ import { FareCalculationRequestKind } from "../enums/fare-calculation-request.enum";
4
+ export interface FareCalculationRequestAttributes {
5
+ id: string;
6
+ userId: string;
7
+ originLatitude: number;
8
+ originLongitude: number;
9
+ destinationLatitude: number | null;
10
+ destinationLongitude: number | null;
11
+ stopsCount: number;
12
+ serviceType: ServiceType;
13
+ requestKind: FareCalculationRequestKind;
14
+ metadata: Record<string, unknown> | null;
15
+ responseCalculateAllService: Record<string, unknown> | null;
16
+ createdAt: Date;
17
+ updatedAt: Date;
18
+ }
19
+ export interface CreateFareCalculationRequestData {
20
+ userId: string;
21
+ originLatitude: number;
22
+ originLongitude: number;
23
+ destinationLatitude?: number | null;
24
+ destinationLongitude?: number | null;
25
+ stopsCount?: number;
26
+ serviceType: ServiceType;
27
+ requestKind: FareCalculationRequestKind;
28
+ metadata?: Record<string, unknown> | null;
29
+ responseCalculateAllService?: Record<string, unknown> | null;
30
+ }
31
+ export declare class FareCalculationRequest extends Model<FareCalculationRequestAttributes, CreateFareCalculationRequestData> {
32
+ id: string;
33
+ userId: string;
34
+ originLatitude: number;
35
+ originLongitude: number;
36
+ destinationLatitude: number | null;
37
+ destinationLongitude: number | null;
38
+ stopsCount: number;
39
+ serviceType: ServiceType;
40
+ requestKind: FareCalculationRequestKind;
41
+ metadata: Record<string, unknown> | null;
42
+ responseCalculateAllService: Record<string, unknown> | null;
43
+ createdAt: Date;
44
+ updatedAt: Date;
45
+ }
46
+ //# sourceMappingURL=fare-calculation-request.entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fare-calculation-request.entity.d.ts","sourceRoot":"","sources":["../../src/entities/fare-calculation-request.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,EAAoB,MAAM,sBAAsB,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AAEpF,MAAM,WAAW,gCAAgC;IAC/C,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,0BAA0B,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACzC,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC5D,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,gCAAgC;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,0BAA0B,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC1C,2BAA2B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC9D;AAED,qBAca,sBAAuB,SAAQ,KAAK,CAC/C,gCAAgC,EAChC,gCAAgC,CACjC;IAMS,EAAE,EAAE,MAAM,CAAC;IAOnB,MAAM,EAAE,MAAM,CAAC;IAOf,cAAc,EAAE,MAAM,CAAC;IAOvB,eAAe,EAAE,MAAM,CAAC;IAOxB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IAOnC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IAQpC,UAAU,EAAE,MAAM,CAAC;IAOnB,WAAW,EAAE,WAAW,CAAC;IAOzB,WAAW,EAAE,0BAA0B,CAAC;IAOxC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAOzC,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAGpD,SAAS,EAAE,IAAI,CAAC;IAGhB,SAAS,EAAE,IAAI,CAAC;CACzB"}
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.FareCalculationRequest = void 0;
13
+ const sequelize_typescript_1 = require("sequelize-typescript");
14
+ const service_types_enum_1 = require("../enums/service-types.enum");
15
+ const fare_calculation_request_enum_1 = require("../enums/fare-calculation-request.enum");
16
+ let FareCalculationRequest = class FareCalculationRequest extends sequelize_typescript_1.Model {
17
+ };
18
+ exports.FareCalculationRequest = FareCalculationRequest;
19
+ __decorate([
20
+ (0, sequelize_typescript_1.Column)({
21
+ type: sequelize_typescript_1.DataType.UUID,
22
+ defaultValue: sequelize_typescript_1.DataType.UUIDV4,
23
+ primaryKey: true,
24
+ }),
25
+ __metadata("design:type", String)
26
+ ], FareCalculationRequest.prototype, "id", void 0);
27
+ __decorate([
28
+ (0, sequelize_typescript_1.Column)({
29
+ type: sequelize_typescript_1.DataType.UUID,
30
+ allowNull: false,
31
+ comment: "Usuario autenticado que solicitó el cálculo",
32
+ }),
33
+ __metadata("design:type", String)
34
+ ], FareCalculationRequest.prototype, "userId", void 0);
35
+ __decorate([
36
+ (0, sequelize_typescript_1.Column)({
37
+ type: sequelize_typescript_1.DataType.DECIMAL(10, 8),
38
+ allowNull: false,
39
+ comment: "Latitud del origen enviada en calculate-all-services",
40
+ }),
41
+ __metadata("design:type", Number)
42
+ ], FareCalculationRequest.prototype, "originLatitude", void 0);
43
+ __decorate([
44
+ (0, sequelize_typescript_1.Column)({
45
+ type: sequelize_typescript_1.DataType.DECIMAL(11, 8),
46
+ allowNull: false,
47
+ comment: "Longitud del origen enviada en calculate-all-services",
48
+ }),
49
+ __metadata("design:type", Number)
50
+ ], FareCalculationRequest.prototype, "originLongitude", void 0);
51
+ __decorate([
52
+ (0, sequelize_typescript_1.Column)({
53
+ type: sequelize_typescript_1.DataType.DECIMAL(10, 8),
54
+ allowNull: true,
55
+ comment: "Latitud del destino enviada en calculate-all-services",
56
+ }),
57
+ __metadata("design:type", Object)
58
+ ], FareCalculationRequest.prototype, "destinationLatitude", void 0);
59
+ __decorate([
60
+ (0, sequelize_typescript_1.Column)({
61
+ type: sequelize_typescript_1.DataType.DECIMAL(11, 8),
62
+ allowNull: true,
63
+ comment: "Longitud del destino enviada en calculate-all-services",
64
+ }),
65
+ __metadata("design:type", Object)
66
+ ], FareCalculationRequest.prototype, "destinationLongitude", void 0);
67
+ __decorate([
68
+ (0, sequelize_typescript_1.Column)({
69
+ type: sequelize_typescript_1.DataType.INTEGER,
70
+ allowNull: false,
71
+ defaultValue: 0,
72
+ comment: "Cantidad de paradas enviada por el cliente",
73
+ }),
74
+ __metadata("design:type", Number)
75
+ ], FareCalculationRequest.prototype, "stopsCount", void 0);
76
+ __decorate([
77
+ (0, sequelize_typescript_1.Column)({
78
+ type: sequelize_typescript_1.DataType.ENUM(...Object.values(service_types_enum_1.ServiceType)),
79
+ allowNull: false,
80
+ comment: "serviceType del request (trip, food, delivery)",
81
+ }),
82
+ __metadata("design:type", String)
83
+ ], FareCalculationRequest.prototype, "serviceType", void 0);
84
+ __decorate([
85
+ (0, sequelize_typescript_1.Column)({
86
+ type: sequelize_typescript_1.DataType.ENUM(...Object.values(fare_calculation_request_enum_1.FareCalculationRequestKind)),
87
+ allowNull: false,
88
+ comment: "Tipo funcional para reporte: trip o package",
89
+ }),
90
+ __metadata("design:type", String)
91
+ ], FareCalculationRequest.prototype, "requestKind", void 0);
92
+ __decorate([
93
+ (0, sequelize_typescript_1.Column)({
94
+ type: sequelize_typescript_1.DataType.JSON,
95
+ allowNull: true,
96
+ comment: "Payload completo del request y respuesta/error del cálculo",
97
+ }),
98
+ __metadata("design:type", Object)
99
+ ], FareCalculationRequest.prototype, "metadata", void 0);
100
+ __decorate([
101
+ (0, sequelize_typescript_1.Column)({
102
+ type: sequelize_typescript_1.DataType.JSON,
103
+ allowNull: true,
104
+ comment: "Respuesta del endpoint calculate-all-services",
105
+ }),
106
+ __metadata("design:type", Object)
107
+ ], FareCalculationRequest.prototype, "responseCalculateAllService", void 0);
108
+ __decorate([
109
+ sequelize_typescript_1.CreatedAt,
110
+ __metadata("design:type", Date)
111
+ ], FareCalculationRequest.prototype, "createdAt", void 0);
112
+ __decorate([
113
+ sequelize_typescript_1.UpdatedAt,
114
+ __metadata("design:type", Date)
115
+ ], FareCalculationRequest.prototype, "updatedAt", void 0);
116
+ exports.FareCalculationRequest = FareCalculationRequest = __decorate([
117
+ (0, sequelize_typescript_1.Table)({
118
+ tableName: "fare_calculation_requests",
119
+ timestamps: true,
120
+ indexes: [
121
+ {
122
+ name: "fare_calculation_requests_user_idx",
123
+ fields: ["userId"],
124
+ },
125
+ {
126
+ name: "fare_calculation_requests_kind_created_idx",
127
+ fields: ["requestKind", "createdAt"],
128
+ },
129
+ ],
130
+ })
131
+ ], FareCalculationRequest);
132
+ //# sourceMappingURL=fare-calculation-request.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fare-calculation-request.entity.js","sourceRoot":"","sources":["../../src/entities/fare-calculation-request.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+DAA4F;AAC5F,oEAA0D;AAC1D,0FAAoF;AA6C7E,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,4BAG3C;CAoFA,CAAA;AAvFY,wDAAsB;AASzB;IALP,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,IAAI;QACnB,YAAY,EAAE,+BAAQ,CAAC,MAAM;QAC7B,UAAU,EAAE,IAAI;KACjB,CAAC;;kDACiB;AAOnB;IALC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,IAAI;QACnB,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,6CAA6C;KACvD,CAAC;;sDACa;AAOf;IALC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7B,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,sDAAsD;KAChE,CAAC;;8DACqB;AAOvB;IALC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7B,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,uDAAuD;KACjE,CAAC;;+DACsB;AAOxB;IALC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7B,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,uDAAuD;KACjE,CAAC;;mEACiC;AAOnC;IALC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7B,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,wDAAwD;KAClE,CAAC;;oEACkC;AAQpC;IANC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,OAAO;QACtB,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,CAAC;QACf,OAAO,EAAE,4CAA4C;KACtD,CAAC;;0DACiB;AAOnB;IALC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,gCAAW,CAAC,CAAC;QAClD,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,gDAAgD;KAC1D,CAAC;;2DACuB;AAOzB;IALC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,0DAA0B,CAAC,CAAC;QACjE,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,6CAA6C;KACvD,CAAC;;2DACsC;AAOxC;IALC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,IAAI;QACnB,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,4DAA4D;KACtE,CAAC;;wDACuC;AAOzC;IALC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,IAAI;QACnB,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,+CAA+C;KACzD,CAAC;;2EAC0D;AAGpD;IADP,gCAAS;8BACS,IAAI;yDAAC;AAGhB;IADP,gCAAS;8BACS,IAAI;yDAAC;iCAtFb,sBAAsB;IAdlC,IAAA,4BAAK,EAAC;QACL,SAAS,EAAE,2BAA2B;QACtC,UAAU,EAAE,IAAI;QAChB,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,oCAAoC;gBAC1C,MAAM,EAAE,CAAC,QAAQ,CAAC;aACnB;YACD;gBACE,IAAI,EAAE,4CAA4C;gBAClD,MAAM,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC;aACrC;SACF;KACF,CAAC;GACW,sBAAsB,CAuFlC"}
@@ -76,5 +76,8 @@ export * from "./business-settlement-trip.entity";
76
76
  export * from "./business-company-code.entity";
77
77
  export * from "./business-cost-center.entity";
78
78
  export * from "./business-account-service-type.entity";
79
+ export * from "./business-beneficiary.entity";
80
+ export * from "./business-beneficiary-address.entity";
79
81
  export * from "./driver-connection-session.entity";
82
+ export * from "./fare-calculation-request.entity";
80
83
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,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,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,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,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,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,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,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,oCAAoC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,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,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,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,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,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,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,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,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC"}
@@ -92,5 +92,8 @@ __exportStar(require("./business-settlement-trip.entity"), exports);
92
92
  __exportStar(require("./business-company-code.entity"), exports);
93
93
  __exportStar(require("./business-cost-center.entity"), exports);
94
94
  __exportStar(require("./business-account-service-type.entity"), exports);
95
+ __exportStar(require("./business-beneficiary.entity"), exports);
96
+ __exportStar(require("./business-beneficiary-address.entity"), exports);
95
97
  __exportStar(require("./driver-connection-session.entity"), exports);
98
+ __exportStar(require("./fare-calculation-request.entity"), exports);
96
99
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,mDAAiC;AACjC,mDAAiC;AACjC,iDAA+B;AAC/B,yDAAuC;AACvC,yDAAuC;AACvC,mEAAiD;AACjD,kDAAgC;AAChC,6DAA2C;AAC3C,kDAAgC;AAChC,4DAA0C;AAC1C,6DAA2C;AAC3C,qDAAmC;AACnC,yDAAuC;AACvC,oDAAkC;AAClC,oDAAkC;AAClC,iDAA+B;AAC/B,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,wDAAsC;AACtC,2DAAyC;AACzC,kDAAgC;AAChC,qEAAmD;AACnD,yDAAuC;AACvC,gEAA8C;AAC9C,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,0DAAwC;AACxC,0DAAwC;AACxC,qDAAmC;AACnC,0DAAwC;AACxC,qEAAmD;AACnD,8DAA4C;AAC5C,uEAAqD;AACrD,uEAAqD;AACrD,wEAAsD;AACtD,qEAAmD;AACnD,gEAA8C;AAC9C,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,qEAAmD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,mDAAiC;AACjC,mDAAiC;AACjC,iDAA+B;AAC/B,yDAAuC;AACvC,yDAAuC;AACvC,mEAAiD;AACjD,kDAAgC;AAChC,6DAA2C;AAC3C,kDAAgC;AAChC,4DAA0C;AAC1C,6DAA2C;AAC3C,qDAAmC;AACnC,yDAAuC;AACvC,oDAAkC;AAClC,oDAAkC;AAClC,iDAA+B;AAC/B,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,wDAAsC;AACtC,2DAAyC;AACzC,kDAAgC;AAChC,qEAAmD;AACnD,yDAAuC;AACvC,gEAA8C;AAC9C,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,0DAAwC;AACxC,0DAAwC;AACxC,qDAAmC;AACnC,0DAAwC;AACxC,qEAAmD;AACnD,8DAA4C;AAC5C,uEAAqD;AACrD,uEAAqD;AACrD,wEAAsD;AACtD,qEAAmD;AACnD,gEAA8C;AAC9C,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,qEAAmD;AACnD,oEAAkD"}
@@ -0,0 +1,5 @@
1
+ export declare enum FareCalculationRequestKind {
2
+ TRIP = "trip",
3
+ PACKAGE = "package"
4
+ }
5
+ //# sourceMappingURL=fare-calculation-request.enum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fare-calculation-request.enum.d.ts","sourceRoot":"","sources":["../../src/enums/fare-calculation-request.enum.ts"],"names":[],"mappings":"AAAA,oBAAY,0BAA0B;IACpC,IAAI,SAAS;IACb,OAAO,YAAY;CACpB"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FareCalculationRequestKind = void 0;
4
+ var FareCalculationRequestKind;
5
+ (function (FareCalculationRequestKind) {
6
+ FareCalculationRequestKind["TRIP"] = "trip";
7
+ FareCalculationRequestKind["PACKAGE"] = "package";
8
+ })(FareCalculationRequestKind || (exports.FareCalculationRequestKind = FareCalculationRequestKind = {}));
9
+ //# sourceMappingURL=fare-calculation-request.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fare-calculation-request.enum.js","sourceRoot":"","sources":["../../src/enums/fare-calculation-request.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,0BAGX;AAHD,WAAY,0BAA0B;IACpC,2CAAa,CAAA;IACb,iDAAmB,CAAA;AACrB,CAAC,EAHW,0BAA0B,0CAA1B,0BAA0B,QAGrC"}
@@ -21,4 +21,5 @@ export * from "./semovi.enum";
21
21
  export * from "./beneficiary.enum";
22
22
  export * from "./route.enum";
23
23
  export * from "./business-company-code.enum";
24
+ export * from "./fare-calculation-request.enum";
24
25
  //# 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,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"}
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,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,iCAAiC,CAAC"}
@@ -40,4 +40,5 @@ __exportStar(require("./semovi.enum"), exports);
40
40
  __exportStar(require("./beneficiary.enum"), exports);
41
41
  __exportStar(require("./route.enum"), exports);
42
42
  __exportStar(require("./business-company-code.enum"), exports);
43
+ __exportStar(require("./fare-calculation-request.enum"), exports);
43
44
  //# 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,mEAAiD;AACjD,mDAAiC;AACjC,2DAAyC;AACzC,gDAA8B;AAC9B,qDAAmC;AACnC,+CAA6B;AAC7B,+DAA6C"}
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,mEAAiD;AACjD,mDAAiC;AACjC,2DAAyC;AACzC,gDAA8B;AAC9B,qDAAmC;AACnC,+CAA6B;AAC7B,+DAA6C;AAC7C,kEAAgD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "uaxi-shared-entities",
3
- "version": "1.0.168",
3
+ "version": "1.0.170",
4
4
  "description": "Entidades compartidas para microservicios UAXI",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -0,0 +1,131 @@
1
+ import {
2
+ Table,
3
+ Column,
4
+ Model,
5
+ DataType,
6
+ CreatedAt,
7
+ UpdatedAt,
8
+ DeletedAt,
9
+ ForeignKey,
10
+ BelongsTo,
11
+ } from "sequelize-typescript";
12
+ import { BusinessBeneficiary } from "./business-beneficiary.entity";
13
+
14
+ export type BusinessBeneficiaryAddressType = "pickup" | "destination";
15
+
16
+ export interface BusinessBeneficiaryAddressAttributes {
17
+ id: string;
18
+ businessBeneficiaryId: string;
19
+ type: BusinessBeneficiaryAddressType;
20
+ address: string;
21
+ latitude: number;
22
+ longitude: number;
23
+ placeId: string | null;
24
+ usageCount: number;
25
+ lastUsedAt: Date | null;
26
+ createdAt: Date;
27
+ updatedAt: Date;
28
+ deletedAt: Date | null;
29
+ }
30
+
31
+ export interface CreateBusinessBeneficiaryAddressData {
32
+ businessBeneficiaryId: string;
33
+ type: BusinessBeneficiaryAddressType;
34
+ address: string;
35
+ latitude: number;
36
+ longitude: number;
37
+ placeId?: string | null;
38
+ }
39
+
40
+ @Table({
41
+ tableName: "business_beneficiary_addresses",
42
+ timestamps: true,
43
+ paranoid: true,
44
+ indexes: [
45
+ {
46
+ // Ranking principal para las sugerencias (más usadas primero)
47
+ fields: [
48
+ "businessBeneficiaryId",
49
+ "type",
50
+ "usageCount",
51
+ "lastUsedAt",
52
+ ],
53
+ name: "bba_beneficiary_type_ranking_idx",
54
+ },
55
+ ],
56
+ })
57
+ export class BusinessBeneficiaryAddress extends Model<
58
+ BusinessBeneficiaryAddressAttributes,
59
+ CreateBusinessBeneficiaryAddressData
60
+ > {
61
+ @Column({
62
+ type: DataType.UUID,
63
+ defaultValue: DataType.UUIDV4,
64
+ primaryKey: true,
65
+ })
66
+ declare id: string;
67
+
68
+ @ForeignKey(() => BusinessBeneficiary)
69
+ @Column({
70
+ type: DataType.UUID,
71
+ allowNull: false,
72
+ })
73
+ businessBeneficiaryId: string;
74
+
75
+ @Column({
76
+ type: DataType.ENUM("pickup", "destination"),
77
+ allowNull: false,
78
+ })
79
+ type: BusinessBeneficiaryAddressType;
80
+
81
+ @Column({
82
+ type: DataType.STRING,
83
+ allowNull: false,
84
+ })
85
+ address: string;
86
+
87
+ @Column({
88
+ type: DataType.DOUBLE,
89
+ allowNull: false,
90
+ })
91
+ latitude: number;
92
+
93
+ @Column({
94
+ type: DataType.DOUBLE,
95
+ allowNull: false,
96
+ })
97
+ longitude: number;
98
+
99
+ @Column({
100
+ type: DataType.STRING,
101
+ allowNull: true,
102
+ comment: "Google place_id cuando esté disponible (para deduplicar)",
103
+ })
104
+ placeId: string | null;
105
+
106
+ @Column({
107
+ type: DataType.INTEGER,
108
+ allowNull: false,
109
+ defaultValue: 1,
110
+ comment: "Número de veces que se ha usado esta dirección",
111
+ })
112
+ usageCount: number;
113
+
114
+ @Column({
115
+ type: DataType.DATE,
116
+ allowNull: true,
117
+ })
118
+ lastUsedAt: Date | null;
119
+
120
+ @CreatedAt
121
+ declare createdAt: Date;
122
+
123
+ @UpdatedAt
124
+ declare updatedAt: Date;
125
+
126
+ @DeletedAt
127
+ declare deletedAt: Date | null;
128
+
129
+ @BelongsTo(() => BusinessBeneficiary)
130
+ beneficiary: BusinessBeneficiary;
131
+ }
@@ -0,0 +1,119 @@
1
+ import {
2
+ Table,
3
+ Column,
4
+ Model,
5
+ DataType,
6
+ CreatedAt,
7
+ UpdatedAt,
8
+ DeletedAt,
9
+ ForeignKey,
10
+ BelongsTo,
11
+ HasMany,
12
+ } from "sequelize-typescript";
13
+ import { BusinessAccount } from "./business-account.entity";
14
+ import { BusinessBeneficiaryAddress } from "./business-beneficiary-address.entity";
15
+
16
+ export interface BusinessBeneficiaryAttributes {
17
+ id: string;
18
+ businessAccountId: string;
19
+ phoneNumber: string;
20
+ name: string;
21
+ notes: string | null;
22
+ totalTrips: number;
23
+ lastUsedAt: Date | null;
24
+ createdAt: Date;
25
+ updatedAt: Date;
26
+ deletedAt: Date | null;
27
+ }
28
+
29
+ export interface CreateBusinessBeneficiaryData {
30
+ businessAccountId: string;
31
+ phoneNumber: string;
32
+ name: string;
33
+ notes?: string | null;
34
+ }
35
+
36
+ @Table({
37
+ tableName: "business_beneficiaries",
38
+ timestamps: true,
39
+ paranoid: true,
40
+ indexes: [
41
+ {
42
+ unique: true,
43
+ fields: ["businessAccountId", "phoneNumber"],
44
+ name: "business_beneficiaries_account_phone_unique",
45
+ },
46
+ {
47
+ fields: ["phoneNumber"],
48
+ name: "business_beneficiaries_phone_idx",
49
+ },
50
+ ],
51
+ })
52
+ export class BusinessBeneficiary extends Model<
53
+ BusinessBeneficiaryAttributes,
54
+ CreateBusinessBeneficiaryData
55
+ > {
56
+ @Column({
57
+ type: DataType.UUID,
58
+ defaultValue: DataType.UUIDV4,
59
+ primaryKey: true,
60
+ })
61
+ declare id: string;
62
+
63
+ @ForeignKey(() => BusinessAccount)
64
+ @Column({
65
+ type: DataType.UUID,
66
+ allowNull: false,
67
+ comment: "Cuenta business dueña del beneficiario",
68
+ })
69
+ businessAccountId: string;
70
+
71
+ @Column({
72
+ type: DataType.STRING(20),
73
+ allowNull: false,
74
+ comment: "Teléfono normalizado en formato E.164 (p. ej. +5255...)",
75
+ })
76
+ phoneNumber: string;
77
+
78
+ @Column({
79
+ type: DataType.STRING,
80
+ allowNull: false,
81
+ })
82
+ name: string;
83
+
84
+ @Column({
85
+ type: DataType.STRING,
86
+ allowNull: true,
87
+ })
88
+ notes: string | null;
89
+
90
+ @Column({
91
+ type: DataType.INTEGER,
92
+ allowNull: false,
93
+ defaultValue: 0,
94
+ comment: "Conteo total de viajes generados para este beneficiario",
95
+ })
96
+ totalTrips: number;
97
+
98
+ @Column({
99
+ type: DataType.DATE,
100
+ allowNull: true,
101
+ comment: "Última vez que se usó este beneficiario para crear un viaje",
102
+ })
103
+ lastUsedAt: Date | null;
104
+
105
+ @CreatedAt
106
+ declare createdAt: Date;
107
+
108
+ @UpdatedAt
109
+ declare updatedAt: Date;
110
+
111
+ @DeletedAt
112
+ declare deletedAt: Date | null;
113
+
114
+ @BelongsTo(() => BusinessAccount)
115
+ businessAccount: BusinessAccount;
116
+
117
+ @HasMany(() => BusinessBeneficiaryAddress, "businessBeneficiaryId")
118
+ addresses: BusinessBeneficiaryAddress[];
119
+ }
@@ -0,0 +1,136 @@
1
+ import { Column, CreatedAt, DataType, Model, Table, UpdatedAt } from "sequelize-typescript";
2
+ import { ServiceType } from "../enums/service-types.enum";
3
+ import { FareCalculationRequestKind } from "../enums/fare-calculation-request.enum";
4
+
5
+ export interface FareCalculationRequestAttributes {
6
+ id: string;
7
+ userId: string;
8
+ originLatitude: number;
9
+ originLongitude: number;
10
+ destinationLatitude: number | null;
11
+ destinationLongitude: number | null;
12
+ stopsCount: number;
13
+ serviceType: ServiceType;
14
+ requestKind: FareCalculationRequestKind;
15
+ metadata: Record<string, unknown> | null;
16
+ responseCalculateAllService: Record<string, unknown> | null;
17
+ createdAt: Date;
18
+ updatedAt: Date;
19
+ }
20
+
21
+ export interface CreateFareCalculationRequestData {
22
+ userId: string;
23
+ originLatitude: number;
24
+ originLongitude: number;
25
+ destinationLatitude?: number | null;
26
+ destinationLongitude?: number | null;
27
+ stopsCount?: number;
28
+ serviceType: ServiceType;
29
+ requestKind: FareCalculationRequestKind;
30
+ metadata?: Record<string, unknown> | null;
31
+ responseCalculateAllService?: Record<string, unknown> | null;
32
+ }
33
+
34
+ @Table({
35
+ tableName: "fare_calculation_requests",
36
+ timestamps: true,
37
+ indexes: [
38
+ {
39
+ name: "fare_calculation_requests_user_idx",
40
+ fields: ["userId"],
41
+ },
42
+ {
43
+ name: "fare_calculation_requests_kind_created_idx",
44
+ fields: ["requestKind", "createdAt"],
45
+ },
46
+ ],
47
+ })
48
+ export class FareCalculationRequest extends Model<
49
+ FareCalculationRequestAttributes,
50
+ CreateFareCalculationRequestData
51
+ > {
52
+ @Column({
53
+ type: DataType.UUID,
54
+ defaultValue: DataType.UUIDV4,
55
+ primaryKey: true,
56
+ })
57
+ declare id: string;
58
+
59
+ @Column({
60
+ type: DataType.UUID,
61
+ allowNull: false,
62
+ comment: "Usuario autenticado que solicitó el cálculo",
63
+ })
64
+ userId: string;
65
+
66
+ @Column({
67
+ type: DataType.DECIMAL(10, 8),
68
+ allowNull: false,
69
+ comment: "Latitud del origen enviada en calculate-all-services",
70
+ })
71
+ originLatitude: number;
72
+
73
+ @Column({
74
+ type: DataType.DECIMAL(11, 8),
75
+ allowNull: false,
76
+ comment: "Longitud del origen enviada en calculate-all-services",
77
+ })
78
+ originLongitude: number;
79
+
80
+ @Column({
81
+ type: DataType.DECIMAL(10, 8),
82
+ allowNull: true,
83
+ comment: "Latitud del destino enviada en calculate-all-services",
84
+ })
85
+ destinationLatitude: number | null;
86
+
87
+ @Column({
88
+ type: DataType.DECIMAL(11, 8),
89
+ allowNull: true,
90
+ comment: "Longitud del destino enviada en calculate-all-services",
91
+ })
92
+ destinationLongitude: number | null;
93
+
94
+ @Column({
95
+ type: DataType.INTEGER,
96
+ allowNull: false,
97
+ defaultValue: 0,
98
+ comment: "Cantidad de paradas enviada por el cliente",
99
+ })
100
+ stopsCount: number;
101
+
102
+ @Column({
103
+ type: DataType.ENUM(...Object.values(ServiceType)),
104
+ allowNull: false,
105
+ comment: "serviceType del request (trip, food, delivery)",
106
+ })
107
+ serviceType: ServiceType;
108
+
109
+ @Column({
110
+ type: DataType.ENUM(...Object.values(FareCalculationRequestKind)),
111
+ allowNull: false,
112
+ comment: "Tipo funcional para reporte: trip o package",
113
+ })
114
+ requestKind: FareCalculationRequestKind;
115
+
116
+ @Column({
117
+ type: DataType.JSON,
118
+ allowNull: true,
119
+ comment: "Payload completo del request y respuesta/error del cálculo",
120
+ })
121
+ metadata: Record<string, unknown> | null;
122
+
123
+ @Column({
124
+ type: DataType.JSON,
125
+ allowNull: true,
126
+ comment: "Respuesta del endpoint calculate-all-services",
127
+ })
128
+ responseCalculateAllService: Record<string, unknown> | null;
129
+
130
+ @CreatedAt
131
+ declare createdAt: Date;
132
+
133
+ @UpdatedAt
134
+ declare updatedAt: Date;
135
+ }
136
+
@@ -76,4 +76,7 @@ export * from "./business-settlement-trip.entity";
76
76
  export * from "./business-company-code.entity";
77
77
  export * from "./business-cost-center.entity";
78
78
  export * from "./business-account-service-type.entity";
79
+ export * from "./business-beneficiary.entity";
80
+ export * from "./business-beneficiary-address.entity";
79
81
  export * from "./driver-connection-session.entity";
82
+ export * from "./fare-calculation-request.entity";
@@ -0,0 +1,5 @@
1
+ export enum FareCalculationRequestKind {
2
+ TRIP = "trip",
3
+ PACKAGE = "package",
4
+ }
5
+
@@ -25,3 +25,4 @@ export * from "./semovi.enum";
25
25
  export * from "./beneficiary.enum";
26
26
  export * from "./route.enum";
27
27
  export * from "./business-company-code.enum";
28
+ export * from "./fare-calculation-request.enum";