uaxi-shared-entities 1.0.209 → 1.0.211
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/entities/driver-search-expansion-configuration.entity.d.ts +23 -29
- package/dist/entities/driver-search-expansion-configuration.entity.d.ts.map +1 -1
- package/dist/entities/driver-search-expansion-configuration.entity.js +13 -67
- package/dist/entities/driver-search-expansion-configuration.entity.js.map +1 -1
- package/dist/entities/system-configuration.entity.d.ts.map +1 -1
- package/dist/entities/system-configuration.entity.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/entities/driver-search-expansion-configuration.entity.ts +35 -88
- package/src/entities/system-configuration.entity.ts +2 -1
- package/src/index.ts +0 -3
- package/dist/utils/driver-search-expansion.util.d.ts +0 -22
- package/dist/utils/driver-search-expansion.util.d.ts.map +0 -1
- package/dist/utils/driver-search-expansion.util.js +0 -57
- package/dist/utils/driver-search-expansion.util.js.map +0 -1
- package/src/utils/driver-search-expansion.util.ts +0 -76
|
@@ -1,47 +1,41 @@
|
|
|
1
1
|
import { Model } from "sequelize-typescript";
|
|
2
|
+
/**
|
|
3
|
+
* Configuración global de expansión de búsqueda de conductores (un solo registro activo).
|
|
4
|
+
*
|
|
5
|
+
* La lógica de búsqueda deriva 3 fases a partir de este registro:
|
|
6
|
+
* - Duración por fase: searchTimeMinutes / 3
|
|
7
|
+
* - Fase 1: radio = minRadiusKm
|
|
8
|
+
* - Fase 2: radio = minRadiusKm + 1 km
|
|
9
|
+
* - Fase 3: radio = maxRadiusKm
|
|
10
|
+
*/
|
|
2
11
|
export interface DriverSearchExpansionConfigurationAttributes {
|
|
3
12
|
id: string;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
/** Radio máximo / tercera expansión (km). */
|
|
13
|
+
metadata: Record<string, unknown> | null;
|
|
14
|
+
/** Tiempo total de búsqueda del viaje (minutos); cada expansión dura searchTimeMinutes / 3. */
|
|
15
|
+
searchTimeMinutes: number;
|
|
16
|
+
/** Radio de la primera búsqueda (km). */
|
|
17
|
+
minRadiusKm: number;
|
|
18
|
+
/** Radio de la tercera expansión (km). */
|
|
11
19
|
maxRadiusKm: number;
|
|
12
|
-
/** Tiempo total de búsqueda antes de auto-cancelar (minutos). */
|
|
13
|
-
searchTimeoutMinutes: number;
|
|
14
|
-
/** Segundos de espera en fase inicial/1 antes de expandir por tiempo. */
|
|
15
|
-
phase1WaitSeconds: number;
|
|
16
|
-
/** Segundos de espera en fase 2 antes de expandir a la máxima por tiempo. */
|
|
17
|
-
phase2WaitSeconds: number;
|
|
18
20
|
createdAt: Date;
|
|
19
21
|
updatedAt: Date;
|
|
20
22
|
deletedAt?: Date | null;
|
|
21
23
|
}
|
|
22
24
|
export interface CreateDriverSearchExpansionConfigurationData {
|
|
23
25
|
id?: string;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
maxRadiusKm?: number;
|
|
29
|
-
searchTimeoutMinutes?: number;
|
|
30
|
-
phase1WaitSeconds?: number;
|
|
31
|
-
phase2WaitSeconds?: number;
|
|
26
|
+
metadata?: Record<string, unknown> | null;
|
|
27
|
+
searchTimeMinutes: number;
|
|
28
|
+
minRadiusKm: number;
|
|
29
|
+
maxRadiusKm: number;
|
|
32
30
|
}
|
|
33
31
|
export declare class DriverSearchExpansionConfiguration extends Model<DriverSearchExpansionConfigurationAttributes, CreateDriverSearchExpansionConfigurationData> {
|
|
34
32
|
id: string;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
firstExpansionRadiusKm: number;
|
|
33
|
+
metadata: Record<string, unknown> | null;
|
|
34
|
+
searchTimeMinutes: number;
|
|
35
|
+
minRadiusKm: number;
|
|
39
36
|
maxRadiusKm: number;
|
|
40
|
-
searchTimeoutMinutes: number;
|
|
41
|
-
phase1WaitSeconds: number;
|
|
42
|
-
phase2WaitSeconds: number;
|
|
43
37
|
createdAt: Date;
|
|
44
38
|
updatedAt: Date;
|
|
45
|
-
deletedAt
|
|
39
|
+
deletedAt: Date | null;
|
|
46
40
|
}
|
|
47
41
|
//# sourceMappingURL=driver-search-expansion-configuration.entity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver-search-expansion-configuration.entity.d.ts","sourceRoot":"","sources":["../../src/entities/driver-search-expansion-configuration.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,EAGN,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,4CAA4C;IAC3D,EAAE,EAAE,MAAM,CAAC;IACX,
|
|
1
|
+
{"version":3,"file":"driver-search-expansion-configuration.entity.d.ts","sourceRoot":"","sources":["../../src/entities/driver-search-expansion-configuration.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,EAGN,MAAM,sBAAsB,CAAC;AAE9B;;;;;;;;GAQG;AACH,MAAM,WAAW,4CAA4C;IAC3D,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACzC,+FAA+F;IAC/F,iBAAiB,EAAE,MAAM,CAAC;IAC1B,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,4CAA4C;IAC3D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC1C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAKa,kCAAmC,SAAQ,KAAK,CAC3D,4CAA4C,EAC5C,4CAA4C,CAC7C;IAMS,EAAE,EAAE,MAAM,CAAC;IAOnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IASzC,iBAAiB,EAAE,MAAM,CAAC;IAQ1B,WAAW,EAAE,MAAM,CAAC;IAQpB,WAAW,EAAE,MAAM,CAAC;IAGZ,SAAS,EAAE,IAAI,CAAC;IAGhB,SAAS,EAAE,IAAI,CAAC;IAGhB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;CAChC"}
|
|
@@ -24,83 +24,39 @@ __decorate([
|
|
|
24
24
|
], DriverSearchExpansionConfiguration.prototype, "id", void 0);
|
|
25
25
|
__decorate([
|
|
26
26
|
(0, sequelize_typescript_1.Column)({
|
|
27
|
-
type: sequelize_typescript_1.DataType.
|
|
28
|
-
allowNull:
|
|
29
|
-
|
|
30
|
-
comment: "Nombre descriptivo de la configuración",
|
|
27
|
+
type: sequelize_typescript_1.DataType.JSON,
|
|
28
|
+
allowNull: true,
|
|
29
|
+
comment: "Metadatos opcionales de la configuración",
|
|
31
30
|
}),
|
|
32
|
-
__metadata("design:type",
|
|
33
|
-
], DriverSearchExpansionConfiguration.prototype, "
|
|
34
|
-
__decorate([
|
|
35
|
-
(0, sequelize_typescript_1.Column)({
|
|
36
|
-
type: sequelize_typescript_1.DataType.BOOLEAN,
|
|
37
|
-
allowNull: false,
|
|
38
|
-
defaultValue: true,
|
|
39
|
-
field: "is_active",
|
|
40
|
-
comment: "Solo una configuración activa se usa en búsqueda",
|
|
41
|
-
}),
|
|
42
|
-
__metadata("design:type", Boolean)
|
|
43
|
-
], DriverSearchExpansionConfiguration.prototype, "isActive", void 0);
|
|
31
|
+
__metadata("design:type", Object)
|
|
32
|
+
], DriverSearchExpansionConfiguration.prototype, "metadata", void 0);
|
|
44
33
|
__decorate([
|
|
45
34
|
(0, sequelize_typescript_1.Column)({
|
|
46
|
-
type: sequelize_typescript_1.DataType.
|
|
35
|
+
type: sequelize_typescript_1.DataType.INTEGER,
|
|
47
36
|
allowNull: false,
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
comment: "Radio inicial de búsqueda en km",
|
|
37
|
+
field: "search_time_minutes",
|
|
38
|
+
comment: "Tiempo total de búsqueda del viaje (min). Cada expansión dura searchTimeMinutes / 3",
|
|
51
39
|
}),
|
|
52
40
|
__metadata("design:type", Number)
|
|
53
|
-
], DriverSearchExpansionConfiguration.prototype, "
|
|
41
|
+
], DriverSearchExpansionConfiguration.prototype, "searchTimeMinutes", void 0);
|
|
54
42
|
__decorate([
|
|
55
43
|
(0, sequelize_typescript_1.Column)({
|
|
56
44
|
type: sequelize_typescript_1.DataType.DECIMAL(5, 2),
|
|
57
45
|
allowNull: false,
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
comment: "Radio tras la primera expansión en km",
|
|
46
|
+
field: "min_radius_km",
|
|
47
|
+
comment: "Radio de la 1ª búsqueda (km)",
|
|
61
48
|
}),
|
|
62
49
|
__metadata("design:type", Number)
|
|
63
|
-
], DriverSearchExpansionConfiguration.prototype, "
|
|
50
|
+
], DriverSearchExpansionConfiguration.prototype, "minRadiusKm", void 0);
|
|
64
51
|
__decorate([
|
|
65
52
|
(0, sequelize_typescript_1.Column)({
|
|
66
53
|
type: sequelize_typescript_1.DataType.DECIMAL(5, 2),
|
|
67
54
|
allowNull: false,
|
|
68
|
-
defaultValue: 3,
|
|
69
55
|
field: "max_radius_km",
|
|
70
|
-
comment: "Radio
|
|
56
|
+
comment: "Radio de la 3ª expansión (km); la 2ª es minRadiusKm + 1",
|
|
71
57
|
}),
|
|
72
58
|
__metadata("design:type", Number)
|
|
73
59
|
], DriverSearchExpansionConfiguration.prototype, "maxRadiusKm", void 0);
|
|
74
|
-
__decorate([
|
|
75
|
-
(0, sequelize_typescript_1.Column)({
|
|
76
|
-
type: sequelize_typescript_1.DataType.INTEGER,
|
|
77
|
-
allowNull: false,
|
|
78
|
-
defaultValue: 10,
|
|
79
|
-
field: "search_timeout_minutes",
|
|
80
|
-
comment: "Tiempo total de búsqueda en minutos",
|
|
81
|
-
}),
|
|
82
|
-
__metadata("design:type", Number)
|
|
83
|
-
], DriverSearchExpansionConfiguration.prototype, "searchTimeoutMinutes", void 0);
|
|
84
|
-
__decorate([
|
|
85
|
-
(0, sequelize_typescript_1.Column)({
|
|
86
|
-
type: sequelize_typescript_1.DataType.INTEGER,
|
|
87
|
-
allowNull: false,
|
|
88
|
-
defaultValue: 100,
|
|
89
|
-
field: "phase1_wait_seconds",
|
|
90
|
-
comment: "Segundos de espera en fase inicial antes de expandir por tiempo (si hay conductores)",
|
|
91
|
-
}),
|
|
92
|
-
__metadata("design:type", Number)
|
|
93
|
-
], DriverSearchExpansionConfiguration.prototype, "phase1WaitSeconds", void 0);
|
|
94
|
-
__decorate([
|
|
95
|
-
(0, sequelize_typescript_1.Column)({
|
|
96
|
-
type: sequelize_typescript_1.DataType.INTEGER,
|
|
97
|
-
allowNull: false,
|
|
98
|
-
defaultValue: 100,
|
|
99
|
-
field: "phase2_wait_seconds",
|
|
100
|
-
comment: "Segundos de espera en segunda expansión antes de expandir a la máxima por tiempo",
|
|
101
|
-
}),
|
|
102
|
-
__metadata("design:type", Number)
|
|
103
|
-
], DriverSearchExpansionConfiguration.prototype, "phase2WaitSeconds", void 0);
|
|
104
60
|
__decorate([
|
|
105
61
|
sequelize_typescript_1.CreatedAt,
|
|
106
62
|
__metadata("design:type", Date)
|
|
@@ -118,16 +74,6 @@ exports.DriverSearchExpansionConfiguration = DriverSearchExpansionConfiguration
|
|
|
118
74
|
tableName: "driver_search_expansion_configurations",
|
|
119
75
|
timestamps: true,
|
|
120
76
|
paranoid: true,
|
|
121
|
-
indexes: [
|
|
122
|
-
{
|
|
123
|
-
name: "idx_driver_search_expansion_config_deleted_at",
|
|
124
|
-
fields: ["deletedAt"],
|
|
125
|
-
},
|
|
126
|
-
{
|
|
127
|
-
name: "idx_driver_search_expansion_config_active",
|
|
128
|
-
fields: ["is_active"],
|
|
129
|
-
},
|
|
130
|
-
],
|
|
131
77
|
})
|
|
132
78
|
], DriverSearchExpansionConfiguration);
|
|
133
79
|
//# sourceMappingURL=driver-search-expansion-configuration.entity.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver-search-expansion-configuration.entity.js","sourceRoot":"","sources":["../../src/entities/driver-search-expansion-configuration.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+DAQ8B;
|
|
1
|
+
{"version":3,"file":"driver-search-expansion-configuration.entity.js","sourceRoot":"","sources":["../../src/entities/driver-search-expansion-configuration.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+DAQ8B;AAsCvB,IAAM,kCAAkC,GAAxC,MAAM,kCAAmC,SAAQ,4BAGvD;CAgDA,CAAA;AAnDY,gFAAkC;AASrC;IALP,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,IAAI;QACnB,YAAY,EAAE,+BAAQ,CAAC,MAAM;QAC7B,UAAU,EAAE,IAAI;KACjB,CAAC;;8DACiB;AAOnB;IALC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,IAAI;QACnB,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,0CAA0C;KACpD,CAAC;;oEACuC;AASzC;IAPC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,OAAO;QACtB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,qBAAqB;QAC5B,OAAO,EACL,qFAAqF;KACxF,CAAC;;6EACwB;AAQ1B;IANC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5B,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,eAAe;QACtB,OAAO,EAAE,8BAA8B;KACxC,CAAC;;uEACkB;AAQpB;IANC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5B,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,eAAe;QACtB,OAAO,EAAE,yDAAyD;KACnE,CAAC;;uEACkB;AAGZ;IADP,gCAAS;8BACS,IAAI;qEAAC;AAGhB;IADP,gCAAS;8BACS,IAAI;qEAAC;AAGhB;IADP,gCAAS;;qEACqB;6CAlDpB,kCAAkC;IAL9C,IAAA,4BAAK,EAAC;QACL,SAAS,EAAE,wCAAwC;QACnD,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,IAAI;KACf,CAAC;GACW,kCAAkC,CAmD9C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-configuration.entity.d.ts","sourceRoot":"","sources":["../../src/entities/system-configuration.entity.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"system-configuration.entity.d.ts","sourceRoot":"","sources":["../../src/entities/system-configuration.entity.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-configuration.entity.js","sourceRoot":"","sources":["../../src/entities/system-configuration.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+DAQ8B;AAiFvB,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,4BAGxC;
|
|
1
|
+
{"version":3,"file":"system-configuration.entity.js","sourceRoot":"","sources":["../../src/entities/system-configuration.entity.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,cAAc,YAAY,CAAC;AAG3B,cAAc,SAAS,CAAC;AAGxB,cAAc,UAAU,CAAC;AAGzB,cAAc,SAAS,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,cAAc,YAAY,CAAC;AAG3B,cAAc,SAAS,CAAC;AAGxB,cAAc,UAAU,CAAC;AAGzB,cAAc,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -25,6 +25,4 @@ __exportStar(require("./enums"), exports);
|
|
|
25
25
|
__exportStar(require("./config"), exports);
|
|
26
26
|
// Exportar tipos y interfaces
|
|
27
27
|
__exportStar(require("./types"), exports);
|
|
28
|
-
// Utilidades compartidas
|
|
29
|
-
__exportStar(require("./utils/driver-search-expansion.util"), exports);
|
|
30
28
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,gDAAgD;AAChD,4BAA4B;AAC5B,gDAAgD;;;;;;;;;;;;;;;;AAEhD,oDAAoD;AACpD,6CAA2B;AAE3B,uDAAuD;AACvD,0CAAwB;AAExB,2BAA2B;AAC3B,2CAAyB;AAEzB,8BAA8B;AAC9B,0CAAwB
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,gDAAgD;AAChD,4BAA4B;AAC5B,gDAAgD;;;;;;;;;;;;;;;;AAEhD,oDAAoD;AACpD,6CAA2B;AAE3B,uDAAuD;AACvD,0CAAwB;AAExB,2BAA2B;AAC3B,2CAAyB;AAEzB,8BAA8B;AAC9B,0CAAwB"}
|
package/package.json
CHANGED
|
@@ -8,22 +8,24 @@ import {
|
|
|
8
8
|
UpdatedAt,
|
|
9
9
|
} from "sequelize-typescript";
|
|
10
10
|
|
|
11
|
+
/**
|
|
12
|
+
* Configuración global de expansión de búsqueda de conductores (un solo registro activo).
|
|
13
|
+
*
|
|
14
|
+
* La lógica de búsqueda deriva 3 fases a partir de este registro:
|
|
15
|
+
* - Duración por fase: searchTimeMinutes / 3
|
|
16
|
+
* - Fase 1: radio = minRadiusKm
|
|
17
|
+
* - Fase 2: radio = minRadiusKm + 1 km
|
|
18
|
+
* - Fase 3: radio = maxRadiusKm
|
|
19
|
+
*/
|
|
11
20
|
export interface DriverSearchExpansionConfigurationAttributes {
|
|
12
21
|
id: string;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
/** Radio máximo / tercera expansión (km). */
|
|
22
|
+
metadata: Record<string, unknown> | null;
|
|
23
|
+
/** Tiempo total de búsqueda del viaje (minutos); cada expansión dura searchTimeMinutes / 3. */
|
|
24
|
+
searchTimeMinutes: number;
|
|
25
|
+
/** Radio de la primera búsqueda (km). */
|
|
26
|
+
minRadiusKm: number;
|
|
27
|
+
/** Radio de la tercera expansión (km). */
|
|
20
28
|
maxRadiusKm: number;
|
|
21
|
-
/** Tiempo total de búsqueda antes de auto-cancelar (minutos). */
|
|
22
|
-
searchTimeoutMinutes: number;
|
|
23
|
-
/** Segundos de espera en fase inicial/1 antes de expandir por tiempo. */
|
|
24
|
-
phase1WaitSeconds: number;
|
|
25
|
-
/** Segundos de espera en fase 2 antes de expandir a la máxima por tiempo. */
|
|
26
|
-
phase2WaitSeconds: number;
|
|
27
29
|
createdAt: Date;
|
|
28
30
|
updatedAt: Date;
|
|
29
31
|
deletedAt?: Date | null;
|
|
@@ -31,30 +33,16 @@ export interface DriverSearchExpansionConfigurationAttributes {
|
|
|
31
33
|
|
|
32
34
|
export interface CreateDriverSearchExpansionConfigurationData {
|
|
33
35
|
id?: string;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
maxRadiusKm?: number;
|
|
39
|
-
searchTimeoutMinutes?: number;
|
|
40
|
-
phase1WaitSeconds?: number;
|
|
41
|
-
phase2WaitSeconds?: number;
|
|
36
|
+
metadata?: Record<string, unknown> | null;
|
|
37
|
+
searchTimeMinutes: number;
|
|
38
|
+
minRadiusKm: number;
|
|
39
|
+
maxRadiusKm: number;
|
|
42
40
|
}
|
|
43
41
|
|
|
44
42
|
@Table({
|
|
45
43
|
tableName: "driver_search_expansion_configurations",
|
|
46
44
|
timestamps: true,
|
|
47
45
|
paranoid: true,
|
|
48
|
-
indexes: [
|
|
49
|
-
{
|
|
50
|
-
name: "idx_driver_search_expansion_config_deleted_at",
|
|
51
|
-
fields: ["deletedAt"],
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
name: "idx_driver_search_expansion_config_active",
|
|
55
|
-
fields: ["is_active"],
|
|
56
|
-
},
|
|
57
|
-
],
|
|
58
46
|
})
|
|
59
47
|
export class DriverSearchExpansionConfiguration extends Model<
|
|
60
48
|
DriverSearchExpansionConfigurationAttributes,
|
|
@@ -68,84 +56,43 @@ export class DriverSearchExpansionConfiguration extends Model<
|
|
|
68
56
|
declare id: string;
|
|
69
57
|
|
|
70
58
|
@Column({
|
|
71
|
-
type: DataType.
|
|
72
|
-
allowNull:
|
|
73
|
-
|
|
74
|
-
comment: "Nombre descriptivo de la configuración",
|
|
75
|
-
})
|
|
76
|
-
name: string;
|
|
77
|
-
|
|
78
|
-
@Column({
|
|
79
|
-
type: DataType.BOOLEAN,
|
|
80
|
-
allowNull: false,
|
|
81
|
-
defaultValue: true,
|
|
82
|
-
field: "is_active",
|
|
83
|
-
comment: "Solo una configuración activa se usa en búsqueda",
|
|
59
|
+
type: DataType.JSON,
|
|
60
|
+
allowNull: true,
|
|
61
|
+
comment: "Metadatos opcionales de la configuración",
|
|
84
62
|
})
|
|
85
|
-
|
|
63
|
+
metadata: Record<string, unknown> | null;
|
|
86
64
|
|
|
87
65
|
@Column({
|
|
88
|
-
type: DataType.
|
|
66
|
+
type: DataType.INTEGER,
|
|
89
67
|
allowNull: false,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
68
|
+
field: "search_time_minutes",
|
|
69
|
+
comment:
|
|
70
|
+
"Tiempo total de búsqueda del viaje (min). Cada expansión dura searchTimeMinutes / 3",
|
|
93
71
|
})
|
|
94
|
-
|
|
72
|
+
searchTimeMinutes: number;
|
|
95
73
|
|
|
96
74
|
@Column({
|
|
97
75
|
type: DataType.DECIMAL(5, 2),
|
|
98
76
|
allowNull: false,
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
comment: "Radio tras la primera expansión en km",
|
|
77
|
+
field: "min_radius_km",
|
|
78
|
+
comment: "Radio de la 1ª búsqueda (km)",
|
|
102
79
|
})
|
|
103
|
-
|
|
80
|
+
minRadiusKm: number;
|
|
104
81
|
|
|
105
82
|
@Column({
|
|
106
83
|
type: DataType.DECIMAL(5, 2),
|
|
107
84
|
allowNull: false,
|
|
108
|
-
defaultValue: 3,
|
|
109
85
|
field: "max_radius_km",
|
|
110
|
-
comment: "Radio
|
|
86
|
+
comment: "Radio de la 3ª expansión (km); la 2ª es minRadiusKm + 1",
|
|
111
87
|
})
|
|
112
88
|
maxRadiusKm: number;
|
|
113
89
|
|
|
114
|
-
@Column({
|
|
115
|
-
type: DataType.INTEGER,
|
|
116
|
-
allowNull: false,
|
|
117
|
-
defaultValue: 10,
|
|
118
|
-
field: "search_timeout_minutes",
|
|
119
|
-
comment: "Tiempo total de búsqueda en minutos",
|
|
120
|
-
})
|
|
121
|
-
searchTimeoutMinutes: number;
|
|
122
|
-
|
|
123
|
-
@Column({
|
|
124
|
-
type: DataType.INTEGER,
|
|
125
|
-
allowNull: false,
|
|
126
|
-
defaultValue: 100,
|
|
127
|
-
field: "phase1_wait_seconds",
|
|
128
|
-
comment:
|
|
129
|
-
"Segundos de espera en fase inicial antes de expandir por tiempo (si hay conductores)",
|
|
130
|
-
})
|
|
131
|
-
phase1WaitSeconds: number;
|
|
132
|
-
|
|
133
|
-
@Column({
|
|
134
|
-
type: DataType.INTEGER,
|
|
135
|
-
allowNull: false,
|
|
136
|
-
defaultValue: 100,
|
|
137
|
-
field: "phase2_wait_seconds",
|
|
138
|
-
comment:
|
|
139
|
-
"Segundos de espera en segunda expansión antes de expandir a la máxima por tiempo",
|
|
140
|
-
})
|
|
141
|
-
phase2WaitSeconds: number;
|
|
142
|
-
|
|
143
90
|
@CreatedAt
|
|
144
|
-
createdAt: Date;
|
|
91
|
+
declare createdAt: Date;
|
|
145
92
|
|
|
146
93
|
@UpdatedAt
|
|
147
|
-
updatedAt: Date;
|
|
94
|
+
declare updatedAt: Date;
|
|
148
95
|
|
|
149
96
|
@DeletedAt
|
|
150
|
-
deletedAt
|
|
97
|
+
declare deletedAt: Date | null;
|
|
151
98
|
}
|
|
@@ -272,7 +272,8 @@ export class SystemConfiguration extends Model<
|
|
|
272
272
|
allowNull: true,
|
|
273
273
|
defaultValue: 14,
|
|
274
274
|
field: "business_fare_surcharge_percent",
|
|
275
|
-
comment:
|
|
275
|
+
comment:
|
|
276
|
+
"Porcentaje de aumento sobre tarifa base para viajes de empresa (14 = +14%)",
|
|
276
277
|
})
|
|
277
278
|
businessFareSurchargePercent?: number;
|
|
278
279
|
|
package/src/index.ts
CHANGED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/** Canal Redis para solicitar expansión inmediata cuando no hay conductores. */
|
|
2
|
-
export declare const DRIVER_SEARCH_IMMEDIATE_EXPANSION_CHANNEL = "trip:radius:expand:immediate";
|
|
3
|
-
export interface DriverSearchExpansionRadii {
|
|
4
|
-
initial: number;
|
|
5
|
-
expansion1: number;
|
|
6
|
-
expansion2: number;
|
|
7
|
-
expansion3: number;
|
|
8
|
-
}
|
|
9
|
-
export interface DriverSearchExpansionConfigInput {
|
|
10
|
-
initialRadiusKm: number;
|
|
11
|
-
firstExpansionRadiusKm: number;
|
|
12
|
-
maxRadiusKm: number;
|
|
13
|
-
}
|
|
14
|
-
/** Radios por fase. La expansión 2 es el punto medio entre la 1 y la máxima. */
|
|
15
|
-
export declare function computeExpansionRadii(config: DriverSearchExpansionConfigInput): DriverSearchExpansionRadii;
|
|
16
|
-
/** Fase actual (0=inicial, 1..3=tras cada expansión). */
|
|
17
|
-
export declare function getExpansionPhaseFromRadius(radiusKm: number, radii: DriverSearchExpansionRadii): number;
|
|
18
|
-
/** Radio objetivo de la siguiente expansión, o null si ya está en fase 3. */
|
|
19
|
-
export declare function getNextExpansionRadius(currentPhase: number, radii: DriverSearchExpansionRadii): number | null;
|
|
20
|
-
/** Tiempo de espera (ms) antes de la siguiente expansión programada por tiempo. */
|
|
21
|
-
export declare function getPhaseWaitMs(currentPhase: number, phase1WaitSeconds: number, phase2WaitSeconds: number): number;
|
|
22
|
-
//# sourceMappingURL=driver-search-expansion.util.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"driver-search-expansion.util.d.ts","sourceRoot":"","sources":["../../src/utils/driver-search-expansion.util.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,eAAO,MAAM,yCAAyC,iCACtB,CAAC;AAEjC,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gCAAgC;IAC/C,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD,gFAAgF;AAChF,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,gCAAgC,GACvC,0BAA0B,CAY5B;AAED,yDAAyD;AACzD,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,0BAA0B,GAChC,MAAM,CAKR;AAED,6EAA6E;AAC7E,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,0BAA0B,GAChC,MAAM,GAAG,IAAI,CAWf;AAED,mFAAmF;AACnF,wBAAgB,cAAc,CAC5B,YAAY,EAAE,MAAM,EACpB,iBAAiB,EAAE,MAAM,EACzB,iBAAiB,EAAE,MAAM,GACxB,MAAM,CAIR"}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DRIVER_SEARCH_IMMEDIATE_EXPANSION_CHANNEL = void 0;
|
|
4
|
-
exports.computeExpansionRadii = computeExpansionRadii;
|
|
5
|
-
exports.getExpansionPhaseFromRadius = getExpansionPhaseFromRadius;
|
|
6
|
-
exports.getNextExpansionRadius = getNextExpansionRadius;
|
|
7
|
-
exports.getPhaseWaitMs = getPhaseWaitMs;
|
|
8
|
-
/** Canal Redis para solicitar expansión inmediata cuando no hay conductores. */
|
|
9
|
-
exports.DRIVER_SEARCH_IMMEDIATE_EXPANSION_CHANNEL = 'trip:radius:expand:immediate';
|
|
10
|
-
function roundKm(value) {
|
|
11
|
-
return Math.round(value * 100) / 100;
|
|
12
|
-
}
|
|
13
|
-
/** Radios por fase. La expansión 2 es el punto medio entre la 1 y la máxima. */
|
|
14
|
-
function computeExpansionRadii(config) {
|
|
15
|
-
const initial = roundKm(config.initialRadiusKm);
|
|
16
|
-
const expansion1 = roundKm(config.firstExpansionRadiusKm);
|
|
17
|
-
const expansion3 = roundKm(config.maxRadiusKm);
|
|
18
|
-
const expansion2 = roundKm((expansion1 + expansion3) / 2);
|
|
19
|
-
return {
|
|
20
|
-
initial,
|
|
21
|
-
expansion1,
|
|
22
|
-
expansion2,
|
|
23
|
-
expansion3,
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
/** Fase actual (0=inicial, 1..3=tras cada expansión). */
|
|
27
|
-
function getExpansionPhaseFromRadius(radiusKm, radii) {
|
|
28
|
-
if (radiusKm >= radii.expansion3)
|
|
29
|
-
return 3;
|
|
30
|
-
if (radiusKm >= radii.expansion2)
|
|
31
|
-
return 2;
|
|
32
|
-
if (radiusKm >= radii.expansion1)
|
|
33
|
-
return 1;
|
|
34
|
-
return 0;
|
|
35
|
-
}
|
|
36
|
-
/** Radio objetivo de la siguiente expansión, o null si ya está en fase 3. */
|
|
37
|
-
function getNextExpansionRadius(currentPhase, radii) {
|
|
38
|
-
switch (currentPhase) {
|
|
39
|
-
case 0:
|
|
40
|
-
return radii.expansion1;
|
|
41
|
-
case 1:
|
|
42
|
-
return radii.expansion2;
|
|
43
|
-
case 2:
|
|
44
|
-
return radii.expansion3;
|
|
45
|
-
default:
|
|
46
|
-
return null;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
/** Tiempo de espera (ms) antes de la siguiente expansión programada por tiempo. */
|
|
50
|
-
function getPhaseWaitMs(currentPhase, phase1WaitSeconds, phase2WaitSeconds) {
|
|
51
|
-
if (currentPhase <= 0)
|
|
52
|
-
return phase1WaitSeconds * 1000;
|
|
53
|
-
if (currentPhase === 1)
|
|
54
|
-
return phase2WaitSeconds * 1000;
|
|
55
|
-
return 0;
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=driver-search-expansion.util.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"driver-search-expansion.util.js","sourceRoot":"","sources":["../../src/utils/driver-search-expansion.util.ts"],"names":[],"mappings":";;;AAsBA,sDAcC;AAGD,kEAQC;AAGD,wDAcC;AAGD,wCAQC;AA3ED,gFAAgF;AACnE,QAAA,yCAAyC,GACpD,8BAA8B,CAAC;AAejC,SAAS,OAAO,CAAC,KAAa;IAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;AACvC,CAAC;AAED,gFAAgF;AAChF,SAAgB,qBAAqB,CACnC,MAAwC;IAExC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAE1D,OAAO;QACL,OAAO;QACP,UAAU;QACV,UAAU;QACV,UAAU;KACX,CAAC;AACJ,CAAC;AAED,yDAAyD;AACzD,SAAgB,2BAA2B,CACzC,QAAgB,EAChB,KAAiC;IAEjC,IAAI,QAAQ,IAAI,KAAK,CAAC,UAAU;QAAE,OAAO,CAAC,CAAC;IAC3C,IAAI,QAAQ,IAAI,KAAK,CAAC,UAAU;QAAE,OAAO,CAAC,CAAC;IAC3C,IAAI,QAAQ,IAAI,KAAK,CAAC,UAAU;QAAE,OAAO,CAAC,CAAC;IAC3C,OAAO,CAAC,CAAC;AACX,CAAC;AAED,6EAA6E;AAC7E,SAAgB,sBAAsB,CACpC,YAAoB,EACpB,KAAiC;IAEjC,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,CAAC;YACJ,OAAO,KAAK,CAAC,UAAU,CAAC;QAC1B,KAAK,CAAC;YACJ,OAAO,KAAK,CAAC,UAAU,CAAC;QAC1B,KAAK,CAAC;YACJ,OAAO,KAAK,CAAC,UAAU,CAAC;QAC1B;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,mFAAmF;AACnF,SAAgB,cAAc,CAC5B,YAAoB,EACpB,iBAAyB,EACzB,iBAAyB;IAEzB,IAAI,YAAY,IAAI,CAAC;QAAE,OAAO,iBAAiB,GAAG,IAAI,CAAC;IACvD,IAAI,YAAY,KAAK,CAAC;QAAE,OAAO,iBAAiB,GAAG,IAAI,CAAC;IACxD,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
/** Canal Redis para solicitar expansión inmediata cuando no hay conductores. */
|
|
2
|
-
export const DRIVER_SEARCH_IMMEDIATE_EXPANSION_CHANNEL =
|
|
3
|
-
'trip:radius:expand:immediate';
|
|
4
|
-
|
|
5
|
-
export interface DriverSearchExpansionRadii {
|
|
6
|
-
initial: number;
|
|
7
|
-
expansion1: number;
|
|
8
|
-
expansion2: number;
|
|
9
|
-
expansion3: number;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export interface DriverSearchExpansionConfigInput {
|
|
13
|
-
initialRadiusKm: number;
|
|
14
|
-
firstExpansionRadiusKm: number;
|
|
15
|
-
maxRadiusKm: number;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
function roundKm(value: number): number {
|
|
19
|
-
return Math.round(value * 100) / 100;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/** Radios por fase. La expansión 2 es el punto medio entre la 1 y la máxima. */
|
|
23
|
-
export function computeExpansionRadii(
|
|
24
|
-
config: DriverSearchExpansionConfigInput,
|
|
25
|
-
): DriverSearchExpansionRadii {
|
|
26
|
-
const initial = roundKm(config.initialRadiusKm);
|
|
27
|
-
const expansion1 = roundKm(config.firstExpansionRadiusKm);
|
|
28
|
-
const expansion3 = roundKm(config.maxRadiusKm);
|
|
29
|
-
const expansion2 = roundKm((expansion1 + expansion3) / 2);
|
|
30
|
-
|
|
31
|
-
return {
|
|
32
|
-
initial,
|
|
33
|
-
expansion1,
|
|
34
|
-
expansion2,
|
|
35
|
-
expansion3,
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/** Fase actual (0=inicial, 1..3=tras cada expansión). */
|
|
40
|
-
export function getExpansionPhaseFromRadius(
|
|
41
|
-
radiusKm: number,
|
|
42
|
-
radii: DriverSearchExpansionRadii,
|
|
43
|
-
): number {
|
|
44
|
-
if (radiusKm >= radii.expansion3) return 3;
|
|
45
|
-
if (radiusKm >= radii.expansion2) return 2;
|
|
46
|
-
if (radiusKm >= radii.expansion1) return 1;
|
|
47
|
-
return 0;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/** Radio objetivo de la siguiente expansión, o null si ya está en fase 3. */
|
|
51
|
-
export function getNextExpansionRadius(
|
|
52
|
-
currentPhase: number,
|
|
53
|
-
radii: DriverSearchExpansionRadii,
|
|
54
|
-
): number | null {
|
|
55
|
-
switch (currentPhase) {
|
|
56
|
-
case 0:
|
|
57
|
-
return radii.expansion1;
|
|
58
|
-
case 1:
|
|
59
|
-
return radii.expansion2;
|
|
60
|
-
case 2:
|
|
61
|
-
return radii.expansion3;
|
|
62
|
-
default:
|
|
63
|
-
return null;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/** Tiempo de espera (ms) antes de la siguiente expansión programada por tiempo. */
|
|
68
|
-
export function getPhaseWaitMs(
|
|
69
|
-
currentPhase: number,
|
|
70
|
-
phase1WaitSeconds: number,
|
|
71
|
-
phase2WaitSeconds: number,
|
|
72
|
-
): number {
|
|
73
|
-
if (currentPhase <= 0) return phase1WaitSeconds * 1000;
|
|
74
|
-
if (currentPhase === 1) return phase2WaitSeconds * 1000;
|
|
75
|
-
return 0;
|
|
76
|
-
}
|