falconhub-apilibrary 1.4.0 → 1.4.1-dev.117
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/index.d.mts +1065 -788
- package/dist/index.mjs +1337 -1092
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -1,3 +1,848 @@
|
|
|
1
|
+
interface ChangePasswordRequest {
|
|
2
|
+
email: string;
|
|
3
|
+
oldPassword: string;
|
|
4
|
+
newPassword: string;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
interface ConfirmEmailRequest {
|
|
8
|
+
email: string;
|
|
9
|
+
expiresAt: number;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
interface GetSecretKeyRequest {
|
|
13
|
+
otpCode?: string;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
interface GetSecretKeyResponse {
|
|
17
|
+
secretKey: string;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
interface LoginRequest {
|
|
21
|
+
email: string;
|
|
22
|
+
password: string;
|
|
23
|
+
rememberMe: boolean;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
interface LoginResponse {
|
|
27
|
+
accessToken: string;
|
|
28
|
+
refreshToken: string;
|
|
29
|
+
expiresIn: string;
|
|
30
|
+
message: string;
|
|
31
|
+
type: string;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
interface RefreshTokenRequest {
|
|
35
|
+
refreshToken: string;
|
|
36
|
+
rememberMe: boolean;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
interface RefreshTokenResponse {
|
|
40
|
+
accessToken: string;
|
|
41
|
+
refreshToken: string;
|
|
42
|
+
expiresIn: string;
|
|
43
|
+
message: string;
|
|
44
|
+
type: string;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
interface SendOtpRequest {
|
|
48
|
+
email: string;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
interface ValidateOtpRequest {
|
|
52
|
+
email: string;
|
|
53
|
+
otp: string;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
interface ValidateSessionRenewedResponse {
|
|
57
|
+
accessToken: string;
|
|
58
|
+
refreshToken: string;
|
|
59
|
+
expiresIn: string;
|
|
60
|
+
remainingMinutes: number;
|
|
61
|
+
isRemembered: boolean;
|
|
62
|
+
}
|
|
63
|
+
interface ValidateSessionResponse {
|
|
64
|
+
expiresAt: number;
|
|
65
|
+
remainingMinutes: number;
|
|
66
|
+
isRemembered: boolean;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Interfaz que representa un género del catálogo.
|
|
71
|
+
*/
|
|
72
|
+
interface Gender {
|
|
73
|
+
genderId: number;
|
|
74
|
+
gender: string;
|
|
75
|
+
key: string;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Request para crear o actualizar un género.
|
|
79
|
+
*/
|
|
80
|
+
interface GenderRequest {
|
|
81
|
+
gender: string;
|
|
82
|
+
key?: string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Filtros disponibles para buscar géneros.
|
|
86
|
+
*/
|
|
87
|
+
interface GendersFilter {
|
|
88
|
+
/** Búsqueda general */
|
|
89
|
+
Search?: string;
|
|
90
|
+
/** Filtro por nombre del género (búsqueda parcial) */
|
|
91
|
+
Gender?: string;
|
|
92
|
+
}
|
|
93
|
+
interface GenderUserProfile {
|
|
94
|
+
genderId: number;
|
|
95
|
+
gender: string;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Interfaz que representa un código de área del catálogo.
|
|
100
|
+
*/
|
|
101
|
+
interface AreaCode {
|
|
102
|
+
areaCodeId: number;
|
|
103
|
+
countryCode: string;
|
|
104
|
+
iso: string;
|
|
105
|
+
countryName: string;
|
|
106
|
+
isActive: boolean;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Request para crear o actualizar un código de área.
|
|
110
|
+
*/
|
|
111
|
+
interface AreaCodeRequest {
|
|
112
|
+
countryCode: string;
|
|
113
|
+
iso: string;
|
|
114
|
+
countryName: string;
|
|
115
|
+
isActive: boolean;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Filtros disponibles para buscar códigos de área.
|
|
119
|
+
*/
|
|
120
|
+
interface AreaCodesFilter {
|
|
121
|
+
/** Búsqueda general */
|
|
122
|
+
Search?: string;
|
|
123
|
+
/** Filtro por código de país (búsqueda parcial) */
|
|
124
|
+
CountryCode?: string;
|
|
125
|
+
/** Filtro por ISO (búsqueda parcial) */
|
|
126
|
+
ISO?: string;
|
|
127
|
+
/** Filtro por nombre de país (búsqueda parcial) */
|
|
128
|
+
CountryName?: string;
|
|
129
|
+
/** Filtro por estado activo/inactivo */
|
|
130
|
+
IsActive?: boolean;
|
|
131
|
+
}
|
|
132
|
+
interface AreaCodeUserProfile {
|
|
133
|
+
areaCodeId: number;
|
|
134
|
+
countryCode: string;
|
|
135
|
+
country: string;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
interface Location {
|
|
139
|
+
locationId: number;
|
|
140
|
+
locationName: string;
|
|
141
|
+
address1: string;
|
|
142
|
+
address2: string;
|
|
143
|
+
city: string;
|
|
144
|
+
state: string;
|
|
145
|
+
country: string;
|
|
146
|
+
postalCode: string;
|
|
147
|
+
contactName: string;
|
|
148
|
+
areaCodeId: number;
|
|
149
|
+
contactPhone: string;
|
|
150
|
+
contactEmail: string;
|
|
151
|
+
isActive: boolean;
|
|
152
|
+
isPhysical: boolean;
|
|
153
|
+
parentLocationId: number | null;
|
|
154
|
+
url: string;
|
|
155
|
+
apiKey: string;
|
|
156
|
+
}
|
|
157
|
+
interface LocationsRequest {
|
|
158
|
+
locationName: string;
|
|
159
|
+
address1: string;
|
|
160
|
+
address2?: string;
|
|
161
|
+
city: string;
|
|
162
|
+
state: string;
|
|
163
|
+
country: string;
|
|
164
|
+
postalCode: string;
|
|
165
|
+
contactName: string;
|
|
166
|
+
areaCodeId: number;
|
|
167
|
+
contactPhone: string;
|
|
168
|
+
contactEmail: string;
|
|
169
|
+
isActive?: boolean;
|
|
170
|
+
isPhysical: boolean;
|
|
171
|
+
parentLocationId?: number;
|
|
172
|
+
/** URL requerida cuando isPhysical = true */
|
|
173
|
+
url?: string;
|
|
174
|
+
/** ApiKey requerida cuando isPhysical = true. Se almacena cifrada (AES-256) en el servidor. */
|
|
175
|
+
apiKey?: string;
|
|
176
|
+
}
|
|
177
|
+
interface LocationsFilter {
|
|
178
|
+
Search?: string;
|
|
179
|
+
LocationName?: string;
|
|
180
|
+
City?: string;
|
|
181
|
+
State?: string;
|
|
182
|
+
Country?: string;
|
|
183
|
+
IsActive?: boolean;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
interface InventoryStatus {
|
|
187
|
+
inventoryStatusId: number;
|
|
188
|
+
inventoryStatus: string;
|
|
189
|
+
key: string;
|
|
190
|
+
description: string;
|
|
191
|
+
}
|
|
192
|
+
interface InventoryStatusRequest {
|
|
193
|
+
inventoryStatus: string;
|
|
194
|
+
key?: string;
|
|
195
|
+
description: string;
|
|
196
|
+
}
|
|
197
|
+
interface InventoryStatusesFilter {
|
|
198
|
+
Search?: string;
|
|
199
|
+
InventoryStatus?: string;
|
|
200
|
+
Description?: string;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* Interfaz que representa un empaque del inventario.
|
|
205
|
+
*/
|
|
206
|
+
interface Packing {
|
|
207
|
+
packingId: number;
|
|
208
|
+
packing: string;
|
|
209
|
+
key: string;
|
|
210
|
+
materialId: number;
|
|
211
|
+
length: number;
|
|
212
|
+
width: number;
|
|
213
|
+
height: number;
|
|
214
|
+
weightLimit: number | null;
|
|
215
|
+
cost: number;
|
|
216
|
+
providerId: number;
|
|
217
|
+
isActive: boolean;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Request para crear o actualizar un empaque.
|
|
221
|
+
*/
|
|
222
|
+
interface PackingRequest {
|
|
223
|
+
packing: string;
|
|
224
|
+
key?: string;
|
|
225
|
+
materialId: number;
|
|
226
|
+
length: number;
|
|
227
|
+
width: number;
|
|
228
|
+
height: number;
|
|
229
|
+
weightLimit?: number;
|
|
230
|
+
cost: number;
|
|
231
|
+
providerId: number;
|
|
232
|
+
isActive: boolean;
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Filtros disponibles para buscar empaques.
|
|
236
|
+
*/
|
|
237
|
+
interface PackingsFilter {
|
|
238
|
+
Search?: string;
|
|
239
|
+
Packing?: string;
|
|
240
|
+
MaterialId?: number;
|
|
241
|
+
ProviderId?: number;
|
|
242
|
+
IsActive?: boolean;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* Interfaz que representa un material del inventario.
|
|
247
|
+
*/
|
|
248
|
+
interface Material {
|
|
249
|
+
materialId: number;
|
|
250
|
+
material: string;
|
|
251
|
+
key: string;
|
|
252
|
+
description: string;
|
|
253
|
+
isRecyclable: boolean;
|
|
254
|
+
isFragile: boolean;
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Request para crear o actualizar un material.
|
|
258
|
+
*/
|
|
259
|
+
interface MaterialRequest {
|
|
260
|
+
material: string;
|
|
261
|
+
description: string;
|
|
262
|
+
key?: string;
|
|
263
|
+
isRecyclable: boolean;
|
|
264
|
+
isFragile: boolean;
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Filtros disponibles para buscar materiales.
|
|
268
|
+
*/
|
|
269
|
+
interface MaterialsFilter {
|
|
270
|
+
Search?: string;
|
|
271
|
+
Material?: string;
|
|
272
|
+
Description?: string;
|
|
273
|
+
IsRecyclable?: boolean;
|
|
274
|
+
IsFragile?: boolean;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
/**
|
|
278
|
+
* Interfaz que representa un proveedor del inventario.
|
|
279
|
+
*/
|
|
280
|
+
interface Provider {
|
|
281
|
+
providerId: number;
|
|
282
|
+
provider: string;
|
|
283
|
+
contactName: string;
|
|
284
|
+
areaCodeId: number;
|
|
285
|
+
contactNumber: string;
|
|
286
|
+
contactEmail: string;
|
|
287
|
+
isActive: boolean;
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Request para crear o actualizar un proveedor.
|
|
291
|
+
*/
|
|
292
|
+
interface ProviderRequest {
|
|
293
|
+
provider: string;
|
|
294
|
+
contactName: string;
|
|
295
|
+
areaCodeId: number;
|
|
296
|
+
contactNumber: string;
|
|
297
|
+
contactEmail: string;
|
|
298
|
+
isActive: boolean;
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Filtros disponibles para buscar proveedores.
|
|
302
|
+
*/
|
|
303
|
+
interface ProvidersFilter {
|
|
304
|
+
Search?: string;
|
|
305
|
+
Provider?: string;
|
|
306
|
+
IsActive?: boolean;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
/**
|
|
310
|
+
* Interfaz que representa un color.
|
|
311
|
+
*/
|
|
312
|
+
interface Color {
|
|
313
|
+
colorId: number;
|
|
314
|
+
color: string;
|
|
315
|
+
key: string;
|
|
316
|
+
createdAt: string;
|
|
317
|
+
updatedAt?: string;
|
|
318
|
+
deleted: boolean;
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Request para crear o actualizar un color.
|
|
322
|
+
*/
|
|
323
|
+
interface ColorRequest {
|
|
324
|
+
color: string;
|
|
325
|
+
key: string;
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Filtros disponibles para buscar colores.
|
|
329
|
+
*/
|
|
330
|
+
interface ColorsFilter {
|
|
331
|
+
Search?: string;
|
|
332
|
+
Color?: string;
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
/**
|
|
336
|
+
* Interfaz que representa un grupo de tallas.
|
|
337
|
+
*/
|
|
338
|
+
interface SizeGroup {
|
|
339
|
+
sizeGroupId: number;
|
|
340
|
+
sizeGroup: string;
|
|
341
|
+
key: string;
|
|
342
|
+
description: string;
|
|
343
|
+
createdAt: string;
|
|
344
|
+
updatedAt?: string;
|
|
345
|
+
deleted: boolean;
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* Request para crear o actualizar un grupo de tallas.
|
|
349
|
+
*/
|
|
350
|
+
interface SizeGroupRequest {
|
|
351
|
+
sizeGroup: string;
|
|
352
|
+
key: string;
|
|
353
|
+
description: string;
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Filtros disponibles para buscar grupos de tallas.
|
|
357
|
+
*/
|
|
358
|
+
interface SizeGroupsFilter {
|
|
359
|
+
Search?: string;
|
|
360
|
+
SizeGroup?: string;
|
|
361
|
+
Description?: string;
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
/**
|
|
365
|
+
* Interfaz que representa una talla.
|
|
366
|
+
*/
|
|
367
|
+
interface Size {
|
|
368
|
+
sizeId: number;
|
|
369
|
+
size: string;
|
|
370
|
+
iso: string;
|
|
371
|
+
width: string;
|
|
372
|
+
length: string;
|
|
373
|
+
sizeGroupId: number;
|
|
374
|
+
createdAt: string;
|
|
375
|
+
updatedAt?: string;
|
|
376
|
+
deleted: boolean;
|
|
377
|
+
sizeGroup?: SizeGroup;
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* Request para crear o actualizar una talla.
|
|
381
|
+
*/
|
|
382
|
+
interface SizeRequest {
|
|
383
|
+
size: string;
|
|
384
|
+
iso: string;
|
|
385
|
+
width: string;
|
|
386
|
+
length: string;
|
|
387
|
+
sizeGroupId: number;
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* Filtros disponibles para buscar tallas.
|
|
391
|
+
*/
|
|
392
|
+
interface SizesFilter {
|
|
393
|
+
Search?: string;
|
|
394
|
+
Size?: string;
|
|
395
|
+
SizeGroupId?: number;
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
/**
|
|
399
|
+
* Interfaz que representa un Blank en el catálogo de productos.
|
|
400
|
+
*/
|
|
401
|
+
interface Blank {
|
|
402
|
+
blankId: number;
|
|
403
|
+
blank: string;
|
|
404
|
+
sku: string;
|
|
405
|
+
cost: number;
|
|
406
|
+
isActive: boolean;
|
|
407
|
+
colorId: number;
|
|
408
|
+
providerId: number;
|
|
409
|
+
materialId: number;
|
|
410
|
+
sizeId: number;
|
|
411
|
+
createdAt: string;
|
|
412
|
+
updatedAt?: string;
|
|
413
|
+
deleted: boolean;
|
|
414
|
+
color?: Color;
|
|
415
|
+
size?: Size;
|
|
416
|
+
provider?: Provider;
|
|
417
|
+
material?: Material;
|
|
418
|
+
}
|
|
419
|
+
/**
|
|
420
|
+
* Request para crear o actualizar un Blank.
|
|
421
|
+
*/
|
|
422
|
+
interface BlankRequest {
|
|
423
|
+
blank: string;
|
|
424
|
+
sku: string;
|
|
425
|
+
cost: number;
|
|
426
|
+
colorId: number;
|
|
427
|
+
providerId: number;
|
|
428
|
+
materialId: number;
|
|
429
|
+
sizeId: number;
|
|
430
|
+
isActive: boolean;
|
|
431
|
+
}
|
|
432
|
+
/**
|
|
433
|
+
* Filtros disponibles para buscar Blanks.
|
|
434
|
+
*/
|
|
435
|
+
interface BlanksFilter {
|
|
436
|
+
Search?: string;
|
|
437
|
+
SKU?: string;
|
|
438
|
+
Provider: string;
|
|
439
|
+
Material: string;
|
|
440
|
+
Size: string;
|
|
441
|
+
IsActive?: boolean;
|
|
442
|
+
}
|
|
443
|
+
/**
|
|
444
|
+
* Request para carga masiva de archivos.
|
|
445
|
+
*/
|
|
446
|
+
interface BulkUploadRequest {
|
|
447
|
+
base64: string;
|
|
448
|
+
}
|
|
449
|
+
/**
|
|
450
|
+
* Representa una fila del Excel de carga masiva de Blanks.
|
|
451
|
+
*/
|
|
452
|
+
interface BlanksBulkItem {
|
|
453
|
+
blank: string;
|
|
454
|
+
sku: string;
|
|
455
|
+
cost: string;
|
|
456
|
+
color: string;
|
|
457
|
+
provider: string;
|
|
458
|
+
material: string;
|
|
459
|
+
size: string;
|
|
460
|
+
isActive: string;
|
|
461
|
+
}
|
|
462
|
+
/**
|
|
463
|
+
* Mapeo de encabezados en español (plantilla Excel) a propiedades de BlanksBulkItem.
|
|
464
|
+
*/
|
|
465
|
+
declare const BLANKS_BULK_COLUMN_MAP: Record<string, keyof BlanksBulkItem>;
|
|
466
|
+
/**
|
|
467
|
+
* Encabezados en español tal como aparecen en la plantilla Excel.
|
|
468
|
+
*/
|
|
469
|
+
declare const BLANKS_BULK_SPANISH_HEADERS: string[];
|
|
470
|
+
|
|
471
|
+
/**
|
|
472
|
+
* Interfaz que representa un módulo del sistema.
|
|
473
|
+
*/
|
|
474
|
+
interface Module {
|
|
475
|
+
moduleId: number;
|
|
476
|
+
module: string;
|
|
477
|
+
description: string;
|
|
478
|
+
isActive: boolean;
|
|
479
|
+
}
|
|
480
|
+
/**
|
|
481
|
+
* Request para crear o actualizar un módulo.
|
|
482
|
+
*/
|
|
483
|
+
interface ModuleRequest {
|
|
484
|
+
module: string;
|
|
485
|
+
description: string;
|
|
486
|
+
isActive?: boolean;
|
|
487
|
+
}
|
|
488
|
+
/**
|
|
489
|
+
* Filtros disponibles para buscar módulos.
|
|
490
|
+
* Todos los campos son opcionales.
|
|
491
|
+
*/
|
|
492
|
+
interface ModulesFilter {
|
|
493
|
+
/** Búsqueda general (busca en Module y Description) */
|
|
494
|
+
Search?: string;
|
|
495
|
+
/** Filtro por nombre del módulo (búsqueda parcial) */
|
|
496
|
+
Module?: string;
|
|
497
|
+
/** Filtro por descripción (búsqueda parcial) */
|
|
498
|
+
Description?: string;
|
|
499
|
+
/** Filtro por estado activo/inactivo */
|
|
500
|
+
IsActive?: boolean;
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
/**
|
|
504
|
+
* Interfaz que representa un endpoint del sistema.
|
|
505
|
+
*/
|
|
506
|
+
interface Endpoint {
|
|
507
|
+
endpointId: number;
|
|
508
|
+
endpoint: string;
|
|
509
|
+
httpMethod: string;
|
|
510
|
+
path: string;
|
|
511
|
+
description: string;
|
|
512
|
+
requiresAuth: boolean;
|
|
513
|
+
requiresPermission: boolean | null;
|
|
514
|
+
requiresSignature: boolean;
|
|
515
|
+
requiresHeader: boolean;
|
|
516
|
+
allowedOrigins: string;
|
|
517
|
+
isActive: boolean;
|
|
518
|
+
}
|
|
519
|
+
/**
|
|
520
|
+
* Request para crear o actualizar un endpoint.
|
|
521
|
+
*/
|
|
522
|
+
interface EndpointRequest {
|
|
523
|
+
endpoint: string;
|
|
524
|
+
httpMethod: string;
|
|
525
|
+
path: string;
|
|
526
|
+
description: string;
|
|
527
|
+
requiresAuth?: boolean;
|
|
528
|
+
requiresPermission?: boolean;
|
|
529
|
+
requiresSignature?: boolean;
|
|
530
|
+
requiresHeader?: boolean;
|
|
531
|
+
allowedOrigins?: string[];
|
|
532
|
+
isActive?: boolean;
|
|
533
|
+
}
|
|
534
|
+
/**
|
|
535
|
+
* Métodos HTTP disponibles para endpoints.
|
|
536
|
+
*/
|
|
537
|
+
type HttpMethodType = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
|
|
538
|
+
/**
|
|
539
|
+
* Filtros disponibles para buscar endpoints.
|
|
540
|
+
* Todos los campos son opcionales.
|
|
541
|
+
*/
|
|
542
|
+
interface EndpointsFilter {
|
|
543
|
+
/** Búsqueda general (busca en Endpoint, Path y Description) */
|
|
544
|
+
Search?: string;
|
|
545
|
+
/** Filtro por nombre del endpoint (búsqueda parcial) */
|
|
546
|
+
Endpoint?: string;
|
|
547
|
+
/** Filtro por método HTTP (GET, POST, PUT, DELETE, PATCH) */
|
|
548
|
+
HttpMethod?: HttpMethodType;
|
|
549
|
+
/** Filtro por módulo (primer segmento del path, búsqueda parcial) */
|
|
550
|
+
Module?: string;
|
|
551
|
+
/** Filtro por path (búsqueda parcial) */
|
|
552
|
+
Path?: string;
|
|
553
|
+
/** Filtro por descripción (búsqueda parcial) */
|
|
554
|
+
Description?: string;
|
|
555
|
+
/** Filtro por endpoints que requieren autenticación */
|
|
556
|
+
RequiresAuth?: boolean;
|
|
557
|
+
/** Filtro por endpoints que requieren validación de permisos */
|
|
558
|
+
RequiresPermission?: boolean;
|
|
559
|
+
/** Filtro por endpoints que requieren firma */
|
|
560
|
+
RequiresSignature?: boolean;
|
|
561
|
+
/** Filtro por endpoints que requieren header específico */
|
|
562
|
+
RequiresHeader?: boolean;
|
|
563
|
+
/** Filtro por estado activo/inactivo */
|
|
564
|
+
IsActive?: boolean;
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
/**
|
|
568
|
+
* Interfaz que representa una ruta de UI del sistema.
|
|
569
|
+
*/
|
|
570
|
+
interface UIRoute {
|
|
571
|
+
uiRouteId: number;
|
|
572
|
+
uiRoute: string;
|
|
573
|
+
path: string;
|
|
574
|
+
description: string;
|
|
575
|
+
isActive: boolean;
|
|
576
|
+
}
|
|
577
|
+
/**
|
|
578
|
+
* Request para crear o actualizar una ruta de UI.
|
|
579
|
+
*/
|
|
580
|
+
interface UIRouteRequest {
|
|
581
|
+
uiRoute: string;
|
|
582
|
+
path: string;
|
|
583
|
+
description: string;
|
|
584
|
+
isActive?: boolean;
|
|
585
|
+
}
|
|
586
|
+
/**
|
|
587
|
+
* Filtros disponibles para buscar rutas de UI.
|
|
588
|
+
* Todos los campos son opcionales.
|
|
589
|
+
*/
|
|
590
|
+
interface UIRoutesFilter {
|
|
591
|
+
/** Búsqueda general (busca en UIRoute, Path y Description) */
|
|
592
|
+
Search?: string;
|
|
593
|
+
/** Filtro por nombre de la ruta (búsqueda parcial) */
|
|
594
|
+
UIRoute?: string;
|
|
595
|
+
/** Filtro por path (búsqueda parcial) */
|
|
596
|
+
Path?: string;
|
|
597
|
+
/** Filtro por descripción (búsqueda parcial) */
|
|
598
|
+
Description?: string;
|
|
599
|
+
/** Filtro por estado activo/inactivo */
|
|
600
|
+
IsActive?: boolean;
|
|
601
|
+
}
|
|
602
|
+
|
|
603
|
+
interface AdminUser {
|
|
604
|
+
userId: number;
|
|
605
|
+
username: string;
|
|
606
|
+
firstName: string;
|
|
607
|
+
lastName: string;
|
|
608
|
+
email: string;
|
|
609
|
+
phone: string;
|
|
610
|
+
areaCodeId: number | null;
|
|
611
|
+
birthday: string | null;
|
|
612
|
+
referrerUserId: number | null;
|
|
613
|
+
userReferralCode: string;
|
|
614
|
+
genderId: number | null;
|
|
615
|
+
roleId: number | null;
|
|
616
|
+
userTypeId: number | null;
|
|
617
|
+
isActive: boolean;
|
|
618
|
+
createdAt: string;
|
|
619
|
+
updatedAt: string | null;
|
|
620
|
+
}
|
|
621
|
+
interface AdminAuthentication {
|
|
622
|
+
userAuthenticationId: number;
|
|
623
|
+
userId: number;
|
|
624
|
+
securityLevel: number;
|
|
625
|
+
clientId: string;
|
|
626
|
+
isTwoFactorEnabled: boolean;
|
|
627
|
+
failedLoginAttempts: number;
|
|
628
|
+
lastLogin: string | null;
|
|
629
|
+
isActive: boolean;
|
|
630
|
+
isLocked: boolean;
|
|
631
|
+
emailVerified: boolean;
|
|
632
|
+
phoneVerified: boolean;
|
|
633
|
+
mustChangePassword: boolean;
|
|
634
|
+
passwordLastChanged: string | null;
|
|
635
|
+
passwordExpiresAt: string | null;
|
|
636
|
+
lastLoginIP: string | null;
|
|
637
|
+
lastLoginDevice: string | null;
|
|
638
|
+
lastActivityAt: string | null;
|
|
639
|
+
createdAt: string;
|
|
640
|
+
updatedAt: string | null;
|
|
641
|
+
}
|
|
642
|
+
|
|
643
|
+
interface UserAdminRequest {
|
|
644
|
+
username: string;
|
|
645
|
+
firstName: string;
|
|
646
|
+
lastName: string;
|
|
647
|
+
email: string;
|
|
648
|
+
phone: string;
|
|
649
|
+
areaCodeId: number;
|
|
650
|
+
birthday: string;
|
|
651
|
+
genderId: number;
|
|
652
|
+
roleId: number;
|
|
653
|
+
userTypeId: number;
|
|
654
|
+
}
|
|
655
|
+
|
|
656
|
+
interface UserAuthAdminRequest {
|
|
657
|
+
userId: number;
|
|
658
|
+
securityLevel: number;
|
|
659
|
+
clientId: string;
|
|
660
|
+
requireEmailConfirmation?: boolean;
|
|
661
|
+
}
|
|
662
|
+
|
|
663
|
+
interface ChangePasswordAdminRequest {
|
|
664
|
+
newPassword: string;
|
|
665
|
+
}
|
|
666
|
+
|
|
667
|
+
interface UserAdminFilter {
|
|
668
|
+
Search?: string;
|
|
669
|
+
Username?: string;
|
|
670
|
+
FirstName?: string;
|
|
671
|
+
LastName?: string;
|
|
672
|
+
Email?: string;
|
|
673
|
+
Phone?: string;
|
|
674
|
+
RoleId?: number;
|
|
675
|
+
UserTypeId?: number;
|
|
676
|
+
IsActive?: boolean;
|
|
677
|
+
}
|
|
678
|
+
|
|
679
|
+
interface UserAdminUpdateRequest {
|
|
680
|
+
username: string;
|
|
681
|
+
firstName: string;
|
|
682
|
+
lastName: string;
|
|
683
|
+
email: string;
|
|
684
|
+
phone: string;
|
|
685
|
+
areaCodeId: number;
|
|
686
|
+
birthday?: string;
|
|
687
|
+
genderId: number;
|
|
688
|
+
roleId: number;
|
|
689
|
+
userTypeId: number;
|
|
690
|
+
}
|
|
691
|
+
|
|
692
|
+
interface UserAuthUpdateRequest {
|
|
693
|
+
securityLevel: number;
|
|
694
|
+
clientId: string;
|
|
695
|
+
isTwoFactorEnabled?: boolean;
|
|
696
|
+
emailVerified?: boolean;
|
|
697
|
+
phoneVerified?: boolean;
|
|
698
|
+
}
|
|
699
|
+
|
|
700
|
+
interface ChangePasswordUserRequest {
|
|
701
|
+
currentPassword: string;
|
|
702
|
+
newPassword: string;
|
|
703
|
+
}
|
|
704
|
+
|
|
705
|
+
/**
|
|
706
|
+
* Interfaz que representa un rol del sistema.
|
|
707
|
+
*/
|
|
708
|
+
interface Role {
|
|
709
|
+
roleId: number;
|
|
710
|
+
role: string;
|
|
711
|
+
key?: string;
|
|
712
|
+
description?: string;
|
|
713
|
+
userTypeId: number;
|
|
714
|
+
isActive: boolean;
|
|
715
|
+
}
|
|
716
|
+
/**
|
|
717
|
+
* Request para crear o actualizar un rol.
|
|
718
|
+
*/
|
|
719
|
+
interface RoleRequest {
|
|
720
|
+
role: string;
|
|
721
|
+
userTypeId: number;
|
|
722
|
+
key?: string;
|
|
723
|
+
description?: string;
|
|
724
|
+
isActive?: boolean;
|
|
725
|
+
}
|
|
726
|
+
/**
|
|
727
|
+
* Filtros disponibles para buscar roles.
|
|
728
|
+
*/
|
|
729
|
+
interface RolesFilter {
|
|
730
|
+
/** Búsqueda general */
|
|
731
|
+
Search?: string;
|
|
732
|
+
/** Filtro por nombre del rol (búsqueda parcial) */
|
|
733
|
+
Role?: string;
|
|
734
|
+
/** Filtro por descripción (búsqueda parcial) */
|
|
735
|
+
Description?: string;
|
|
736
|
+
/** Filtro por estado activo/inactivo */
|
|
737
|
+
IsActive?: boolean;
|
|
738
|
+
}
|
|
739
|
+
interface RoleUserProfile {
|
|
740
|
+
roleId: number;
|
|
741
|
+
role: string;
|
|
742
|
+
}
|
|
743
|
+
|
|
744
|
+
/**
|
|
745
|
+
* Interfaz que representa un tipo de usuario.
|
|
746
|
+
*/
|
|
747
|
+
interface UserType {
|
|
748
|
+
userTypeId: number;
|
|
749
|
+
userType: string;
|
|
750
|
+
key?: string;
|
|
751
|
+
description?: string;
|
|
752
|
+
}
|
|
753
|
+
/**
|
|
754
|
+
* Request para crear o actualizar un tipo de usuario.
|
|
755
|
+
*/
|
|
756
|
+
interface UserTypeRequest {
|
|
757
|
+
userType: string;
|
|
758
|
+
key?: string;
|
|
759
|
+
description?: string;
|
|
760
|
+
}
|
|
761
|
+
/**
|
|
762
|
+
* Filtros disponibles para buscar tipos de usuario.
|
|
763
|
+
*/
|
|
764
|
+
interface UserTypesFilter {
|
|
765
|
+
/** Búsqueda general */
|
|
766
|
+
Search?: string;
|
|
767
|
+
/** Filtro por tipo de usuario (búsqueda parcial) */
|
|
768
|
+
UserType?: string;
|
|
769
|
+
/** Filtro por key (búsqueda parcial) */
|
|
770
|
+
Key?: string;
|
|
771
|
+
/** Filtro por descripción (búsqueda parcial) */
|
|
772
|
+
Description?: string;
|
|
773
|
+
}
|
|
774
|
+
interface UserTypeUserProfile {
|
|
775
|
+
userTypeId: number;
|
|
776
|
+
userType: string;
|
|
777
|
+
}
|
|
778
|
+
|
|
779
|
+
interface UserBasicResponse {
|
|
780
|
+
username: string;
|
|
781
|
+
firstName: string;
|
|
782
|
+
lastName: string;
|
|
783
|
+
fullName: string;
|
|
784
|
+
email: string;
|
|
785
|
+
phone: string;
|
|
786
|
+
role: Role;
|
|
787
|
+
userType: UserType;
|
|
788
|
+
isActive: boolean;
|
|
789
|
+
securityLevel: number;
|
|
790
|
+
}
|
|
791
|
+
|
|
792
|
+
interface UserDataUpdateRequest {
|
|
793
|
+
username: string;
|
|
794
|
+
firstName: string;
|
|
795
|
+
lastName: string;
|
|
796
|
+
areaCodeId: number;
|
|
797
|
+
phone: string;
|
|
798
|
+
birthday: Date;
|
|
799
|
+
profilePhoto: string;
|
|
800
|
+
}
|
|
801
|
+
|
|
802
|
+
interface UserProfileResponse {
|
|
803
|
+
username: string;
|
|
804
|
+
firstName: string;
|
|
805
|
+
lastName: string;
|
|
806
|
+
fullName: string;
|
|
807
|
+
email: string;
|
|
808
|
+
phone: string;
|
|
809
|
+
profilePhoto: string;
|
|
810
|
+
areaCode: AreaCodeUserProfile;
|
|
811
|
+
birthday: Date;
|
|
812
|
+
gender: GenderUserProfile;
|
|
813
|
+
role: RoleUserProfile;
|
|
814
|
+
userType: UserTypeUserProfile;
|
|
815
|
+
userReferralCode: string;
|
|
816
|
+
securityLevel: number;
|
|
817
|
+
emailVerified: boolean;
|
|
818
|
+
phoneVerified: boolean;
|
|
819
|
+
lastLogin: Date;
|
|
820
|
+
mustChangePassword: boolean;
|
|
821
|
+
passwordExpiresAt: Date;
|
|
822
|
+
isActive: boolean;
|
|
823
|
+
createdAt: Date;
|
|
824
|
+
updatedAt: Date;
|
|
825
|
+
}
|
|
826
|
+
|
|
827
|
+
type MethodTypes = "GET" | "POST" | "PATCH" | "DELETE" | "PUT";
|
|
828
|
+
interface RequestOptions {
|
|
829
|
+
endpoint: string;
|
|
830
|
+
method: MethodTypes;
|
|
831
|
+
body?: any;
|
|
832
|
+
requiresAuth: boolean;
|
|
833
|
+
timeStamp?: string;
|
|
834
|
+
isBlob?: boolean;
|
|
835
|
+
}
|
|
836
|
+
|
|
837
|
+
interface ResponseModel<T = any> {
|
|
838
|
+
success: boolean;
|
|
839
|
+
message: string;
|
|
840
|
+
totalItems?: number;
|
|
841
|
+
data: T | null;
|
|
842
|
+
responseTime: string | null;
|
|
843
|
+
headers?: Record<string, string>;
|
|
844
|
+
}
|
|
845
|
+
|
|
1
846
|
declare class ErrorResponse extends Error {
|
|
2
847
|
statusCode?: number | undefined;
|
|
3
848
|
responseData?: any | undefined;
|
|
@@ -48,15 +893,6 @@ declare class CryptoService {
|
|
|
48
893
|
generateUniqueId(): string;
|
|
49
894
|
}
|
|
50
895
|
|
|
51
|
-
type MethodTypes = "GET" | "POST" | "PATCH" | "DELETE" | "PUT";
|
|
52
|
-
interface RequestOptions {
|
|
53
|
-
endpoint: string;
|
|
54
|
-
method: MethodTypes;
|
|
55
|
-
body?: any;
|
|
56
|
-
requiresAuth: boolean;
|
|
57
|
-
timeStamp?: string;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
896
|
interface AuthInterceptorConfig {
|
|
61
897
|
enabled?: boolean;
|
|
62
898
|
thresholdMinutes?: number;
|
|
@@ -107,15 +943,6 @@ declare class AuthInterceptor implements RequestInterceptor {
|
|
|
107
943
|
reset(): void;
|
|
108
944
|
}
|
|
109
945
|
|
|
110
|
-
interface ResponseModel<T = any> {
|
|
111
|
-
success: boolean;
|
|
112
|
-
message: string;
|
|
113
|
-
totalItems?: number;
|
|
114
|
-
data: T | null;
|
|
115
|
-
responseTime: string | null;
|
|
116
|
-
headers?: Record<string, string>;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
946
|
/**
|
|
120
947
|
* Clase base para la ejecución de request HTTP al API
|
|
121
948
|
*/
|
|
@@ -134,6 +961,7 @@ declare class API {
|
|
|
134
961
|
*/
|
|
135
962
|
private apiExecute;
|
|
136
963
|
executeGET<T>(endpoint: string, requiresAuth?: boolean): Promise<ResponseModel<T>>;
|
|
964
|
+
executeBlobGET<T = Blob>(endpoint: string, requiresAuth?: boolean): Promise<ResponseModel<T>>;
|
|
137
965
|
executePOST<T>(endpoint: string, body?: any, requiresAuth?: boolean): Promise<ResponseModel<T>>;
|
|
138
966
|
executePATCH<T>(endpoint: string, body?: any, requiresAuth?: boolean): Promise<ResponseModel<T>>;
|
|
139
967
|
executeDELETE<T>(endpoint: string, body?: any, requiresAuth?: boolean): Promise<ResponseModel<T>>;
|
|
@@ -217,74 +1045,6 @@ declare class TokenManager {
|
|
|
217
1045
|
private stopAutoRefreshTimer;
|
|
218
1046
|
}
|
|
219
1047
|
|
|
220
|
-
interface ChangePasswordRequest {
|
|
221
|
-
email: string;
|
|
222
|
-
oldPassword: string;
|
|
223
|
-
newPassword: string;
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
interface ConfirmEmailRequest {
|
|
227
|
-
email: string;
|
|
228
|
-
expiresAt: number;
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
interface GetSecretKeyRequest {
|
|
232
|
-
otpCode?: string;
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
interface GetSecretKeyResponse {
|
|
236
|
-
secretKey: string;
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
interface LoginRequest {
|
|
240
|
-
email: string;
|
|
241
|
-
password: string;
|
|
242
|
-
rememberMe: boolean;
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
interface LoginResponse {
|
|
246
|
-
accessToken: string;
|
|
247
|
-
refreshToken: string;
|
|
248
|
-
expiresIn: string;
|
|
249
|
-
message: string;
|
|
250
|
-
type: string;
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
interface RefreshTokenRequest {
|
|
254
|
-
refreshToken: string;
|
|
255
|
-
rememberMe: boolean;
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
interface RefreshTokenResponse {
|
|
259
|
-
accessToken: string;
|
|
260
|
-
refreshToken: string;
|
|
261
|
-
expiresIn: string;
|
|
262
|
-
message: string;
|
|
263
|
-
type: string;
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
interface SendOtpRequest {
|
|
267
|
-
email: string;
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
interface ValidateOtpRequest {
|
|
271
|
-
email: string;
|
|
272
|
-
otp: string;
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
interface ValidateSessionRenewedResponse {
|
|
276
|
-
accessToken: string;
|
|
277
|
-
refreshToken: string;
|
|
278
|
-
expiresIn: string;
|
|
279
|
-
remainingMinutes: number;
|
|
280
|
-
isRemembered: boolean;
|
|
281
|
-
}
|
|
282
|
-
interface ValidateSessionResponse {
|
|
283
|
-
expiresAt: number;
|
|
284
|
-
remainingMinutes: number;
|
|
285
|
-
isRemembered: boolean;
|
|
286
|
-
}
|
|
287
|
-
|
|
288
1048
|
declare class AuthService {
|
|
289
1049
|
private api;
|
|
290
1050
|
private crytpoService;
|
|
@@ -328,94 +1088,25 @@ declare class AuthService {
|
|
|
328
1088
|
* Envía un código OTP al correo electrónico.
|
|
329
1089
|
* @param request - Email del usuario
|
|
330
1090
|
*/
|
|
331
|
-
sendOtp(request: SendOtpRequest): Promise<ResponseModel>;
|
|
332
|
-
/**
|
|
333
|
-
* Valida un código OTP.
|
|
334
|
-
* @param request - Email y código OTP
|
|
335
|
-
*/
|
|
336
|
-
validateOtp(request: ValidateOtpRequest): Promise<ResponseModel>;
|
|
337
|
-
/**
|
|
338
|
-
* Cambia la contraseña del usuario (flujo público, sin sesión).
|
|
339
|
-
* @param request - Email, contraseña actual y nueva contraseña
|
|
340
|
-
*/
|
|
341
|
-
changePassword(request: ChangePasswordRequest): Promise<ResponseModel>;
|
|
342
|
-
/**
|
|
343
|
-
* Verifica si el usuario está autenticado
|
|
344
|
-
*/
|
|
345
|
-
isAuthenticated(): boolean;
|
|
346
|
-
/**
|
|
347
|
-
* Obtiene los tokens actuales
|
|
348
|
-
*/
|
|
349
|
-
getTokens(): TokenData | null;
|
|
350
|
-
}
|
|
351
|
-
|
|
352
|
-
/**
|
|
353
|
-
* Interfaz que representa un género del catálogo.
|
|
354
|
-
*/
|
|
355
|
-
interface Gender {
|
|
356
|
-
genderId: number;
|
|
357
|
-
gender: string;
|
|
358
|
-
key: string;
|
|
359
|
-
}
|
|
360
|
-
/**
|
|
361
|
-
* Request para crear o actualizar un género.
|
|
362
|
-
*/
|
|
363
|
-
interface GenderRequest {
|
|
364
|
-
gender: string;
|
|
365
|
-
key?: string;
|
|
366
|
-
}
|
|
367
|
-
/**
|
|
368
|
-
* Filtros disponibles para buscar géneros.
|
|
369
|
-
*/
|
|
370
|
-
interface GendersFilter {
|
|
371
|
-
/** Búsqueda general */
|
|
372
|
-
Search?: string;
|
|
373
|
-
/** Filtro por nombre del género (búsqueda parcial) */
|
|
374
|
-
Gender?: string;
|
|
375
|
-
}
|
|
376
|
-
interface GenderUserProfile {
|
|
377
|
-
genderId: number;
|
|
378
|
-
gender: string;
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
/**
|
|
382
|
-
* Interfaz que representa un código de área del catálogo.
|
|
383
|
-
*/
|
|
384
|
-
interface AreaCode {
|
|
385
|
-
areaCodeId: number;
|
|
386
|
-
countryCode: string;
|
|
387
|
-
iso: string;
|
|
388
|
-
countryName: string;
|
|
389
|
-
isActive: boolean;
|
|
390
|
-
}
|
|
391
|
-
/**
|
|
392
|
-
* Request para crear o actualizar un código de área.
|
|
393
|
-
*/
|
|
394
|
-
interface AreaCodeRequest {
|
|
395
|
-
countryCode: string;
|
|
396
|
-
iso: string;
|
|
397
|
-
countryName: string;
|
|
398
|
-
isActive: boolean;
|
|
399
|
-
}
|
|
400
|
-
/**
|
|
401
|
-
* Filtros disponibles para buscar códigos de área.
|
|
402
|
-
*/
|
|
403
|
-
interface AreaCodesFilter {
|
|
404
|
-
/** Búsqueda general */
|
|
405
|
-
Search?: string;
|
|
406
|
-
/** Filtro por código de país (búsqueda parcial) */
|
|
407
|
-
CountryCode?: string;
|
|
408
|
-
/** Filtro por ISO (búsqueda parcial) */
|
|
409
|
-
ISO?: string;
|
|
410
|
-
/** Filtro por nombre de país (búsqueda parcial) */
|
|
411
|
-
CountryName?: string;
|
|
412
|
-
/** Filtro por estado activo/inactivo */
|
|
413
|
-
IsActive?: boolean;
|
|
414
|
-
}
|
|
415
|
-
interface AreaCodeUserProfile {
|
|
416
|
-
areaCodeId: number;
|
|
417
|
-
countryCode: string;
|
|
418
|
-
country: string;
|
|
1091
|
+
sendOtp(request: SendOtpRequest): Promise<ResponseModel>;
|
|
1092
|
+
/**
|
|
1093
|
+
* Valida un código OTP.
|
|
1094
|
+
* @param request - Email y código OTP
|
|
1095
|
+
*/
|
|
1096
|
+
validateOtp(request: ValidateOtpRequest): Promise<ResponseModel>;
|
|
1097
|
+
/**
|
|
1098
|
+
* Cambia la contraseña del usuario (flujo público, sin sesión).
|
|
1099
|
+
* @param request - Email, contraseña actual y nueva contraseña
|
|
1100
|
+
*/
|
|
1101
|
+
changePassword(request: ChangePasswordRequest): Promise<ResponseModel>;
|
|
1102
|
+
/**
|
|
1103
|
+
* Verifica si el usuario está autenticado
|
|
1104
|
+
*/
|
|
1105
|
+
isAuthenticated(): boolean;
|
|
1106
|
+
/**
|
|
1107
|
+
* Obtiene los tokens actuales
|
|
1108
|
+
*/
|
|
1109
|
+
getTokens(): TokenData | null;
|
|
419
1110
|
}
|
|
420
1111
|
|
|
421
1112
|
/**
|
|
@@ -520,262 +1211,91 @@ interface FilterGroupOption {
|
|
|
520
1211
|
* El frontend renderiza cada grupo de forma diferente.
|
|
521
1212
|
*/
|
|
522
1213
|
interface FilterGroup {
|
|
523
|
-
/** Tipo de filtro: "string" | "boolean" | "select" | "date" */
|
|
524
|
-
type: 'string' | 'boolean' | 'select' | 'date';
|
|
525
|
-
/** Label del grupo */
|
|
526
|
-
label: string;
|
|
527
|
-
/** Opciones del grupo */
|
|
528
|
-
options: FilterGroupOption[];
|
|
529
|
-
}
|
|
530
|
-
/**
|
|
531
|
-
* Modelo retornado por el endpoint /filters (formato array-based).
|
|
532
|
-
*/
|
|
533
|
-
type FilterGroupsModel = FilterGroup[];
|
|
534
|
-
|
|
535
|
-
/**
|
|
536
|
-
* Servicio para gestionar catálogos públicos.
|
|
537
|
-
* No requiere autenticación.
|
|
538
|
-
*/
|
|
539
|
-
declare class CatalogService {
|
|
540
|
-
private api;
|
|
541
|
-
private readonly BASE_PATH;
|
|
542
|
-
constructor(api: API);
|
|
543
|
-
/**
|
|
544
|
-
* Obtiene todos los géneros con filtros opcionales.
|
|
545
|
-
* @param filter - Filtros opcionales para la búsqueda
|
|
546
|
-
*/
|
|
547
|
-
getGenders(filter?: GendersFilter): Promise<ResponseModel<Gender[]>>;
|
|
548
|
-
/**
|
|
549
|
-
* Obtiene el modelo de filtros disponibles para géneros.
|
|
550
|
-
*/
|
|
551
|
-
getGendersFilters(): Promise<ResponseModel<FilterGroupsModel>>;
|
|
552
|
-
/**
|
|
553
|
-
* Obtiene un género por su ID.
|
|
554
|
-
* @param id - ID del género
|
|
555
|
-
*/
|
|
556
|
-
getGenderById(id: number): Promise<ResponseModel<Gender>>;
|
|
557
|
-
/**
|
|
558
|
-
* Crea un nuevo género.
|
|
559
|
-
* @param request - Datos del género a crear
|
|
560
|
-
*/
|
|
561
|
-
createGender(request: GenderRequest): Promise<ResponseModel<Gender>>;
|
|
562
|
-
/**
|
|
563
|
-
* Actualiza un género existente.
|
|
564
|
-
* @param id - ID del género a actualizar
|
|
565
|
-
* @param request - Nuevos datos del género
|
|
566
|
-
*/
|
|
567
|
-
updateGender(id: number, request: GenderRequest): Promise<ResponseModel<Gender>>;
|
|
568
|
-
/**
|
|
569
|
-
* Elimina un género.
|
|
570
|
-
* @param id - ID del género a eliminar
|
|
571
|
-
*/
|
|
572
|
-
deleteGender(id: number): Promise<ResponseModel<void>>;
|
|
573
|
-
/**
|
|
574
|
-
* Obtiene todos los códigos de área con filtros opcionales.
|
|
575
|
-
* @param filter - Filtros opcionales para la búsqueda
|
|
576
|
-
*/
|
|
577
|
-
getAreaCodes(filter?: AreaCodesFilter): Promise<ResponseModel<AreaCode[]>>;
|
|
578
|
-
/**
|
|
579
|
-
* Obtiene el modelo de filtros disponibles para códigos de área.
|
|
580
|
-
*/
|
|
581
|
-
getAreaCodesFilters(): Promise<ResponseModel<FilterGroupsModel>>;
|
|
582
|
-
/**
|
|
583
|
-
* Obtiene un código de área por su ID.
|
|
584
|
-
* @param id - ID del código de área
|
|
585
|
-
*/
|
|
586
|
-
getAreaCodeById(id: number): Promise<ResponseModel<AreaCode>>;
|
|
587
|
-
/**
|
|
588
|
-
* Crea un nuevo código de área.
|
|
589
|
-
* @param request - Datos del código de área a crear
|
|
590
|
-
*/
|
|
591
|
-
createAreaCode(request: AreaCodeRequest): Promise<ResponseModel<AreaCode>>;
|
|
592
|
-
/**
|
|
593
|
-
* Actualiza un código de área existente.
|
|
594
|
-
* @param id - ID del código de área a actualizar
|
|
595
|
-
* @param request - Nuevos datos del código de área
|
|
596
|
-
*/
|
|
597
|
-
updateAreaCode(id: number, request: AreaCodeRequest): Promise<ResponseModel<AreaCode>>;
|
|
598
|
-
/**
|
|
599
|
-
* Activa o desactiva un código de área.
|
|
600
|
-
* @param id - ID del código de área
|
|
601
|
-
*/
|
|
602
|
-
toggleAreaCodeStatus(id: number): Promise<ResponseModel<AreaCode>>;
|
|
603
|
-
/**
|
|
604
|
-
* Elimina un código de área.
|
|
605
|
-
* @param id - ID del código de área a eliminar
|
|
606
|
-
*/
|
|
607
|
-
deleteAreaCode(id: number): Promise<ResponseModel<void>>;
|
|
608
|
-
}
|
|
609
|
-
|
|
610
|
-
interface Location {
|
|
611
|
-
locationId: number;
|
|
612
|
-
locationName: string;
|
|
613
|
-
address1: string;
|
|
614
|
-
address2: string;
|
|
615
|
-
city: string;
|
|
616
|
-
state: string;
|
|
617
|
-
country: string;
|
|
618
|
-
postalCode: string;
|
|
619
|
-
contactName: string;
|
|
620
|
-
areaCodeId: number;
|
|
621
|
-
contactPhone: string;
|
|
622
|
-
contactEmail: string;
|
|
623
|
-
isActive: boolean;
|
|
624
|
-
isPhysical: boolean;
|
|
625
|
-
parentLocationId: number | null;
|
|
626
|
-
url: string;
|
|
627
|
-
apiKey: string;
|
|
628
|
-
}
|
|
629
|
-
interface LocationsRequest {
|
|
630
|
-
locationName: string;
|
|
631
|
-
address1: string;
|
|
632
|
-
address2?: string;
|
|
633
|
-
city: string;
|
|
634
|
-
state: string;
|
|
635
|
-
country: string;
|
|
636
|
-
postalCode: string;
|
|
637
|
-
contactName: string;
|
|
638
|
-
areaCodeId: number;
|
|
639
|
-
contactPhone: string;
|
|
640
|
-
contactEmail: string;
|
|
641
|
-
isActive?: boolean;
|
|
642
|
-
isPhysical: boolean;
|
|
643
|
-
parentLocationId?: number;
|
|
644
|
-
/** URL requerida cuando isPhysical = true */
|
|
645
|
-
url?: string;
|
|
646
|
-
/** ApiKey requerida cuando isPhysical = true. Se almacena cifrada (AES-256) en el servidor. */
|
|
647
|
-
apiKey?: string;
|
|
648
|
-
}
|
|
649
|
-
interface LocationsFilter {
|
|
650
|
-
Search?: string;
|
|
651
|
-
LocationName?: string;
|
|
652
|
-
City?: string;
|
|
653
|
-
State?: string;
|
|
654
|
-
Country?: string;
|
|
655
|
-
IsActive?: boolean;
|
|
656
|
-
}
|
|
657
|
-
|
|
658
|
-
interface InventoryStatus {
|
|
659
|
-
inventoryStatusId: number;
|
|
660
|
-
inventoryStatus: string;
|
|
661
|
-
key: string;
|
|
662
|
-
description: string;
|
|
663
|
-
}
|
|
664
|
-
interface InventoryStatusRequest {
|
|
665
|
-
inventoryStatus: string;
|
|
666
|
-
key?: string;
|
|
667
|
-
description: string;
|
|
668
|
-
}
|
|
669
|
-
interface InventoryStatusesFilter {
|
|
670
|
-
Search?: string;
|
|
671
|
-
InventoryStatus?: string;
|
|
672
|
-
Description?: string;
|
|
673
|
-
}
|
|
674
|
-
|
|
675
|
-
/**
|
|
676
|
-
* Interfaz que representa un empaque del inventario.
|
|
677
|
-
*/
|
|
678
|
-
interface Packing {
|
|
679
|
-
packingId: number;
|
|
680
|
-
packing: string;
|
|
681
|
-
key: string;
|
|
682
|
-
materialId: number;
|
|
683
|
-
length: number;
|
|
684
|
-
width: number;
|
|
685
|
-
height: number;
|
|
686
|
-
weightLimit: number | null;
|
|
687
|
-
cost: number;
|
|
688
|
-
providerId: number;
|
|
689
|
-
isActive: boolean;
|
|
690
|
-
}
|
|
691
|
-
/**
|
|
692
|
-
* Request para crear o actualizar un empaque.
|
|
693
|
-
*/
|
|
694
|
-
interface PackingRequest {
|
|
695
|
-
packing: string;
|
|
696
|
-
key?: string;
|
|
697
|
-
materialId: number;
|
|
698
|
-
length: number;
|
|
699
|
-
width: number;
|
|
700
|
-
height: number;
|
|
701
|
-
weightLimit?: number;
|
|
702
|
-
cost: number;
|
|
703
|
-
providerId: number;
|
|
704
|
-
isActive: boolean;
|
|
705
|
-
}
|
|
706
|
-
/**
|
|
707
|
-
* Filtros disponibles para buscar empaques.
|
|
708
|
-
*/
|
|
709
|
-
interface PackingsFilter {
|
|
710
|
-
Search?: string;
|
|
711
|
-
Packing?: string;
|
|
712
|
-
MaterialId?: number;
|
|
713
|
-
ProviderId?: number;
|
|
714
|
-
IsActive?: boolean;
|
|
715
|
-
}
|
|
716
|
-
|
|
717
|
-
/**
|
|
718
|
-
* Interfaz que representa un material del inventario.
|
|
719
|
-
*/
|
|
720
|
-
interface Material {
|
|
721
|
-
materialId: number;
|
|
722
|
-
material: string;
|
|
723
|
-
key: string;
|
|
724
|
-
description: string;
|
|
725
|
-
isRecyclable: boolean;
|
|
726
|
-
isFragile: boolean;
|
|
727
|
-
}
|
|
728
|
-
/**
|
|
729
|
-
* Request para crear o actualizar un material.
|
|
730
|
-
*/
|
|
731
|
-
interface MaterialRequest {
|
|
732
|
-
material: string;
|
|
733
|
-
description: string;
|
|
734
|
-
key?: string;
|
|
735
|
-
isRecyclable: boolean;
|
|
736
|
-
isFragile: boolean;
|
|
737
|
-
}
|
|
738
|
-
/**
|
|
739
|
-
* Filtros disponibles para buscar materiales.
|
|
740
|
-
*/
|
|
741
|
-
interface MaterialsFilter {
|
|
742
|
-
Search?: string;
|
|
743
|
-
Material?: string;
|
|
744
|
-
Description?: string;
|
|
745
|
-
IsRecyclable?: boolean;
|
|
746
|
-
IsFragile?: boolean;
|
|
747
|
-
}
|
|
748
|
-
|
|
749
|
-
/**
|
|
750
|
-
* Interfaz que representa un proveedor del inventario.
|
|
751
|
-
*/
|
|
752
|
-
interface Provider {
|
|
753
|
-
providerId: number;
|
|
754
|
-
provider: string;
|
|
755
|
-
contactName: string;
|
|
756
|
-
areaCodeId: number;
|
|
757
|
-
contactNumber: string;
|
|
758
|
-
contactEmail: string;
|
|
759
|
-
isActive: boolean;
|
|
1214
|
+
/** Tipo de filtro: "string" | "boolean" | "select" | "date" */
|
|
1215
|
+
type: 'string' | 'boolean' | 'select' | 'date';
|
|
1216
|
+
/** Label del grupo */
|
|
1217
|
+
label: string;
|
|
1218
|
+
/** Opciones del grupo */
|
|
1219
|
+
options: FilterGroupOption[];
|
|
760
1220
|
}
|
|
761
1221
|
/**
|
|
762
|
-
*
|
|
1222
|
+
* Modelo retornado por el endpoint /filters (formato array-based).
|
|
763
1223
|
*/
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
contactName: string;
|
|
767
|
-
areaCodeId: number;
|
|
768
|
-
contactNumber: string;
|
|
769
|
-
contactEmail: string;
|
|
770
|
-
isActive: boolean;
|
|
771
|
-
}
|
|
1224
|
+
type FilterGroupsModel = FilterGroup[];
|
|
1225
|
+
|
|
772
1226
|
/**
|
|
773
|
-
*
|
|
1227
|
+
* Servicio para gestionar catálogos públicos.
|
|
1228
|
+
* No requiere autenticación.
|
|
774
1229
|
*/
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
1230
|
+
declare class CatalogService {
|
|
1231
|
+
private api;
|
|
1232
|
+
private readonly BASE_PATH;
|
|
1233
|
+
constructor(api: API);
|
|
1234
|
+
/**
|
|
1235
|
+
* Obtiene todos los géneros con filtros opcionales.
|
|
1236
|
+
* @param filter - Filtros opcionales para la búsqueda
|
|
1237
|
+
*/
|
|
1238
|
+
getGenders(filter?: GendersFilter): Promise<ResponseModel<Gender[]>>;
|
|
1239
|
+
/**
|
|
1240
|
+
* Obtiene el modelo de filtros disponibles para géneros.
|
|
1241
|
+
*/
|
|
1242
|
+
getGendersFilters(): Promise<ResponseModel<FilterGroupsModel>>;
|
|
1243
|
+
/**
|
|
1244
|
+
* Obtiene un género por su ID.
|
|
1245
|
+
* @param id - ID del género
|
|
1246
|
+
*/
|
|
1247
|
+
getGenderById(id: number): Promise<ResponseModel<Gender>>;
|
|
1248
|
+
/**
|
|
1249
|
+
* Crea un nuevo género.
|
|
1250
|
+
* @param request - Datos del género a crear
|
|
1251
|
+
*/
|
|
1252
|
+
createGender(request: GenderRequest): Promise<ResponseModel<Gender>>;
|
|
1253
|
+
/**
|
|
1254
|
+
* Actualiza un género existente.
|
|
1255
|
+
* @param id - ID del género a actualizar
|
|
1256
|
+
* @param request - Nuevos datos del género
|
|
1257
|
+
*/
|
|
1258
|
+
updateGender(id: number, request: GenderRequest): Promise<ResponseModel<Gender>>;
|
|
1259
|
+
/**
|
|
1260
|
+
* Elimina un género.
|
|
1261
|
+
* @param id - ID del género a eliminar
|
|
1262
|
+
*/
|
|
1263
|
+
deleteGender(id: number): Promise<ResponseModel<void>>;
|
|
1264
|
+
/**
|
|
1265
|
+
* Obtiene todos los códigos de área con filtros opcionales.
|
|
1266
|
+
* @param filter - Filtros opcionales para la búsqueda
|
|
1267
|
+
*/
|
|
1268
|
+
getAreaCodes(filter?: AreaCodesFilter): Promise<ResponseModel<AreaCode[]>>;
|
|
1269
|
+
/**
|
|
1270
|
+
* Obtiene el modelo de filtros disponibles para códigos de área.
|
|
1271
|
+
*/
|
|
1272
|
+
getAreaCodesFilters(): Promise<ResponseModel<FilterGroupsModel>>;
|
|
1273
|
+
/**
|
|
1274
|
+
* Obtiene un código de área por su ID.
|
|
1275
|
+
* @param id - ID del código de área
|
|
1276
|
+
*/
|
|
1277
|
+
getAreaCodeById(id: number): Promise<ResponseModel<AreaCode>>;
|
|
1278
|
+
/**
|
|
1279
|
+
* Crea un nuevo código de área.
|
|
1280
|
+
* @param request - Datos del código de área a crear
|
|
1281
|
+
*/
|
|
1282
|
+
createAreaCode(request: AreaCodeRequest): Promise<ResponseModel<AreaCode>>;
|
|
1283
|
+
/**
|
|
1284
|
+
* Actualiza un código de área existente.
|
|
1285
|
+
* @param id - ID del código de área a actualizar
|
|
1286
|
+
* @param request - Nuevos datos del código de área
|
|
1287
|
+
*/
|
|
1288
|
+
updateAreaCode(id: number, request: AreaCodeRequest): Promise<ResponseModel<AreaCode>>;
|
|
1289
|
+
/**
|
|
1290
|
+
* Activa o desactiva un código de área.
|
|
1291
|
+
* @param id - ID del código de área
|
|
1292
|
+
*/
|
|
1293
|
+
toggleAreaCodeStatus(id: number): Promise<ResponseModel<AreaCode>>;
|
|
1294
|
+
/**
|
|
1295
|
+
* Elimina un código de área.
|
|
1296
|
+
* @param id - ID del código de área a eliminar
|
|
1297
|
+
*/
|
|
1298
|
+
deleteAreaCode(id: number): Promise<ResponseModel<void>>;
|
|
779
1299
|
}
|
|
780
1300
|
|
|
781
1301
|
/**
|
|
@@ -953,135 +1473,120 @@ declare class InventoryService {
|
|
|
953
1473
|
}
|
|
954
1474
|
|
|
955
1475
|
/**
|
|
956
|
-
*
|
|
957
|
-
*/
|
|
958
|
-
interface Module {
|
|
959
|
-
moduleId: number;
|
|
960
|
-
module: string;
|
|
961
|
-
description: string;
|
|
962
|
-
isActive: boolean;
|
|
963
|
-
}
|
|
964
|
-
/**
|
|
965
|
-
* Request para crear o actualizar un módulo.
|
|
966
|
-
*/
|
|
967
|
-
interface ModuleRequest {
|
|
968
|
-
module: string;
|
|
969
|
-
description: string;
|
|
970
|
-
isActive?: boolean;
|
|
971
|
-
}
|
|
972
|
-
/**
|
|
973
|
-
* Filtros disponibles para buscar módulos.
|
|
974
|
-
* Todos los campos son opcionales.
|
|
975
|
-
*/
|
|
976
|
-
interface ModulesFilter {
|
|
977
|
-
/** Búsqueda general (busca en Module y Description) */
|
|
978
|
-
Search?: string;
|
|
979
|
-
/** Filtro por nombre del módulo (búsqueda parcial) */
|
|
980
|
-
Module?: string;
|
|
981
|
-
/** Filtro por descripción (búsqueda parcial) */
|
|
982
|
-
Description?: string;
|
|
983
|
-
/** Filtro por estado activo/inactivo */
|
|
984
|
-
IsActive?: boolean;
|
|
985
|
-
}
|
|
986
|
-
|
|
987
|
-
/**
|
|
988
|
-
* Interfaz que representa un endpoint del sistema.
|
|
989
|
-
*/
|
|
990
|
-
interface Endpoint {
|
|
991
|
-
endpointId: number;
|
|
992
|
-
endpoint: string;
|
|
993
|
-
httpMethod: string;
|
|
994
|
-
path: string;
|
|
995
|
-
description: string;
|
|
996
|
-
requiresAuth: boolean;
|
|
997
|
-
requiresPermission: boolean | null;
|
|
998
|
-
requiresSignature: boolean;
|
|
999
|
-
requiresHeader: boolean;
|
|
1000
|
-
allowedOrigins: string;
|
|
1001
|
-
isActive: boolean;
|
|
1002
|
-
}
|
|
1003
|
-
/**
|
|
1004
|
-
* Request para crear o actualizar un endpoint.
|
|
1005
|
-
*/
|
|
1006
|
-
interface EndpointRequest {
|
|
1007
|
-
endpoint: string;
|
|
1008
|
-
httpMethod: string;
|
|
1009
|
-
path: string;
|
|
1010
|
-
description: string;
|
|
1011
|
-
requiresAuth?: boolean;
|
|
1012
|
-
requiresPermission?: boolean;
|
|
1013
|
-
requiresSignature?: boolean;
|
|
1014
|
-
requiresHeader?: boolean;
|
|
1015
|
-
allowedOrigins?: string[];
|
|
1016
|
-
isActive?: boolean;
|
|
1017
|
-
}
|
|
1018
|
-
/**
|
|
1019
|
-
* Métodos HTTP disponibles para endpoints.
|
|
1020
|
-
*/
|
|
1021
|
-
type HttpMethodType = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
|
|
1022
|
-
/**
|
|
1023
|
-
* Filtros disponibles para buscar endpoints.
|
|
1024
|
-
* Todos los campos son opcionales.
|
|
1025
|
-
*/
|
|
1026
|
-
interface EndpointsFilter {
|
|
1027
|
-
/** Búsqueda general (busca en Endpoint, Path y Description) */
|
|
1028
|
-
Search?: string;
|
|
1029
|
-
/** Filtro por nombre del endpoint (búsqueda parcial) */
|
|
1030
|
-
Endpoint?: string;
|
|
1031
|
-
/** Filtro por método HTTP (GET, POST, PUT, DELETE, PATCH) */
|
|
1032
|
-
HttpMethod?: HttpMethodType;
|
|
1033
|
-
/** Filtro por módulo (primer segmento del path, búsqueda parcial) */
|
|
1034
|
-
Module?: string;
|
|
1035
|
-
/** Filtro por path (búsqueda parcial) */
|
|
1036
|
-
Path?: string;
|
|
1037
|
-
/** Filtro por descripción (búsqueda parcial) */
|
|
1038
|
-
Description?: string;
|
|
1039
|
-
/** Filtro por endpoints que requieren autenticación */
|
|
1040
|
-
RequiresAuth?: boolean;
|
|
1041
|
-
/** Filtro por endpoints que requieren validación de permisos */
|
|
1042
|
-
RequiresPermission?: boolean;
|
|
1043
|
-
/** Filtro por endpoints que requieren firma */
|
|
1044
|
-
RequiresSignature?: boolean;
|
|
1045
|
-
/** Filtro por endpoints que requieren header específico */
|
|
1046
|
-
RequiresHeader?: boolean;
|
|
1047
|
-
/** Filtro por estado activo/inactivo */
|
|
1048
|
-
IsActive?: boolean;
|
|
1049
|
-
}
|
|
1050
|
-
|
|
1051
|
-
/**
|
|
1052
|
-
* Interfaz que representa una ruta de UI del sistema.
|
|
1053
|
-
*/
|
|
1054
|
-
interface UIRoute {
|
|
1055
|
-
uiRouteId: number;
|
|
1056
|
-
uiRoute: string;
|
|
1057
|
-
path: string;
|
|
1058
|
-
description: string;
|
|
1059
|
-
isActive: boolean;
|
|
1060
|
-
}
|
|
1061
|
-
/**
|
|
1062
|
-
* Request para crear o actualizar una ruta de UI.
|
|
1063
|
-
*/
|
|
1064
|
-
interface UIRouteRequest {
|
|
1065
|
-
uiRoute: string;
|
|
1066
|
-
path: string;
|
|
1067
|
-
description: string;
|
|
1068
|
-
isActive?: boolean;
|
|
1069
|
-
}
|
|
1070
|
-
/**
|
|
1071
|
-
* Filtros disponibles para buscar rutas de UI.
|
|
1072
|
-
* Todos los campos son opcionales.
|
|
1476
|
+
* Servicio para gestionar entidades relacionadas a Productos (Blanks, Colors, Sizes, SizeGroups, etc.)
|
|
1073
1477
|
*/
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1478
|
+
declare class ProductService {
|
|
1479
|
+
private api;
|
|
1480
|
+
private readonly BASE_PATH;
|
|
1481
|
+
constructor(api: API);
|
|
1482
|
+
/**
|
|
1483
|
+
* Obtiene todos los colores con filtros opcionales.
|
|
1484
|
+
*/
|
|
1485
|
+
getColors(filter?: ColorsFilter): Promise<ResponseModel<Color[]>>;
|
|
1486
|
+
/**
|
|
1487
|
+
* Obtiene el modelo de filtros disponibles para colores.
|
|
1488
|
+
*/
|
|
1489
|
+
getColorsFilters(): Promise<ResponseModel<FilterGroupsModel>>;
|
|
1490
|
+
/**
|
|
1491
|
+
* Obtiene un color por su ID.
|
|
1492
|
+
*/
|
|
1493
|
+
getColorById(id: number): Promise<ResponseModel<Color>>;
|
|
1494
|
+
/**
|
|
1495
|
+
* Crea un nuevo color.
|
|
1496
|
+
*/
|
|
1497
|
+
createColor(request: ColorRequest): Promise<ResponseModel<Color>>;
|
|
1498
|
+
/**
|
|
1499
|
+
* Actualiza un color existente.
|
|
1500
|
+
*/
|
|
1501
|
+
updateColor(id: number, request: ColorRequest): Promise<ResponseModel<Color>>;
|
|
1502
|
+
/**
|
|
1503
|
+
* Elimina un color.
|
|
1504
|
+
*/
|
|
1505
|
+
deleteColor(id: number): Promise<ResponseModel<void>>;
|
|
1506
|
+
/**
|
|
1507
|
+
* Obtiene todos los grupos de tallas con filtros opcionales.
|
|
1508
|
+
*/
|
|
1509
|
+
getSizeGroups(filter?: SizeGroupsFilter): Promise<ResponseModel<SizeGroup[]>>;
|
|
1510
|
+
/**
|
|
1511
|
+
* Obtiene el modelo de filtros disponibles para grupos de tallas.
|
|
1512
|
+
*/
|
|
1513
|
+
getSizeGroupsFilters(): Promise<ResponseModel<FilterGroupsModel>>;
|
|
1514
|
+
/**
|
|
1515
|
+
* Obtiene un grupo de tallas por su ID.
|
|
1516
|
+
*/
|
|
1517
|
+
getSizeGroupById(id: number): Promise<ResponseModel<SizeGroup>>;
|
|
1518
|
+
/**
|
|
1519
|
+
* Crea un nuevo grupo de tallas.
|
|
1520
|
+
*/
|
|
1521
|
+
createSizeGroup(request: SizeGroupRequest): Promise<ResponseModel<SizeGroup>>;
|
|
1522
|
+
/**
|
|
1523
|
+
* Actualiza un grupo de tallas existente.
|
|
1524
|
+
*/
|
|
1525
|
+
updateSizeGroup(id: number, request: SizeGroupRequest): Promise<ResponseModel<SizeGroup>>;
|
|
1526
|
+
/**
|
|
1527
|
+
* Elimina un grupo de tallas.
|
|
1528
|
+
*/
|
|
1529
|
+
deleteSizeGroup(id: number): Promise<ResponseModel<void>>;
|
|
1530
|
+
/**
|
|
1531
|
+
* Obtiene todas las tallas con filtros opcionales.
|
|
1532
|
+
*/
|
|
1533
|
+
getSizes(filter?: SizesFilter): Promise<ResponseModel<Size[]>>;
|
|
1534
|
+
/**
|
|
1535
|
+
* Obtiene el modelo de filtros disponibles para tallas.
|
|
1536
|
+
*/
|
|
1537
|
+
getSizesFilters(): Promise<ResponseModel<FilterGroupsModel>>;
|
|
1538
|
+
/**
|
|
1539
|
+
* Obtiene una talla por su ID.
|
|
1540
|
+
*/
|
|
1541
|
+
getSizeById(id: number): Promise<ResponseModel<Size>>;
|
|
1542
|
+
/**
|
|
1543
|
+
* Crea una nueva talla.
|
|
1544
|
+
*/
|
|
1545
|
+
createSize(request: SizeRequest): Promise<ResponseModel<Size>>;
|
|
1546
|
+
/**
|
|
1547
|
+
* Actualiza una talla existente.
|
|
1548
|
+
*/
|
|
1549
|
+
updateSize(id: number, request: SizeRequest): Promise<ResponseModel<Size>>;
|
|
1550
|
+
/**
|
|
1551
|
+
* Elimina una talla.
|
|
1552
|
+
*/
|
|
1553
|
+
deleteSize(id: number): Promise<ResponseModel<void>>;
|
|
1554
|
+
/**
|
|
1555
|
+
* Obtiene todos los blanks con filtros opcionales.
|
|
1556
|
+
*/
|
|
1557
|
+
getBlanks(filter?: BlanksFilter): Promise<ResponseModel<Blank[]>>;
|
|
1558
|
+
/**
|
|
1559
|
+
* Obtiene el modelo de filtros disponibles para blanks.
|
|
1560
|
+
*/
|
|
1561
|
+
getBlanksFilters(): Promise<ResponseModel<FilterGroupsModel>>;
|
|
1562
|
+
/**
|
|
1563
|
+
* Obtiene un blank por su ID.
|
|
1564
|
+
*/
|
|
1565
|
+
getBlankById(id: number): Promise<ResponseModel<Blank>>;
|
|
1566
|
+
/**
|
|
1567
|
+
* Crea un nuevo blank.
|
|
1568
|
+
*/
|
|
1569
|
+
createBlank(request: BlankRequest): Promise<ResponseModel<Blank>>;
|
|
1570
|
+
/**
|
|
1571
|
+
* Actualiza un blank existente.
|
|
1572
|
+
*/
|
|
1573
|
+
updateBlank(id: number, request: BlankRequest): Promise<ResponseModel<Blank>>;
|
|
1574
|
+
/**
|
|
1575
|
+
* Alterna el estado activo de un blank.
|
|
1576
|
+
*/
|
|
1577
|
+
toggleBlankStatus(id: number): Promise<ResponseModel<Blank>>;
|
|
1578
|
+
/**
|
|
1579
|
+
* Elimina un blank.
|
|
1580
|
+
*/
|
|
1581
|
+
deleteBlank(id: number): Promise<ResponseModel<void>>;
|
|
1582
|
+
/**
|
|
1583
|
+
* Obtiene la plantilla para la carga masiva de blanks.
|
|
1584
|
+
*/
|
|
1585
|
+
getBlanksBulkTemplate(): Promise<ResponseModel<Blob>>;
|
|
1586
|
+
/**
|
|
1587
|
+
* Realiza una carga masiva de blanks.
|
|
1588
|
+
*/
|
|
1589
|
+
bulkCreateBlanks(request: BulkUploadRequest): Promise<ResponseModel<any>>;
|
|
1085
1590
|
}
|
|
1086
1591
|
|
|
1087
1592
|
/**
|
|
@@ -1202,240 +1707,6 @@ declare class SystemService {
|
|
|
1202
1707
|
deleteUIRoute(id: number): Promise<ResponseModel<void>>;
|
|
1203
1708
|
}
|
|
1204
1709
|
|
|
1205
|
-
interface AdminUser {
|
|
1206
|
-
userId: number;
|
|
1207
|
-
username: string;
|
|
1208
|
-
firstName: string;
|
|
1209
|
-
lastName: string;
|
|
1210
|
-
email: string;
|
|
1211
|
-
phone: string;
|
|
1212
|
-
areaCodeId: number | null;
|
|
1213
|
-
birthday: string | null;
|
|
1214
|
-
referrerUserId: number | null;
|
|
1215
|
-
userReferralCode: string;
|
|
1216
|
-
genderId: number | null;
|
|
1217
|
-
roleId: number | null;
|
|
1218
|
-
userTypeId: number | null;
|
|
1219
|
-
isActive: boolean;
|
|
1220
|
-
createdAt: string;
|
|
1221
|
-
updatedAt: string | null;
|
|
1222
|
-
}
|
|
1223
|
-
interface AdminAuthentication {
|
|
1224
|
-
userAuthenticationId: number;
|
|
1225
|
-
userId: number;
|
|
1226
|
-
securityLevel: number;
|
|
1227
|
-
clientId: string;
|
|
1228
|
-
isTwoFactorEnabled: boolean;
|
|
1229
|
-
failedLoginAttempts: number;
|
|
1230
|
-
lastLogin: string | null;
|
|
1231
|
-
isActive: boolean;
|
|
1232
|
-
isLocked: boolean;
|
|
1233
|
-
emailVerified: boolean;
|
|
1234
|
-
phoneVerified: boolean;
|
|
1235
|
-
mustChangePassword: boolean;
|
|
1236
|
-
passwordLastChanged: string | null;
|
|
1237
|
-
passwordExpiresAt: string | null;
|
|
1238
|
-
lastLoginIP: string | null;
|
|
1239
|
-
lastLoginDevice: string | null;
|
|
1240
|
-
lastActivityAt: string | null;
|
|
1241
|
-
createdAt: string;
|
|
1242
|
-
updatedAt: string | null;
|
|
1243
|
-
}
|
|
1244
|
-
|
|
1245
|
-
interface UserAdminRequest {
|
|
1246
|
-
username: string;
|
|
1247
|
-
firstName: string;
|
|
1248
|
-
lastName: string;
|
|
1249
|
-
email: string;
|
|
1250
|
-
phone: string;
|
|
1251
|
-
areaCodeId: number;
|
|
1252
|
-
birthday: string;
|
|
1253
|
-
genderId: number;
|
|
1254
|
-
roleId: number;
|
|
1255
|
-
userTypeId: number;
|
|
1256
|
-
}
|
|
1257
|
-
|
|
1258
|
-
interface UserAuthAdminRequest {
|
|
1259
|
-
userId: number;
|
|
1260
|
-
securityLevel: number;
|
|
1261
|
-
clientId: string;
|
|
1262
|
-
requireEmailConfirmation?: boolean;
|
|
1263
|
-
}
|
|
1264
|
-
|
|
1265
|
-
interface ChangePasswordAdminRequest {
|
|
1266
|
-
newPassword: string;
|
|
1267
|
-
}
|
|
1268
|
-
|
|
1269
|
-
interface UserAdminFilter {
|
|
1270
|
-
Search?: string;
|
|
1271
|
-
Username?: string;
|
|
1272
|
-
FirstName?: string;
|
|
1273
|
-
LastName?: string;
|
|
1274
|
-
Email?: string;
|
|
1275
|
-
Phone?: string;
|
|
1276
|
-
RoleId?: number;
|
|
1277
|
-
UserTypeId?: number;
|
|
1278
|
-
IsActive?: boolean;
|
|
1279
|
-
}
|
|
1280
|
-
|
|
1281
|
-
interface UserAdminUpdateRequest {
|
|
1282
|
-
username: string;
|
|
1283
|
-
firstName: string;
|
|
1284
|
-
lastName: string;
|
|
1285
|
-
email: string;
|
|
1286
|
-
phone: string;
|
|
1287
|
-
areaCodeId: number;
|
|
1288
|
-
birthday?: string;
|
|
1289
|
-
genderId: number;
|
|
1290
|
-
roleId: number;
|
|
1291
|
-
userTypeId: number;
|
|
1292
|
-
}
|
|
1293
|
-
|
|
1294
|
-
interface UserAuthUpdateRequest {
|
|
1295
|
-
securityLevel: number;
|
|
1296
|
-
clientId: string;
|
|
1297
|
-
isTwoFactorEnabled?: boolean;
|
|
1298
|
-
emailVerified?: boolean;
|
|
1299
|
-
phoneVerified?: boolean;
|
|
1300
|
-
}
|
|
1301
|
-
|
|
1302
|
-
interface ChangePasswordUserRequest {
|
|
1303
|
-
currentPassword: string;
|
|
1304
|
-
newPassword: string;
|
|
1305
|
-
}
|
|
1306
|
-
|
|
1307
|
-
/**
|
|
1308
|
-
* Interfaz que representa un rol del sistema.
|
|
1309
|
-
*/
|
|
1310
|
-
interface Role {
|
|
1311
|
-
roleId: number;
|
|
1312
|
-
role: string;
|
|
1313
|
-
key?: string;
|
|
1314
|
-
description?: string;
|
|
1315
|
-
userTypeId: number;
|
|
1316
|
-
isActive: boolean;
|
|
1317
|
-
}
|
|
1318
|
-
/**
|
|
1319
|
-
* Request para crear o actualizar un rol.
|
|
1320
|
-
*/
|
|
1321
|
-
interface RoleRequest {
|
|
1322
|
-
role: string;
|
|
1323
|
-
userTypeId: number;
|
|
1324
|
-
key?: string;
|
|
1325
|
-
description?: string;
|
|
1326
|
-
isActive?: boolean;
|
|
1327
|
-
}
|
|
1328
|
-
/**
|
|
1329
|
-
* Filtros disponibles para buscar roles.
|
|
1330
|
-
*/
|
|
1331
|
-
interface RolesFilter {
|
|
1332
|
-
/** Búsqueda general */
|
|
1333
|
-
Search?: string;
|
|
1334
|
-
/** Filtro por nombre del rol (búsqueda parcial) */
|
|
1335
|
-
Role?: string;
|
|
1336
|
-
/** Filtro por descripción (búsqueda parcial) */
|
|
1337
|
-
Description?: string;
|
|
1338
|
-
/** Filtro por estado activo/inactivo */
|
|
1339
|
-
IsActive?: boolean;
|
|
1340
|
-
}
|
|
1341
|
-
interface RoleUserProfile {
|
|
1342
|
-
roleId: number;
|
|
1343
|
-
role: string;
|
|
1344
|
-
}
|
|
1345
|
-
|
|
1346
|
-
interface UserBasicResponse {
|
|
1347
|
-
username: string;
|
|
1348
|
-
firstName: string;
|
|
1349
|
-
lastName: string;
|
|
1350
|
-
fullName: string;
|
|
1351
|
-
email: string;
|
|
1352
|
-
phone: string;
|
|
1353
|
-
role: UserRole;
|
|
1354
|
-
userType: UserType$1;
|
|
1355
|
-
isActive: boolean;
|
|
1356
|
-
securityLevel: number;
|
|
1357
|
-
}
|
|
1358
|
-
interface UserRole {
|
|
1359
|
-
roleId: number;
|
|
1360
|
-
key: string;
|
|
1361
|
-
role: string;
|
|
1362
|
-
}
|
|
1363
|
-
interface UserType$1 {
|
|
1364
|
-
userTypeId: number;
|
|
1365
|
-
key: string;
|
|
1366
|
-
userType: string;
|
|
1367
|
-
}
|
|
1368
|
-
|
|
1369
|
-
interface UserDataUpdateRequest {
|
|
1370
|
-
username: string;
|
|
1371
|
-
firstName: string;
|
|
1372
|
-
lastName: string;
|
|
1373
|
-
areaCodeId: number;
|
|
1374
|
-
phone: string;
|
|
1375
|
-
birthday: Date;
|
|
1376
|
-
profilePhoto: string;
|
|
1377
|
-
}
|
|
1378
|
-
|
|
1379
|
-
/**
|
|
1380
|
-
* Interfaz que representa un tipo de usuario.
|
|
1381
|
-
*/
|
|
1382
|
-
interface UserType {
|
|
1383
|
-
userTypeId: number;
|
|
1384
|
-
userType: string;
|
|
1385
|
-
key?: string;
|
|
1386
|
-
description?: string;
|
|
1387
|
-
}
|
|
1388
|
-
/**
|
|
1389
|
-
* Request para crear o actualizar un tipo de usuario.
|
|
1390
|
-
*/
|
|
1391
|
-
interface UserTypeRequest {
|
|
1392
|
-
userType: string;
|
|
1393
|
-
key?: string;
|
|
1394
|
-
description?: string;
|
|
1395
|
-
}
|
|
1396
|
-
/**
|
|
1397
|
-
* Filtros disponibles para buscar tipos de usuario.
|
|
1398
|
-
*/
|
|
1399
|
-
interface UserTypesFilter {
|
|
1400
|
-
/** Búsqueda general */
|
|
1401
|
-
Search?: string;
|
|
1402
|
-
/** Filtro por tipo de usuario (búsqueda parcial) */
|
|
1403
|
-
UserType?: string;
|
|
1404
|
-
/** Filtro por key (búsqueda parcial) */
|
|
1405
|
-
Key?: string;
|
|
1406
|
-
/** Filtro por descripción (búsqueda parcial) */
|
|
1407
|
-
Description?: string;
|
|
1408
|
-
}
|
|
1409
|
-
interface UserTypeUserProfile {
|
|
1410
|
-
userTypeId: number;
|
|
1411
|
-
userType: string;
|
|
1412
|
-
}
|
|
1413
|
-
|
|
1414
|
-
interface UserProfileResponse {
|
|
1415
|
-
username: string;
|
|
1416
|
-
firstName: string;
|
|
1417
|
-
lastName: string;
|
|
1418
|
-
fullName: string;
|
|
1419
|
-
email: string;
|
|
1420
|
-
phone: string;
|
|
1421
|
-
profilePhoto: string;
|
|
1422
|
-
areaCode: AreaCodeUserProfile;
|
|
1423
|
-
birthday: Date;
|
|
1424
|
-
gender: GenderUserProfile;
|
|
1425
|
-
role: RoleUserProfile;
|
|
1426
|
-
userType: UserTypeUserProfile;
|
|
1427
|
-
userReferralCode: string;
|
|
1428
|
-
securityLevel: number;
|
|
1429
|
-
emailVerified: boolean;
|
|
1430
|
-
phoneVerified: boolean;
|
|
1431
|
-
lastLogin: Date;
|
|
1432
|
-
mustChangePassword: boolean;
|
|
1433
|
-
passwordExpiresAt: Date;
|
|
1434
|
-
isActive: boolean;
|
|
1435
|
-
createdAt: Date;
|
|
1436
|
-
updatedAt: Date;
|
|
1437
|
-
}
|
|
1438
|
-
|
|
1439
1710
|
declare class UserService {
|
|
1440
1711
|
private api;
|
|
1441
1712
|
private readonly BASE_PATH;
|
|
@@ -1509,6 +1780,11 @@ declare class UserService {
|
|
|
1509
1780
|
* @param id - ID del administrador
|
|
1510
1781
|
*/
|
|
1511
1782
|
deleteAdmin(id: number): Promise<ResponseModel>;
|
|
1783
|
+
/**
|
|
1784
|
+
* Reenvía el correo de confirmación al usuario.
|
|
1785
|
+
* @param id - ID del usuario
|
|
1786
|
+
*/
|
|
1787
|
+
resendEmailConfirmation(id: number): Promise<ResponseModel>;
|
|
1512
1788
|
/**
|
|
1513
1789
|
* Obtiene todos los tipos de usuario con filtros opcionales.
|
|
1514
1790
|
* @param filter - Filtros opcionales para la búsqueda
|
|
@@ -1590,6 +1866,7 @@ declare class FalconHUBSDK {
|
|
|
1590
1866
|
system: SystemService;
|
|
1591
1867
|
inventory: InventoryService;
|
|
1592
1868
|
catalog: CatalogService;
|
|
1869
|
+
product: ProductService;
|
|
1593
1870
|
private serviceProperties;
|
|
1594
1871
|
private cryptoService;
|
|
1595
1872
|
private tokenManager;
|
|
@@ -1622,4 +1899,4 @@ declare class FalconHUBSDK {
|
|
|
1622
1899
|
|
|
1623
1900
|
declare function decrypt(encryptedBase64: string, secret: string, timestamp: string): string;
|
|
1624
1901
|
|
|
1625
|
-
export { API, type AdminAuthentication, type AdminUser, type AreaCode, type AreaCodeRequest, type AreaCodeUserProfile, type AreaCodesFilter, AuthInterceptor, type AuthInterceptorConfig, AuthService, CatalogService, type ChangePasswordAdminRequest, type ChangePasswordRequest, type ChangePasswordUserRequest, type ConfirmEmailRequest, CryptoService, type Endpoint, type EndpointRequest, type EndpointsFilter, ErrorResponse, FalconHUBSDK, FilterBuilder, type FilterFieldMetadata, type FilterGroup, type FilterGroupOption, type FilterGroupsModel, type FilterMetadataModel, type FilterModel, type Gender, type GenderRequest, type GenderUserProfile, type GendersFilter, type GetSecretKeyRequest, type GetSecretKeyResponse, type HttpMethodType, type InterceptorContext, InventoryService, type InventoryStatus, type InventoryStatusRequest, type InventoryStatusesFilter, type Location, type LocationsFilter, type LocationsRequest, type LoginRequest, type LoginResponse, type Material, type MaterialRequest, type MaterialsFilter, type MethodTypes, type Module, type ModuleRequest, type ModulesFilter, type Packing, type PackingRequest, type PackingsFilter, type Provider, type ProviderRequest, type ProvidersFilter, type RefreshTokenRequest, type RefreshTokenResponse, type RequestConfig, type RequestInterceptor, type RequestOptions, type ResponseModel, type Role, type RoleRequest, type RoleUserProfile, type RolesFilter, type SendOtpRequest, type ServiceProperties, SystemService, type TokenData, TokenManager, type UIRoute, type UIRouteRequest, type UIRoutesFilter, type UserAdminFilter, type UserAdminRequest, type UserAdminUpdateRequest, type UserAuthAdminRequest, type UserAuthUpdateRequest, type UserBasicResponse, type UserDataUpdateRequest, type UserProfileResponse, UserService, type UserType, type UserTypeRequest, type UserTypeUserProfile, type UserTypesFilter, type ValidateOtpRequest, type ValidateSessionRenewedResponse, type ValidateSessionResponse, decrypt };
|
|
1902
|
+
export { API, type AdminAuthentication, type AdminUser, type AreaCode, type AreaCodeRequest, type AreaCodeUserProfile, type AreaCodesFilter, AuthInterceptor, type AuthInterceptorConfig, AuthService, BLANKS_BULK_COLUMN_MAP, BLANKS_BULK_SPANISH_HEADERS, type Blank, type BlankRequest, type BlanksBulkItem, type BlanksFilter, type BulkUploadRequest, CatalogService, type ChangePasswordAdminRequest, type ChangePasswordRequest, type ChangePasswordUserRequest, type Color, type ColorRequest, type ColorsFilter, type ConfirmEmailRequest, CryptoService, type Endpoint, type EndpointRequest, type EndpointsFilter, ErrorResponse, FalconHUBSDK, FilterBuilder, type FilterFieldMetadata, type FilterGroup, type FilterGroupOption, type FilterGroupsModel, type FilterMetadataModel, type FilterModel, type Gender, type GenderRequest, type GenderUserProfile, type GendersFilter, type GetSecretKeyRequest, type GetSecretKeyResponse, type HttpMethodType, type InterceptorContext, InventoryService, type InventoryStatus, type InventoryStatusRequest, type InventoryStatusesFilter, type Location, type LocationsFilter, type LocationsRequest, type LoginRequest, type LoginResponse, type Material, type MaterialRequest, type MaterialsFilter, type MethodTypes, type Module, type ModuleRequest, type ModulesFilter, type Packing, type PackingRequest, type PackingsFilter, ProductService, type Provider, type ProviderRequest, type ProvidersFilter, type RefreshTokenRequest, type RefreshTokenResponse, type RequestConfig, type RequestInterceptor, type RequestOptions, type ResponseModel, type Role, type RoleRequest, type RoleUserProfile, type RolesFilter, type SendOtpRequest, type ServiceProperties, type Size, type SizeGroup, type SizeGroupRequest, type SizeGroupsFilter, type SizeRequest, type SizesFilter, SystemService, type TokenData, TokenManager, type UIRoute, type UIRouteRequest, type UIRoutesFilter, type UserAdminFilter, type UserAdminRequest, type UserAdminUpdateRequest, type UserAuthAdminRequest, type UserAuthUpdateRequest, type UserBasicResponse, type UserDataUpdateRequest, type UserProfileResponse, type Role as UserRole, UserService, type UserType, type UserTypeRequest, type UserTypeUserProfile, type UserTypesFilter, type ValidateOtpRequest, type ValidateSessionRenewedResponse, type ValidateSessionResponse, decrypt };
|