falconhub-apilibrary 1.3.1 → 1.4.0-dev.111

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 CHANGED
@@ -217,6 +217,25 @@ declare class TokenManager {
217
217
  private stopAutoRefreshTimer;
218
218
  }
219
219
 
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
+
220
239
  interface LoginRequest {
221
240
  email: string;
222
241
  password: string;
@@ -244,6 +263,15 @@ interface RefreshTokenResponse {
244
263
  type: string;
245
264
  }
246
265
 
266
+ interface SendOtpRequest {
267
+ email: string;
268
+ }
269
+
270
+ interface ValidateOtpRequest {
271
+ email: string;
272
+ otp: string;
273
+ }
274
+
247
275
  interface ValidateSessionRenewedResponse {
248
276
  accessToken: string;
249
277
  refreshToken: string;
@@ -257,26 +285,6 @@ interface ValidateSessionResponse {
257
285
  isRemembered: boolean;
258
286
  }
259
287
 
260
- interface ConfirmEmailRequest {
261
- email: string;
262
- expiresAt: number;
263
- }
264
-
265
- interface SendOtpRequest {
266
- email: string;
267
- }
268
-
269
- interface ValidateOtpRequest {
270
- email: string;
271
- otp: string;
272
- }
273
-
274
- interface ChangePasswordRequest {
275
- email: string;
276
- oldPassword: string;
277
- newPassword: string;
278
- }
279
-
280
288
  declare class AuthService {
281
289
  private api;
282
290
  private crytpoService;
@@ -305,6 +313,12 @@ declare class AuthService {
305
313
  * Cierra sesión: notifica al servidor y limpia tokens
306
314
  */
307
315
  logout(): Promise<ResponseModel>;
316
+ /**
317
+ * Obtiene la SecretKey del usuario autenticado.
318
+ * Requiere sesión activa. Si el usuario tiene 2FA habilitado, se debe proveer el OTP.
319
+ * @param request - Objeto opcional con otpCode (requerido si IsTwoFactorEnabled)
320
+ */
321
+ getSecretKey(request?: GetSecretKeyRequest): Promise<ResponseModel<GetSecretKeyResponse>>;
308
322
  /**
309
323
  * Confirma el correo electrónico de un usuario.
310
324
  * @param request - Email y expiresAt
@@ -335,232 +349,74 @@ declare class AuthService {
335
349
  getTokens(): TokenData | null;
336
350
  }
337
351
 
338
- interface AreaCodeUserProfile {
339
- areaCodeId: number;
340
- countryCode: string;
341
- country: string;
342
- }
343
-
344
- interface GenderUserProfile {
352
+ /**
353
+ * Interfaz que representa un género del catálogo.
354
+ */
355
+ interface Gender {
345
356
  genderId: number;
346
357
  gender: string;
358
+ key: string;
347
359
  }
348
-
349
- interface RoleUserProfile {
350
- roleId: number;
351
- role: string;
352
- }
353
-
354
- interface UserTypeUserProfile {
355
- userTypeId: number;
356
- userType: string;
357
- }
358
-
359
- interface UserProfileResponse {
360
- userId: number;
361
- username: string;
362
- firstName: string;
363
- lastName: string;
364
- fullName: string;
365
- email: string;
366
- phone: string;
367
- profilePhoto: string;
368
- areaCode: AreaCodeUserProfile;
369
- birthday: Date;
370
- gender: GenderUserProfile;
371
- role: RoleUserProfile;
372
- userType: UserTypeUserProfile;
373
- userReferralCode: string;
374
- securityLevel: number;
375
- emailVerified: boolean;
376
- phoneVerified: boolean;
377
- lastLogin: Date;
378
- mustChangePassword: boolean;
379
- passwordExpiresAt: Date;
380
- isActive: boolean;
381
- createdAt: Date;
382
- updatedAt: Date;
383
- }
384
-
385
- interface UserBasicResponse {
386
- userId: number;
387
- username: string;
388
- firstName: string;
389
- lastName: string;
390
- fullName: string;
391
- email: string;
392
- phone: string;
393
- role: string;
394
- roleId: number;
395
- userType: number;
396
- userTypeId: number;
397
- isActive: boolean;
398
- securityLevel: number;
399
- }
400
-
401
- interface AdminUser {
402
- userId: number;
403
- username: string;
404
- firstName: string;
405
- lastName: string;
406
- email: string;
407
- phone: string;
408
- areaCodeId: number | null;
409
- birthday: string | null;
410
- referrerUserId: number | null;
411
- userReferralCode: string;
412
- genderId: number | null;
413
- roleId: number | null;
414
- userTypeId: number | null;
415
- isActive: boolean;
416
- createdAt: string;
417
- updatedAt: string | null;
418
- deleted: boolean;
419
- }
420
- interface AdminAuthentication {
421
- userAuthenticationId: number;
422
- userId: number;
423
- securityLevel: number;
424
- clientId: string;
425
- isTwoFactorEnabled: boolean;
426
- failedLoginAttempts: number;
427
- lastLogin: string | null;
428
- isActive: boolean;
429
- isLocked: boolean;
430
- emailVerified: boolean;
431
- phoneVerified: boolean;
432
- mustChangePassword: boolean;
433
- passwordLastChanged: string | null;
434
- passwordExpiresAt: string | null;
435
- lastLoginIP: string | null;
436
- lastLoginDevice: string | null;
437
- lastActivityAt: string | null;
438
- createdAt: string;
439
- updatedAt: string | null;
440
- }
441
-
442
- interface UserAdminRequest {
443
- username: string;
444
- firstName: string;
445
- lastName: string;
446
- email: string;
447
- phone: string;
448
- areaCodeId: number;
449
- birthday: string;
450
- genderId: number;
451
- roleId: number;
452
- userTypeId: number;
453
- }
454
-
455
- interface UserAuthAdminRequest {
456
- userId: number;
457
- securityLevel: number;
458
- clientId: string;
459
- requireEmailConfirmation?: boolean;
460
- }
461
-
462
- interface ChangePasswordAdminRequest {
463
- newPassword: string;
360
+ /**
361
+ * Request para crear o actualizar un género.
362
+ */
363
+ interface GenderRequest {
364
+ gender: string;
365
+ key?: string;
464
366
  }
465
-
466
- interface UserAdminFilter {
367
+ /**
368
+ * Filtros disponibles para buscar géneros.
369
+ */
370
+ interface GendersFilter {
371
+ /** Búsqueda general */
467
372
  Search?: string;
468
- Username?: string;
469
- FirstName?: string;
470
- LastName?: string;
471
- Email?: string;
472
- Phone?: string;
473
- RoleId?: number;
474
- UserTypeId?: number;
475
- IsActive?: boolean;
373
+ /** Filtro por nombre del género (búsqueda parcial) */
374
+ Gender?: string;
476
375
  }
477
-
478
- interface UserAdminUpdateRequest {
479
- username: string;
480
- firstName: string;
481
- lastName: string;
482
- email: string;
483
- phone: string;
484
- areaCodeId: number;
485
- birthday?: string;
376
+ interface GenderUserProfile {
486
377
  genderId: number;
487
- roleId: number;
488
- userTypeId: number;
489
- }
490
-
491
- interface UserAuthUpdateRequest {
492
- securityLevel: number;
493
- clientId: string;
494
- isTwoFactorEnabled?: boolean;
495
- emailVerified?: boolean;
496
- phoneVerified?: boolean;
378
+ gender: string;
497
379
  }
498
380
 
499
381
  /**
500
- * Interfaz que representa un tipo de usuario.
382
+ * Interfaz que representa un código de área del catálogo.
501
383
  */
502
- interface UserType {
503
- userTypeId: number;
504
- userType: string;
505
- description: string;
506
- createdAt: string;
507
- updatedAt: string | null;
508
- deleted: boolean;
384
+ interface AreaCode {
385
+ areaCodeId: number;
386
+ countryCode: string;
387
+ iso: string;
388
+ countryName: string;
389
+ isActive: boolean;
509
390
  }
510
391
  /**
511
- * Request para crear o actualizar un tipo de usuario.
392
+ * Request para crear o actualizar un código de área.
512
393
  */
513
- interface UserTypeRequest {
514
- userType: string;
515
- description: string;
394
+ interface AreaCodeRequest {
395
+ countryCode: string;
396
+ iso: string;
397
+ countryName: string;
398
+ isActive: boolean;
516
399
  }
517
400
  /**
518
- * Filtros disponibles para buscar tipos de usuario.
401
+ * Filtros disponibles para buscar códigos de área.
519
402
  */
520
- interface UserTypesFilter {
403
+ interface AreaCodesFilter {
521
404
  /** Búsqueda general */
522
405
  Search?: string;
523
- /** Filtro por tipo de usuario (búsqueda parcial) */
524
- UserType?: string;
525
- /** Filtro por descripción (búsqueda parcial) */
526
- Description?: string;
527
- }
528
-
529
- /**
530
- * Interfaz que representa un rol del sistema.
531
- */
532
- interface Role {
533
- roleId: number;
534
- userTypeId: number | null;
535
- role: string;
536
- description: string;
537
- isActive: boolean;
538
- createdAt: string;
539
- updatedAt: string | null;
540
- deleted: boolean;
541
- }
542
- /**
543
- * Request para crear o actualizar un rol.
544
- */
545
- interface RoleRequest {
546
- userTypeId?: number;
547
- role: string;
548
- description: string;
549
- isActive?: boolean;
550
- }
551
- /**
552
- * Filtros disponibles para buscar roles.
553
- */
554
- interface RolesFilter {
555
- /** Búsqueda general */
556
- Search?: string;
557
- /** Filtro por nombre del rol (búsqueda parcial) */
558
- Role?: string;
559
- /** Filtro por descripción (búsqueda parcial) */
560
- Description?: 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;
561
412
  /** Filtro por estado activo/inactivo */
562
413
  IsActive?: boolean;
563
414
  }
415
+ interface AreaCodeUserProfile {
416
+ areaCodeId: number;
417
+ countryCode: string;
418
+ country: string;
419
+ }
564
420
 
565
421
  /**
566
422
  * Utilidad para construir query params a partir de objetos de filtro.
@@ -676,1778 +532,1343 @@ interface FilterGroup {
676
532
  */
677
533
  type FilterGroupsModel = FilterGroup[];
678
534
 
679
- interface ChangePasswordUserRequest {
680
- currentPassword: string;
681
- newPassword: string;
682
- }
683
-
684
- interface UserDataUpdateRequest {
685
- username: string;
686
- firstName: string;
687
- lastName: string;
688
- phone: string;
689
- birthday: string;
690
- profilePhoto: string;
691
- }
692
-
693
- declare class UserService {
535
+ /**
536
+ * Servicio para gestionar catálogos públicos.
537
+ * No requiere autenticación.
538
+ */
539
+ declare class CatalogService {
694
540
  private api;
695
541
  private readonly BASE_PATH;
696
542
  constructor(api: API);
697
- me(): Promise<ResponseModel<UserBasicResponse>>;
698
- profile(): Promise<ResponseModel<UserProfileResponse>>;
699
- changePasswordUser(request: ChangePasswordUserRequest): Promise<ResponseModel>;
700
- updateUserData(request: UserDataUpdateRequest): Promise<ResponseModel>;
701
- /**
702
- * Crea un nuevo usuario administrador.
703
- * @param request - Datos del nuevo administrador
704
- */
705
- newAdminUser(request: UserAdminRequest): Promise<ResponseModel<AdminUser>>;
706
- /**
707
- * Crea la autenticación para un usuario.
708
- * @param request - Datos de autenticación del usuario
709
- */
710
- createUserAuthentication(request: UserAuthAdminRequest): Promise<ResponseModel<AdminAuthentication>>;
711
- /**
712
- * Cambia la contraseña de un administrador.
713
- * @param id - ID del usuario
714
- * @param request - Nueva contraseña
715
- */
716
- changePasswordAdmin(id: number, request: ChangePasswordAdminRequest): Promise<ResponseModel>;
717
- /**
718
- * Obtiene todos los administradores con filtros opcionales.
719
- * @param filter - Filtros opcionales para la búsqueda
720
- */
721
- getAllAdmins(filter?: UserAdminFilter): Promise<ResponseModel<AdminUser[]>>;
722
- /**
723
- * Obtiene el modelo de filtros disponibles para administradores.
724
- */
725
- getAdminFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
726
- /**
727
- * Obtiene un administrador por su ID.
728
- * @param id - ID del administrador
729
- */
730
- getAdminById(id: number): Promise<ResponseModel<AdminUser>>;
731
- /**
732
- * Obtiene la autenticación de un administrador.
733
- * @param id - ID del usuario
734
- */
735
- getAdminAuthentication(id: number): Promise<ResponseModel<AdminAuthentication>>;
736
543
  /**
737
- * Actualiza un administrador existente.
738
- * @param id - ID del administrador
739
- * @param request - Nuevos datos del administrador
740
- */
741
- updateAdmin(id: number, request: UserAdminUpdateRequest): Promise<ResponseModel<AdminUser>>;
742
- /**
743
- * Activa o desactiva un administrador.
744
- * @param id - ID del administrador
745
- */
746
- toggleAdminStatus(id: number): Promise<ResponseModel<AdminUser>>;
747
- /**
748
- * Actualiza la autenticación de un administrador.
749
- * @param id - ID del usuario
750
- * @param request - Nuevos datos de autenticación
751
- */
752
- updateAdminAuthentication(id: number, request: UserAuthUpdateRequest): Promise<ResponseModel<AdminAuthentication>>;
753
- /**
754
- * Obtiene todos los tipos de usuario con filtros opcionales.
544
+ * Obtiene todos los géneros con filtros opcionales.
755
545
  * @param filter - Filtros opcionales para la búsqueda
756
546
  */
757
- getUserTypes(filter?: UserTypesFilter): Promise<ResponseModel<UserType[]>>;
547
+ getGenders(filter?: GendersFilter): Promise<ResponseModel<Gender[]>>;
758
548
  /**
759
- * Obtiene el modelo de filtros disponibles para tipos de usuario.
549
+ * Obtiene el modelo de filtros disponibles para géneros.
760
550
  */
761
- getUserTypesFilters(): Promise<ResponseModel<FilterGroupsModel>>;
551
+ getGendersFilters(): Promise<ResponseModel<FilterGroupsModel>>;
762
552
  /**
763
- * Obtiene un tipo de usuario por su ID.
764
- * @param id - ID del tipo de usuario
553
+ * Obtiene un género por su ID.
554
+ * @param id - ID del género
765
555
  */
766
- getUserTypeById(id: number): Promise<ResponseModel<UserType>>;
556
+ getGenderById(id: number): Promise<ResponseModel<Gender>>;
767
557
  /**
768
- * Crea un nuevo tipo de usuario.
769
- * @param request - Datos del tipo de usuario a crear
558
+ * Crea un nuevo género.
559
+ * @param request - Datos del género a crear
770
560
  */
771
- createUserType(request: UserTypeRequest): Promise<ResponseModel<UserType>>;
561
+ createGender(request: GenderRequest): Promise<ResponseModel<Gender>>;
772
562
  /**
773
- * Actualiza un tipo de usuario existente.
774
- * @param id - ID del tipo de usuario a actualizar
775
- * @param request - Nuevos datos del tipo de usuario
563
+ * Actualiza un género existente.
564
+ * @param id - ID del género a actualizar
565
+ * @param request - Nuevos datos del género
776
566
  */
777
- updateUserType(id: number, request: UserTypeRequest): Promise<ResponseModel<UserType>>;
567
+ updateGender(id: number, request: GenderRequest): Promise<ResponseModel<Gender>>;
778
568
  /**
779
- * Elimina un tipo de usuario.
780
- * @param id - ID del tipo de usuario a eliminar
569
+ * Elimina un género.
570
+ * @param id - ID del género a eliminar
781
571
  */
782
- deleteUserType(id: number): Promise<ResponseModel<void>>;
572
+ deleteGender(id: number): Promise<ResponseModel<void>>;
783
573
  /**
784
- * Obtiene todos los roles con filtros opcionales.
574
+ * Obtiene todos los códigos de área con filtros opcionales.
785
575
  * @param filter - Filtros opcionales para la búsqueda
786
576
  */
787
- getRoles(filter?: RolesFilter): Promise<ResponseModel<Role[]>>;
788
- /**
789
- * Obtiene el modelo de filtros disponibles para roles.
790
- */
791
- getRolesFilters(): Promise<ResponseModel<FilterGroupsModel>>;
577
+ getAreaCodes(filter?: AreaCodesFilter): Promise<ResponseModel<AreaCode[]>>;
792
578
  /**
793
- * Obtiene un rol por su ID.
794
- * @param id - ID del rol
579
+ * Obtiene el modelo de filtros disponibles para códigos de área.
795
580
  */
796
- getRoleById(id: number): Promise<ResponseModel<Role>>;
581
+ getAreaCodesFilters(): Promise<ResponseModel<FilterGroupsModel>>;
797
582
  /**
798
- * Obtiene los roles asociados a un tipo de usuario.
799
- * @param userTypeId - ID del tipo de usuario
583
+ * Obtiene un código de área por su ID.
584
+ * @param id - ID del código de área
800
585
  */
801
- getRolesByUserType(userTypeId: number): Promise<ResponseModel<Role[]>>;
586
+ getAreaCodeById(id: number): Promise<ResponseModel<AreaCode>>;
802
587
  /**
803
- * Crea un nuevo rol.
804
- * @param request - Datos del rol a crear
588
+ * Crea un nuevo código de área.
589
+ * @param request - Datos del código de área a crear
805
590
  */
806
- createRole(request: RoleRequest): Promise<ResponseModel<Role>>;
591
+ createAreaCode(request: AreaCodeRequest): Promise<ResponseModel<AreaCode>>;
807
592
  /**
808
- * Actualiza un rol existente.
809
- * @param id - ID del rol a actualizar
810
- * @param request - Nuevos datos del rol
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
811
596
  */
812
- updateRole(id: number, request: RoleRequest): Promise<ResponseModel<Role>>;
597
+ updateAreaCode(id: number, request: AreaCodeRequest): Promise<ResponseModel<AreaCode>>;
813
598
  /**
814
- * Activa o desactiva un rol.
815
- * @param id - ID del rol
599
+ * Activa o desactiva un código de área.
600
+ * @param id - ID del código de área
816
601
  */
817
- toggleRoleStatus(id: number): Promise<ResponseModel<Role>>;
602
+ toggleAreaCodeStatus(id: number): Promise<ResponseModel<AreaCode>>;
818
603
  /**
819
- * Elimina un rol.
820
- * @param id - ID del rol a eliminar
604
+ * Elimina un código de área.
605
+ * @param id - ID del código de área a eliminar
821
606
  */
822
- deleteRole(id: number): Promise<ResponseModel<void>>;
607
+ deleteAreaCode(id: number): Promise<ResponseModel<void>>;
823
608
  }
824
609
 
825
- /**
826
- * Interfaz que representa un módulo del sistema.
827
- */
828
- interface Module {
829
- moduleId: number;
830
- module: string;
831
- description: string;
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;
832
623
  isActive: boolean;
833
- createdAt: string;
834
- updatedAt: string | null;
835
- deleted: boolean;
624
+ isPhysical: boolean;
625
+ parentLocationId: number | null;
626
+ url: string;
627
+ apiKey: string;
836
628
  }
837
- /**
838
- * Request para crear o actualizar un módulo.
839
- */
840
- interface ModuleRequest {
841
- module: string;
842
- description: string;
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;
843
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;
844
648
  }
845
- /**
846
- * Filtros disponibles para buscar módulos.
847
- * Todos los campos son opcionales.
848
- */
849
- interface ModulesFilter {
850
- /** Búsqueda general (busca en Module y Description) */
649
+ interface LocationsFilter {
851
650
  Search?: string;
852
- /** Filtro por nombre del módulo (búsqueda parcial) */
853
- Module?: string;
854
- /** Filtro por descripción (búsqueda parcial) */
855
- Description?: string;
856
- /** Filtro por estado activo/inactivo */
651
+ LocationName?: string;
652
+ City?: string;
653
+ State?: string;
654
+ Country?: string;
857
655
  IsActive?: boolean;
858
656
  }
859
657
 
860
- /**
861
- * Interfaz que representa un endpoint del sistema.
862
- */
863
- interface Endpoint {
864
- endpointId: number;
865
- endpoint: string;
866
- httpMethod: string;
867
- path: string;
658
+ interface InventoryStatus {
659
+ inventoryStatusId: number;
660
+ inventoryStatus: string;
661
+ key: string;
868
662
  description: string;
869
- requiresAuth: boolean;
870
- requiresPermission: boolean | null;
871
- requiresSignature: boolean;
872
- requiresHeader: boolean;
873
- allowedOrigins: string;
874
- isActive: boolean;
875
- createdAt: string;
876
- updatedAt: string | null;
877
- deleted: boolean;
878
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
+
879
675
  /**
880
- * Request para crear o actualizar un endpoint.
676
+ * Interfaz que representa un empaque del inventario.
881
677
  */
882
- interface EndpointRequest {
883
- endpoint: string;
884
- httpMethod: string;
885
- path: string;
886
- description: string;
887
- requiresAuth?: boolean;
888
- requiresPermission?: boolean;
889
- requiresSignature?: boolean;
890
- requiresHeader?: boolean;
891
- allowedOrigins?: string[];
892
- isActive?: boolean;
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;
893
690
  }
894
691
  /**
895
- * Métodos HTTP disponibles para endpoints.
692
+ * Request para crear o actualizar un empaque.
896
693
  */
897
- type HttpMethodType = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
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
+ }
898
706
  /**
899
- * Filtros disponibles para buscar endpoints.
900
- * Todos los campos son opcionales.
707
+ * Filtros disponibles para buscar empaques.
901
708
  */
902
- interface EndpointsFilter {
903
- /** Búsqueda general (busca en Endpoint, Path y Description) */
709
+ interface PackingsFilter {
904
710
  Search?: string;
905
- /** Filtro por nombre del endpoint (búsqueda parcial) */
906
- Endpoint?: string;
907
- /** Filtro por método HTTP (GET, POST, PUT, DELETE, PATCH) */
908
- HttpMethod?: HttpMethodType;
909
- /** Filtro por módulo (primer segmento del path, búsqueda parcial) */
910
- Module?: string;
911
- /** Filtro por path (búsqueda parcial) */
912
- Path?: string;
913
- /** Filtro por descripción (búsqueda parcial) */
914
- Description?: string;
915
- /** Filtro por endpoints que requieren autenticación */
916
- RequiresAuth?: boolean;
917
- /** Filtro por endpoints que requieren validación de permisos */
918
- RequiresPermission?: boolean;
919
- /** Filtro por endpoints que requieren firma */
920
- RequiresSignature?: boolean;
921
- /** Filtro por endpoints que requieren header específico */
922
- RequiresHeader?: boolean;
923
- /** Filtro por estado activo/inactivo */
711
+ Packing?: string;
712
+ MaterialId?: number;
713
+ ProviderId?: number;
924
714
  IsActive?: boolean;
925
715
  }
926
716
 
927
717
  /**
928
- * Interfaz que representa una ruta de UI del sistema.
718
+ * Interfaz que representa un material del inventario.
929
719
  */
930
- interface UIRoute {
931
- uiRouteId: number;
932
- uiRoute: string;
933
- path: string;
720
+ interface Material {
721
+ materialId: number;
722
+ material: string;
723
+ key: string;
934
724
  description: string;
935
- isActive: boolean;
936
- createdAt: string;
937
- updatedAt: string | null;
938
- deleted: boolean;
725
+ isRecyclable: boolean;
726
+ isFragile: boolean;
939
727
  }
940
728
  /**
941
- * Request para crear o actualizar una ruta de UI.
729
+ * Request para crear o actualizar un material.
942
730
  */
943
- interface UIRouteRequest {
944
- uiRoute: string;
945
- path: string;
731
+ interface MaterialRequest {
732
+ material: string;
946
733
  description: string;
947
- isActive?: boolean;
734
+ key?: string;
735
+ isRecyclable: boolean;
736
+ isFragile: boolean;
948
737
  }
949
738
  /**
950
- * Filtros disponibles para buscar rutas de UI.
951
- * Todos los campos son opcionales.
739
+ * Filtros disponibles para buscar materiales.
952
740
  */
953
- interface UIRoutesFilter {
954
- /** Búsqueda general (busca en UIRoute, Path y Description) */
741
+ interface MaterialsFilter {
955
742
  Search?: string;
956
- /** Filtro por nombre de la ruta (búsqueda parcial) */
957
- UIRoute?: string;
958
- /** Filtro por path (búsqueda parcial) */
959
- Path?: string;
960
- /** Filtro por descripción (búsqueda parcial) */
743
+ Material?: string;
961
744
  Description?: string;
962
- /** Filtro por estado activo/inactivo */
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;
760
+ }
761
+ /**
762
+ * Request para crear o actualizar un proveedor.
763
+ */
764
+ interface ProviderRequest {
765
+ provider: string;
766
+ contactName: string;
767
+ areaCodeId: number;
768
+ contactNumber: string;
769
+ contactEmail: string;
770
+ isActive: boolean;
771
+ }
772
+ /**
773
+ * Filtros disponibles para buscar proveedores.
774
+ */
775
+ interface ProvidersFilter {
776
+ Search?: string;
777
+ Provider?: string;
963
778
  IsActive?: boolean;
964
779
  }
965
780
 
966
781
  /**
967
- * Servicio para gestionar las configuraciones del sistema.
782
+ * Servicio para gestionar inventario: ubicaciones, estatus, empaques y materiales.
968
783
  */
969
- declare class SystemService {
784
+ declare class InventoryService {
970
785
  private api;
971
786
  private readonly BASE_PATH;
972
787
  constructor(api: API);
973
788
  /**
974
- * Obtiene todos los módulos con filtros opcionales.
789
+ * Obtiene todas las ubicaciones con filtros opcionales.
975
790
  * @param filter - Filtros opcionales para la búsqueda
976
791
  */
977
- getModules(filter?: ModulesFilter): Promise<ResponseModel<Module[]>>;
792
+ getLocations(filter?: LocationsFilter): Promise<ResponseModel<Location[]>>;
978
793
  /**
979
- * Obtiene el modelo de filtros disponibles para módulos.
794
+ * Obtiene el modelo de filtros disponibles para ubicaciones.
980
795
  */
981
- getModulesFilters(): Promise<ResponseModel<FilterGroupsModel>>;
796
+ getLocationFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
982
797
  /**
983
- * Obtiene un módulo por su ID.
984
- * @param id - ID del módulo
798
+ * Obtiene una ubicación por su ID.
799
+ * @param id - ID de la ubicación
985
800
  */
986
- getModuleById(id: number): Promise<ResponseModel<Module>>;
801
+ getLocationById(id: number): Promise<ResponseModel<Location>>;
987
802
  /**
988
- * Crea un nuevo módulo.
989
- * @param request - Datos del módulo a crear
803
+ * Crea una nueva ubicación.
804
+ * @param request - Datos de la ubicación a crear
990
805
  */
991
- createModule(request: ModuleRequest): Promise<ResponseModel<Module>>;
806
+ createLocation(request: LocationsRequest): Promise<ResponseModel<Location>>;
992
807
  /**
993
- * Actualiza un módulo existente.
994
- * @param id - ID del módulo a actualizar
995
- * @param request - Nuevos datos del módulo
808
+ * Actualiza una ubicación existente.
809
+ * @param id - ID de la ubicación a actualizar
810
+ * @param request - Nuevos datos de la ubicación
996
811
  */
997
- updateModule(id: number, request: ModuleRequest): Promise<ResponseModel<Module>>;
812
+ updateLocation(id: number, request: LocationsRequest): Promise<ResponseModel<Location>>;
998
813
  /**
999
- * Activa o desactiva un módulo.
1000
- * @param id - ID del módulo
814
+ * Activa o desactiva una ubicación.
815
+ * @param id - ID de la ubicación
1001
816
  */
1002
- toggleModuleStatus(id: number): Promise<ResponseModel<Module>>;
817
+ toggleLocationStatus(id: number): Promise<ResponseModel<Location>>;
1003
818
  /**
1004
- * Elimina un módulo.
1005
- * @param id - ID del módulo a eliminar
819
+ * Elimina una ubicación.
820
+ * @param id - ID de la ubicación a eliminar
1006
821
  */
1007
- deleteModule(id: number): Promise<ResponseModel<void>>;
822
+ deleteLocation(id: number): Promise<ResponseModel<void>>;
1008
823
  /**
1009
- * Obtiene todos los endpoints con filtros opcionales.
824
+ * Obtiene todos los estatus de inventario con filtros opcionales.
1010
825
  * @param filter - Filtros opcionales para la búsqueda
1011
826
  */
1012
- getEndpoints(filter?: EndpointsFilter): Promise<ResponseModel<Endpoint[]>>;
827
+ getStatuses(filter?: InventoryStatusesFilter): Promise<ResponseModel<InventoryStatus[]>>;
1013
828
  /**
1014
- * Obtiene el modelo de filtros disponibles para endpoints.
829
+ * Obtiene el modelo de filtros disponibles para estatus de inventario.
1015
830
  */
1016
- getEndpointsFilters(): Promise<ResponseModel<FilterGroupsModel>>;
831
+ getStatusFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1017
832
  /**
1018
- * Obtiene los módulos disponibles (valores únicos del primer segmento del path).
833
+ * Obtiene un estatus de inventario por su ID.
834
+ * @param id - ID del estatus
1019
835
  */
1020
- getEndpointModules(): Promise<ResponseModel<string[]>>;
836
+ getStatusById(id: number): Promise<ResponseModel<InventoryStatus>>;
1021
837
  /**
1022
- * Obtiene un endpoint por su ID.
1023
- * @param id - ID del endpoint
838
+ * Crea un nuevo estatus de inventario.
839
+ * @param request - Datos del estatus a crear
1024
840
  */
1025
- getEndpointById(id: number): Promise<ResponseModel<Endpoint>>;
841
+ createStatus(request: InventoryStatusRequest): Promise<ResponseModel<InventoryStatus>>;
1026
842
  /**
1027
- * Crea un nuevo endpoint.
1028
- * @param request - Datos del endpoint a crear
843
+ * Actualiza un estatus de inventario existente.
844
+ * @param id - ID del estatus a actualizar
845
+ * @param request - Nuevos datos del estatus
1029
846
  */
1030
- createEndpoint(request: EndpointRequest): Promise<ResponseModel<Endpoint>>;
847
+ updateStatus(id: number, request: InventoryStatusRequest): Promise<ResponseModel<InventoryStatus>>;
1031
848
  /**
1032
- * Actualiza un endpoint existente.
1033
- * @param id - ID del endpoint a actualizar
1034
- * @param request - Nuevos datos del endpoint
849
+ * Elimina un estatus de inventario.
850
+ * @param id - ID del estatus a eliminar
1035
851
  */
1036
- updateEndpoint(id: number, request: EndpointRequest): Promise<ResponseModel<Endpoint>>;
852
+ deleteStatus(id: number): Promise<ResponseModel<void>>;
1037
853
  /**
1038
- * Activa o desactiva un endpoint.
1039
- * @param id - ID del endpoint
854
+ * Obtiene todos los empaques con filtros opcionales.
855
+ * @param filter - Filtros opcionales para la búsqueda
1040
856
  */
1041
- toggleEndpointStatus(id: number): Promise<ResponseModel<Endpoint>>;
857
+ getPackings(filter?: PackingsFilter): Promise<ResponseModel<Packing[]>>;
1042
858
  /**
1043
- * Elimina un endpoint.
1044
- * @param id - ID del endpoint a eliminar
859
+ * Obtiene el modelo de filtros disponibles para empaques.
1045
860
  */
1046
- deleteEndpoint(id: number): Promise<ResponseModel<void>>;
861
+ getPackingFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1047
862
  /**
1048
- * Obtiene todas las rutas de UI con filtros opcionales.
1049
- * @param filter - Filtros opcionales para la búsqueda
863
+ * Obtiene un empaque por su ID.
864
+ * @param id - ID del empaque
1050
865
  */
1051
- getUIRoutes(filter?: UIRoutesFilter): Promise<ResponseModel<UIRoute[]>>;
866
+ getPackingById(id: number): Promise<ResponseModel<Packing>>;
1052
867
  /**
1053
- * Obtiene el modelo de filtros disponibles para rutas de UI.
868
+ * Crea un nuevo empaque.
869
+ * @param request - Datos del empaque a crear
1054
870
  */
1055
- getUIRoutesFilters(): Promise<ResponseModel<FilterGroupsModel>>;
871
+ createPacking(request: PackingRequest): Promise<ResponseModel<Packing>>;
1056
872
  /**
1057
- * Obtiene una ruta de UI por su ID.
1058
- * @param id - ID de la ruta
873
+ * Actualiza un empaque existente.
874
+ * @param id - ID del empaque a actualizar
875
+ * @param request - Nuevos datos del empaque
1059
876
  */
1060
- getUIRouteById(id: number): Promise<ResponseModel<UIRoute>>;
877
+ updatePacking(id: number, request: PackingRequest): Promise<ResponseModel<Packing>>;
1061
878
  /**
1062
- * Crea una nueva ruta de UI.
1063
- * @param request - Datos de la ruta a crear
879
+ * Activa o desactiva un empaque.
880
+ * @param id - ID del empaque
1064
881
  */
1065
- createUIRoute(request: UIRouteRequest): Promise<ResponseModel<UIRoute>>;
882
+ togglePackingStatus(id: number): Promise<ResponseModel<Packing>>;
1066
883
  /**
1067
- * Actualiza una ruta de UI existente.
1068
- * @param id - ID de la ruta a actualizar
1069
- * @param request - Nuevos datos de la ruta
884
+ * Elimina un empaque.
885
+ * @param id - ID del empaque a eliminar
1070
886
  */
1071
- updateUIRoute(id: number, request: UIRouteRequest): Promise<ResponseModel<UIRoute>>;
887
+ deletePacking(id: number): Promise<ResponseModel<void>>;
1072
888
  /**
1073
- * Activa o desactiva una ruta de UI.
1074
- * @param id - ID de la ruta
889
+ * Obtiene todos los materiales con filtros opcionales.
890
+ * @param filter - Filtros opcionales para la búsqueda
1075
891
  */
1076
- toggleUIRouteStatus(id: number): Promise<ResponseModel<UIRoute>>;
892
+ getMaterials(filter?: MaterialsFilter): Promise<ResponseModel<Material[]>>;
1077
893
  /**
1078
- * Elimina una ruta de UI.
1079
- * @param id - ID de la ruta a eliminar
894
+ * Obtiene el modelo de filtros disponibles para materiales.
1080
895
  */
1081
- deleteUIRoute(id: number): Promise<ResponseModel<void>>;
1082
- }
1083
-
1084
- interface Location {
1085
- locationId: number;
1086
- locationName: string;
1087
- address1: string;
1088
- address2: string;
1089
- city: string;
1090
- state: string;
1091
- country: string;
1092
- postalCode: string;
1093
- contactName: string;
1094
- areaCodeId: number;
1095
- contactPhone: string;
1096
- contactEmail: string;
1097
- isActive: boolean | null;
1098
- createdAt: string | null;
1099
- updatedAt: string | null;
1100
- deleted: boolean | null;
1101
- }
1102
- interface LocationsRequest {
1103
- locationName: string;
1104
- address1: string;
1105
- address2?: string;
1106
- city: string;
1107
- state: string;
1108
- country: string;
1109
- postalCode: string;
1110
- contactName: string;
1111
- areaCodeId: number;
1112
- contactPhone: string;
1113
- contactEmail: string;
1114
- isActive?: boolean;
1115
- }
1116
- interface LocationsFilter {
1117
- Search?: string;
1118
- LocationName?: string;
1119
- City?: string;
1120
- State?: string;
1121
- Country?: string;
1122
- IsActive?: boolean;
896
+ getMaterialFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
897
+ /**
898
+ * Obtiene un material por su ID.
899
+ * @param id - ID del material
900
+ */
901
+ getMaterialById(id: number): Promise<ResponseModel<Material>>;
902
+ /**
903
+ * Crea un nuevo material.
904
+ * @param request - Datos del material a crear
905
+ */
906
+ createMaterial(request: MaterialRequest): Promise<ResponseModel<Material>>;
907
+ /**
908
+ * Actualiza un material existente.
909
+ * @param id - ID del material a actualizar
910
+ * @param request - Nuevos datos del material
911
+ */
912
+ updateMaterial(id: number, request: MaterialRequest): Promise<ResponseModel<Material>>;
913
+ /**
914
+ * Elimina un material.
915
+ * @param id - ID del material a eliminar
916
+ */
917
+ deleteMaterial(id: number): Promise<ResponseModel<void>>;
918
+ /**
919
+ * Obtiene todos los proveedores con filtros opcionales.
920
+ * @param filter - Filtros opcionales para la búsqueda
921
+ */
922
+ getProviders(filter?: ProvidersFilter): Promise<ResponseModel<Provider[]>>;
923
+ /**
924
+ * Obtiene el modelo de filtros disponibles para proveedores.
925
+ */
926
+ getProviderFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
927
+ /**
928
+ * Obtiene un proveedor por su ID.
929
+ * @param id - ID del proveedor
930
+ */
931
+ getProviderById(id: number): Promise<ResponseModel<Provider>>;
932
+ /**
933
+ * Crea un nuevo proveedor.
934
+ * @param request - Datos del proveedor a crear
935
+ */
936
+ createProvider(request: ProviderRequest): Promise<ResponseModel<Provider>>;
937
+ /**
938
+ * Actualiza un proveedor existente.
939
+ * @param id - ID del proveedor a actualizar
940
+ * @param request - Nuevos datos del proveedor
941
+ */
942
+ updateProvider(id: number, request: ProviderRequest): Promise<ResponseModel<Provider>>;
943
+ /**
944
+ * Activa o desactiva un proveedor.
945
+ * @param id - ID del proveedor
946
+ */
947
+ toggleProviderStatus(id: number): Promise<ResponseModel<Provider>>;
948
+ /**
949
+ * Elimina un proveedor.
950
+ * @param id - ID del proveedor a eliminar
951
+ */
952
+ deleteProvider(id: number): Promise<ResponseModel<void>>;
1123
953
  }
1124
954
 
1125
- interface InventoryStatus {
1126
- inventoryStatusId: number;
1127
- inventoryStatus: string;
955
+ /**
956
+ * Interfaz que representa un módulo del sistema.
957
+ */
958
+ interface Module {
959
+ moduleId: number;
960
+ module: string;
1128
961
  description: string;
1129
- createdAt: string | null;
1130
- updatedAt: string | null;
1131
- deleted: boolean | null;
962
+ isActive: boolean;
1132
963
  }
1133
- interface InventoryStatusRequest {
1134
- inventoryStatusId?: number;
1135
- inventoryStatus: string;
964
+ /**
965
+ * Request para crear o actualizar un módulo.
966
+ */
967
+ interface ModuleRequest {
968
+ module: string;
1136
969
  description: string;
1137
- createdAt?: string;
1138
- updatedAt?: string;
1139
- deleted?: boolean;
970
+ isActive?: boolean;
1140
971
  }
1141
- interface InventoryStatusesFilter {
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) */
1142
978
  Search?: string;
1143
- InventoryStatus?: string;
979
+ /** Filtro por nombre del módulo (búsqueda parcial) */
980
+ Module?: string;
981
+ /** Filtro por descripción (búsqueda parcial) */
1144
982
  Description?: string;
983
+ /** Filtro por estado activo/inactivo */
984
+ IsActive?: boolean;
1145
985
  }
1146
986
 
1147
987
  /**
1148
- * Interfaz que representa un empaque del inventario.
988
+ * Interfaz que representa un endpoint del sistema.
1149
989
  */
1150
- interface Packing {
1151
- packingId: number;
1152
- packing: string;
1153
- materialId: number | null;
1154
- length: number | null;
1155
- width: number | null;
1156
- height: number | null;
1157
- weightLimit: number | null;
1158
- cost: number | null;
1159
- providerId: number | null;
1160
- isActive: number | null;
1161
- createdAt: string | null;
1162
- updatedAt: string | null;
1163
- deleted: boolean | null;
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;
1164
1002
  }
1165
1003
  /**
1166
- * Request para crear o actualizar un empaque.
1004
+ * Request para crear o actualizar un endpoint.
1167
1005
  */
1168
- interface PackingRequest {
1169
- packing: string;
1170
- materialId?: number;
1171
- length?: number;
1172
- width?: number;
1173
- height?: number;
1174
- weightLimit?: number;
1175
- cost?: number;
1176
- providerId?: number;
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;
1177
1017
  }
1178
1018
  /**
1179
- * Filtros disponibles para buscar empaques.
1019
+ * Métodos HTTP disponibles para endpoints.
1180
1020
  */
1181
- interface PackingsFilter {
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) */
1182
1028
  Search?: string;
1183
- Packing?: string;
1184
- MaterialId?: number;
1185
- ProviderId?: number;
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 */
1186
1048
  IsActive?: boolean;
1187
1049
  }
1188
1050
 
1189
1051
  /**
1190
- * Interfaz que representa un material del inventario.
1052
+ * Interfaz que representa una ruta de UI del sistema.
1191
1053
  */
1192
- interface Material {
1193
- materialId: number;
1194
- material: string;
1054
+ interface UIRoute {
1055
+ uiRouteId: number;
1056
+ uiRoute: string;
1057
+ path: string;
1195
1058
  description: string;
1196
- isRecyclable: boolean | null;
1197
- isFragile: boolean | null;
1198
- createdAt: string | null;
1199
- updatedAt: string | null;
1200
- deleted: boolean | null;
1059
+ isActive: boolean;
1201
1060
  }
1202
1061
  /**
1203
- * Request para crear o actualizar un material.
1062
+ * Request para crear o actualizar una ruta de UI.
1204
1063
  */
1205
- interface MaterialRequest {
1206
- material: string;
1064
+ interface UIRouteRequest {
1065
+ uiRoute: string;
1066
+ path: string;
1207
1067
  description: string;
1208
- isRecyclable?: boolean;
1209
- isFragile?: boolean;
1068
+ isActive?: boolean;
1210
1069
  }
1211
1070
  /**
1212
- * Filtros disponibles para buscar materiales.
1071
+ * Filtros disponibles para buscar rutas de UI.
1072
+ * Todos los campos son opcionales.
1213
1073
  */
1214
- interface MaterialsFilter {
1074
+ interface UIRoutesFilter {
1075
+ /** Búsqueda general (busca en UIRoute, Path y Description) */
1215
1076
  Search?: string;
1216
- Material?: string;
1077
+ /** Filtro por nombre de la ruta (búsqueda parcial) */
1078
+ UIRoute?: string;
1079
+ /** Filtro por path (búsqueda parcial) */
1080
+ Path?: string;
1081
+ /** Filtro por descripción (búsqueda parcial) */
1217
1082
  Description?: string;
1218
- IsRecyclable?: boolean;
1219
- IsFragile?: boolean;
1083
+ /** Filtro por estado activo/inactivo */
1084
+ IsActive?: boolean;
1220
1085
  }
1221
1086
 
1222
1087
  /**
1223
- * Servicio para gestionar inventario: ubicaciones, estatus, empaques y materiales.
1088
+ * Servicio para gestionar las configuraciones del sistema.
1224
1089
  */
1225
- declare class InventoryService {
1090
+ declare class SystemService {
1226
1091
  private api;
1227
1092
  private readonly BASE_PATH;
1228
1093
  constructor(api: API);
1229
1094
  /**
1230
- * Obtiene todas las ubicaciones con filtros opcionales.
1095
+ * Obtiene todos los módulos con filtros opcionales.
1231
1096
  * @param filter - Filtros opcionales para la búsqueda
1232
1097
  */
1233
- getLocations(filter?: LocationsFilter): Promise<ResponseModel<Location[]>>;
1098
+ getModules(filter?: ModulesFilter): Promise<ResponseModel<Module[]>>;
1234
1099
  /**
1235
- * Obtiene el modelo de filtros disponibles para ubicaciones.
1100
+ * Obtiene el modelo de filtros disponibles para módulos.
1236
1101
  */
1237
- getLocationFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1102
+ getModulesFilters(): Promise<ResponseModel<FilterGroupsModel>>;
1238
1103
  /**
1239
- * Obtiene una ubicación por su ID.
1240
- * @param id - ID de la ubicación
1104
+ * Obtiene un módulo por su ID.
1105
+ * @param id - ID del módulo
1241
1106
  */
1242
- getLocationById(id: number): Promise<ResponseModel<Location>>;
1107
+ getModuleById(id: number): Promise<ResponseModel<Module>>;
1243
1108
  /**
1244
- * Crea una nueva ubicación.
1245
- * @param request - Datos de la ubicación a crear
1109
+ * Crea un nuevo módulo.
1110
+ * @param request - Datos del módulo a crear
1246
1111
  */
1247
- createLocation(request: LocationsRequest): Promise<ResponseModel<Location>>;
1112
+ createModule(request: ModuleRequest): Promise<ResponseModel<Module>>;
1248
1113
  /**
1249
- * Actualiza una ubicación existente.
1250
- * @param id - ID de la ubicación a actualizar
1251
- * @param request - Nuevos datos de la ubicación
1114
+ * Actualiza un módulo existente.
1115
+ * @param id - ID del módulo a actualizar
1116
+ * @param request - Nuevos datos del módulo
1252
1117
  */
1253
- updateLocation(id: number, request: LocationsRequest): Promise<ResponseModel<Location>>;
1118
+ updateModule(id: number, request: ModuleRequest): Promise<ResponseModel<Module>>;
1254
1119
  /**
1255
- * Activa o desactiva una ubicación.
1256
- * @param id - ID de la ubicación
1120
+ * Activa o desactiva un módulo.
1121
+ * @param id - ID del módulo
1257
1122
  */
1258
- toggleLocationStatus(id: number): Promise<ResponseModel<Location>>;
1123
+ toggleModuleStatus(id: number): Promise<ResponseModel<Module>>;
1259
1124
  /**
1260
- * Elimina una ubicación.
1261
- * @param id - ID de la ubicación a eliminar
1125
+ * Elimina un módulo.
1126
+ * @param id - ID del módulo a eliminar
1262
1127
  */
1263
- deleteLocation(id: number): Promise<ResponseModel<void>>;
1128
+ deleteModule(id: number): Promise<ResponseModel<void>>;
1264
1129
  /**
1265
- * Obtiene todos los estatus de inventario con filtros opcionales.
1130
+ * Obtiene todos los endpoints con filtros opcionales.
1266
1131
  * @param filter - Filtros opcionales para la búsqueda
1267
1132
  */
1268
- getStatuses(filter?: InventoryStatusesFilter): Promise<ResponseModel<InventoryStatus[]>>;
1269
- /**
1270
- * Obtiene el modelo de filtros disponibles para estatus de inventario.
1271
- */
1272
- getStatusFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1273
- /**
1274
- * Obtiene un estatus de inventario por su ID.
1275
- * @param id - ID del estatus
1276
- */
1277
- getStatusById(id: number): Promise<ResponseModel<InventoryStatus>>;
1278
- /**
1279
- * Crea un nuevo estatus de inventario.
1280
- * @param request - Datos del estatus a crear
1281
- */
1282
- createStatus(request: InventoryStatusRequest): Promise<ResponseModel<InventoryStatus>>;
1283
- /**
1284
- * Actualiza un estatus de inventario existente.
1285
- * @param id - ID del estatus a actualizar
1286
- * @param request - Nuevos datos del estatus
1287
- */
1288
- updateStatus(id: number, request: InventoryStatusRequest): Promise<ResponseModel<InventoryStatus>>;
1133
+ getEndpoints(filter?: EndpointsFilter): Promise<ResponseModel<Endpoint[]>>;
1289
1134
  /**
1290
- * Activa o desactiva un estatus de inventario.
1291
- * @param id - ID del estatus
1135
+ * Obtiene el modelo de filtros disponibles para endpoints.
1292
1136
  */
1293
- toggleStatusActive(id: number): Promise<ResponseModel<InventoryStatus>>;
1137
+ getEndpointsFilters(): Promise<ResponseModel<FilterGroupsModel>>;
1294
1138
  /**
1295
- * Elimina un estatus de inventario.
1296
- * @param id - ID del estatus a eliminar
1139
+ * Obtiene los módulos disponibles (valores únicos del primer segmento del path).
1297
1140
  */
1298
- deleteStatus(id: number): Promise<ResponseModel<void>>;
1141
+ getEndpointModules(): Promise<ResponseModel<string[]>>;
1299
1142
  /**
1300
- * Obtiene todos los empaques con filtros opcionales.
1301
- * @param filter - Filtros opcionales para la búsqueda
1143
+ * Obtiene un endpoint por su ID.
1144
+ * @param id - ID del endpoint
1302
1145
  */
1303
- getPackings(filter?: PackingsFilter): Promise<ResponseModel<Packing[]>>;
1146
+ getEndpointById(id: number): Promise<ResponseModel<Endpoint>>;
1304
1147
  /**
1305
- * Obtiene el modelo de filtros disponibles para empaques.
1148
+ * Crea un nuevo endpoint.
1149
+ * @param request - Datos del endpoint a crear
1306
1150
  */
1307
- getPackingFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1151
+ createEndpoint(request: EndpointRequest): Promise<ResponseModel<Endpoint>>;
1308
1152
  /**
1309
- * Obtiene un empaque por su ID.
1310
- * @param id - ID del empaque
1153
+ * Actualiza un endpoint existente.
1154
+ * @param id - ID del endpoint a actualizar
1155
+ * @param request - Nuevos datos del endpoint
1311
1156
  */
1312
- getPackingById(id: number): Promise<ResponseModel<Packing>>;
1157
+ updateEndpoint(id: number, request: EndpointRequest): Promise<ResponseModel<Endpoint>>;
1313
1158
  /**
1314
- * Crea un nuevo empaque.
1315
- * @param request - Datos del empaque a crear
1159
+ * Activa o desactiva un endpoint.
1160
+ * @param id - ID del endpoint
1316
1161
  */
1317
- createPacking(request: PackingRequest): Promise<ResponseModel<Packing>>;
1162
+ toggleEndpointStatus(id: number): Promise<ResponseModel<Endpoint>>;
1318
1163
  /**
1319
- * Actualiza un empaque existente.
1320
- * @param id - ID del empaque a actualizar
1321
- * @param request - Nuevos datos del empaque
1164
+ * Elimina un endpoint.
1165
+ * @param id - ID del endpoint a eliminar
1322
1166
  */
1323
- updatePacking(id: number, request: PackingRequest): Promise<ResponseModel<Packing>>;
1167
+ deleteEndpoint(id: number): Promise<ResponseModel<void>>;
1324
1168
  /**
1325
- * Elimina un empaque.
1326
- * @param id - ID del empaque a eliminar
1169
+ * Obtiene todas las rutas de UI con filtros opcionales.
1170
+ * @param filter - Filtros opcionales para la búsqueda
1327
1171
  */
1328
- deletePacking(id: number): Promise<ResponseModel<void>>;
1172
+ getUIRoutes(filter?: UIRoutesFilter): Promise<ResponseModel<UIRoute[]>>;
1329
1173
  /**
1330
- * Obtiene todos los materiales con filtros opcionales.
1331
- * @param filter - Filtros opcionales para la búsqueda
1174
+ * Obtiene el modelo de filtros disponibles para rutas de UI.
1332
1175
  */
1333
- getMaterials(filter?: MaterialsFilter): Promise<ResponseModel<Material[]>>;
1176
+ getUIRoutesFilters(): Promise<ResponseModel<FilterGroupsModel>>;
1334
1177
  /**
1335
- * Obtiene el modelo de filtros disponibles para materiales.
1178
+ * Obtiene una ruta de UI por su ID.
1179
+ * @param id - ID de la ruta
1336
1180
  */
1337
- getMaterialFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1181
+ getUIRouteById(id: number): Promise<ResponseModel<UIRoute>>;
1338
1182
  /**
1339
- * Obtiene un material por su ID.
1340
- * @param id - ID del material
1183
+ * Crea una nueva ruta de UI.
1184
+ * @param request - Datos de la ruta a crear
1341
1185
  */
1342
- getMaterialById(id: number): Promise<ResponseModel<Material>>;
1186
+ createUIRoute(request: UIRouteRequest): Promise<ResponseModel<UIRoute>>;
1343
1187
  /**
1344
- * Crea un nuevo material.
1345
- * @param request - Datos del material a crear
1188
+ * Actualiza una ruta de UI existente.
1189
+ * @param id - ID de la ruta a actualizar
1190
+ * @param request - Nuevos datos de la ruta
1346
1191
  */
1347
- createMaterial(request: MaterialRequest): Promise<ResponseModel<Material>>;
1192
+ updateUIRoute(id: number, request: UIRouteRequest): Promise<ResponseModel<UIRoute>>;
1348
1193
  /**
1349
- * Actualiza un material existente.
1350
- * @param id - ID del material a actualizar
1351
- * @param request - Nuevos datos del material
1194
+ * Activa o desactiva una ruta de UI.
1195
+ * @param id - ID de la ruta
1352
1196
  */
1353
- updateMaterial(id: number, request: MaterialRequest): Promise<ResponseModel<Material>>;
1197
+ toggleUIRouteStatus(id: number): Promise<ResponseModel<UIRoute>>;
1354
1198
  /**
1355
- * Elimina un material.
1356
- * @param id - ID del material a eliminar
1199
+ * Elimina una ruta de UI.
1200
+ * @param id - ID de la ruta a eliminar
1357
1201
  */
1358
- deleteMaterial(id: number): Promise<ResponseModel<void>>;
1202
+ deleteUIRoute(id: number): Promise<ResponseModel<void>>;
1359
1203
  }
1360
1204
 
1361
- /**
1362
- * Interfaz que representa una imagen de producto.
1363
- */
1364
- interface ProductImage {
1365
- productImageId: number;
1366
- productImage: string;
1367
- mediaTypeId: number;
1368
- productId: number | null;
1369
- mediaRoleId: number | null;
1370
- imageURL: string;
1371
- createdAt: string | null;
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;
1372
1221
  updatedAt: string | null;
1373
- deleted: boolean | null;
1374
- }
1375
- /**
1376
- * Request para crear o actualizar una imagen de producto.
1377
- */
1378
- interface ProductImageRequest {
1379
- productImage: string;
1380
- mediaTypeId: number;
1381
- productId?: number;
1382
- mediaRoleId?: number;
1383
- imageURL: string;
1384
- }
1385
- /**
1386
- * Filtros disponibles para buscar imágenes de producto.
1387
- */
1388
- interface ProductImagesFilter {
1389
- Search?: string;
1390
- ProductImage?: string;
1391
- MediaTypeId?: number;
1392
- ProductId?: number;
1393
- MediaRoleId?: number;
1394
1222
  }
1395
-
1396
- /**
1397
- * Interfaz que representa un bullet de producto.
1398
- */
1399
- interface ProductBullet {
1400
- productBulletId: number;
1401
- productId: number;
1402
- bulletOrder: number;
1403
- title: string;
1404
- text: string;
1405
- createdAt: string | null;
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;
1406
1242
  updatedAt: string | null;
1407
- deleted: boolean | null;
1408
- }
1409
- /**
1410
- * Request para crear o actualizar un bullet de producto.
1411
- */
1412
- interface ProductBulletRequest {
1413
- productId: number;
1414
- bulletOrder: number;
1415
- title: string;
1416
- text: string;
1417
- }
1418
- /**
1419
- * Filtros disponibles para buscar bullets de producto.
1420
- */
1421
- interface ProductBulletsFilter {
1422
- Search?: string;
1423
- ProductId?: number;
1424
- Title?: string;
1425
- Text?: string;
1426
1243
  }
1427
1244
 
1428
- /**
1429
- * Interfaz que representa un keyword de producto.
1430
- */
1431
- interface ProductKeyword {
1432
- productKeywordId: number;
1433
- productId: number;
1434
- keyword: string;
1435
- createdAt: string | null;
1436
- updatedAt: string | null;
1437
- deleted: boolean | null;
1438
- }
1439
- /**
1440
- * Request para crear o actualizar un keyword de producto.
1441
- */
1442
- interface ProductKeywordRequest {
1443
- productId: number;
1444
- keyword: string;
1445
- }
1446
- /**
1447
- * Filtros disponibles para buscar keywords de producto.
1448
- */
1449
- interface ProductKeywordsFilter {
1450
- Search?: string;
1451
- ProductId?: number;
1452
- Keyword?: string;
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;
1453
1256
  }
1454
1257
 
1455
- /**
1456
- * Interfaz que representa un precio de producto.
1457
- */
1458
- interface ProductPrice {
1459
- productPriceId: number;
1460
- productId: number;
1461
- priceTypeId: number;
1462
- value: number;
1463
- currency: string;
1464
- eventId: number | null;
1465
- validFrom: string | null;
1466
- validTo: string | null;
1467
- createdAt: string | null;
1468
- updatedAt: string | null;
1469
- deleted: boolean | null;
1470
- }
1471
- /**
1472
- * Request para crear o actualizar un precio de producto.
1473
- */
1474
- interface ProductPriceRequest {
1475
- productId: number;
1476
- priceTypeId: number;
1477
- value: number;
1478
- currency: string;
1479
- eventId?: number;
1480
- validFrom?: string;
1481
- validTo?: string;
1482
- }
1483
- /**
1484
- * Filtros disponibles para buscar precios de producto.
1485
- */
1486
- interface ProductPricesFilter {
1487
- Search?: string;
1488
- ProductId?: number;
1489
- PriceTypeId?: number;
1490
- Currency?: string;
1491
- EventId?: number;
1258
+ interface UserAuthAdminRequest {
1259
+ userId: number;
1260
+ securityLevel: number;
1261
+ clientId: string;
1262
+ requireEmailConfirmation?: boolean;
1492
1263
  }
1493
1264
 
1494
- /**
1495
- * Interfaz que representa un producto en blanco.
1496
- */
1497
- interface BlankProduct {
1498
- blankProductId: number;
1499
- sku: string;
1500
- providerId: number | null;
1501
- materialId: number | null;
1502
- color: string;
1503
- sizeId: number | null;
1504
- price: number | null;
1505
- createdAt: string | null;
1506
- updatedAt: string | null;
1507
- deleted: boolean | null;
1508
- }
1509
- /**
1510
- * Request para crear o actualizar un producto en blanco.
1511
- */
1512
- interface BlankProductRequest {
1513
- sku: string;
1514
- providerId?: number;
1515
- materialId?: number;
1516
- color: string;
1517
- sizeId?: number;
1518
- price?: number;
1519
- }
1520
- /**
1521
- * Filtros disponibles para buscar productos en blanco.
1522
- */
1523
- interface BlankProductsFilter {
1524
- Search?: string;
1525
- SKU?: string;
1526
- ProviderId?: number;
1527
- MaterialId?: number;
1528
- Color?: string;
1529
- SizeId?: number;
1265
+ interface ChangePasswordAdminRequest {
1266
+ newPassword: string;
1530
1267
  }
1531
1268
 
1532
- /**
1533
- * Interfaz que representa un detalle de producto POD (Print on Demand).
1534
- */
1535
- interface DetailProductPOD {
1536
- detailProductPODId: number;
1537
- productId: number | null;
1538
- blankProductId: number | null;
1539
- mokup: string;
1540
- frontPrint: string;
1541
- backPrint: string;
1542
- sidePrint: string;
1543
- detailPrint: string;
1544
- neckLabel: string;
1545
- handTag: string;
1546
- royalty: number | null;
1547
- colorVariant: string;
1548
- createdAt: string | null;
1549
- updatedAt: string | null;
1550
- deleted: boolean | null;
1551
- }
1552
- /**
1553
- * Request para crear o actualizar un detalle de producto POD.
1554
- */
1555
- interface DetailProductPODRequest {
1556
- productId?: number;
1557
- blankProductId?: number;
1558
- mokup: string;
1559
- frontPrint: string;
1560
- backPrint: string;
1561
- sidePrint: string;
1562
- detailPrint: string;
1563
- neckLabel: string;
1564
- handTag: string;
1565
- royalty?: number;
1566
- colorVariant: string;
1567
- }
1568
- /**
1569
- * Filtros disponibles para buscar detalles de producto POD.
1570
- */
1571
- interface DetailProductPODFilter {
1269
+ interface UserAdminFilter {
1572
1270
  Search?: string;
1573
- ProductId?: number;
1574
- BlankProductId?: number;
1575
- ColorVariant?: 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;
1576
1279
  }
1577
1280
 
1578
- /**
1579
- * Interfaz que representa una talla.
1580
- */
1581
- interface Size {
1582
- sizeId: number;
1583
- size: string;
1584
- description: string;
1585
- sizeGroupId: number | null;
1586
- width: string;
1587
- length: string;
1588
- createdAt: string | null;
1589
- updatedAt: string | null;
1590
- deleted: boolean | null;
1591
- }
1592
- /**
1593
- * Request para crear o actualizar una talla.
1594
- */
1595
- interface SizeRequest {
1596
- size: string;
1597
- description: string;
1598
- sizeGroupId?: number;
1599
- width: string;
1600
- length: string;
1601
- }
1602
- /**
1603
- * Filtros disponibles para buscar tallas.
1604
- */
1605
- interface SizesFilter {
1606
- Search?: string;
1607
- Size?: string;
1608
- Description?: string;
1609
- SizeGroupId?: number;
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;
1610
1292
  }
1611
1293
 
1612
- /**
1613
- * Interfaz que representa un grupo de tallas.
1614
- */
1615
- interface SizeGroup {
1616
- sizeGroupId: number;
1617
- sizeGroup: string;
1618
- description: string;
1619
- createdAt: string | null;
1620
- updatedAt: string | null;
1621
- deleted: boolean | null;
1622
- }
1623
- /**
1624
- * Request para crear o actualizar un grupo de tallas.
1625
- */
1626
- interface SizeGroupRequest {
1627
- sizeGroup: string;
1628
- description: string;
1629
- }
1630
- /**
1631
- * Filtros disponibles para buscar grupos de tallas.
1632
- */
1633
- interface SizeGroupsFilter {
1634
- Search?: string;
1635
- SizeGroup?: string;
1636
- Description?: string;
1294
+ interface UserAuthUpdateRequest {
1295
+ securityLevel: number;
1296
+ clientId: string;
1297
+ isTwoFactorEnabled?: boolean;
1298
+ emailVerified?: boolean;
1299
+ phoneVerified?: boolean;
1637
1300
  }
1638
1301
 
1639
- /**
1640
- * Interfaz que representa un tipo de producto.
1641
- */
1642
- interface ProductType {
1643
- productTypeId: number;
1644
- productType: string;
1645
- description: string;
1646
- createdAt: string | null;
1647
- updatedAt: string | null;
1648
- deleted: boolean | null;
1649
- }
1650
- /**
1651
- * Request para crear o actualizar un tipo de producto.
1652
- */
1653
- interface ProductTypeRequest {
1654
- productType: string;
1655
- description: string;
1656
- }
1657
- /**
1658
- * Filtros disponibles para buscar tipos de producto.
1659
- */
1660
- interface ProductTypesFilter {
1661
- Search?: string;
1662
- ProductType?: string;
1663
- Description?: string;
1302
+ interface ChangePasswordUserRequest {
1303
+ currentPassword: string;
1304
+ newPassword: string;
1664
1305
  }
1665
1306
 
1666
1307
  /**
1667
- * Interfaz que representa una categoría de producto.
1308
+ * Interfaz que representa un rol del sistema.
1668
1309
  */
1669
- interface ProductCategory {
1670
- productCategoryId: number;
1671
- productCategory: string;
1672
- description: string;
1673
- isActive: boolean | null;
1674
- createdAt: string | null;
1675
- updatedAt: string | null;
1676
- deleted: boolean | null;
1310
+ interface Role {
1311
+ roleId: number;
1312
+ role: string;
1313
+ key?: string;
1314
+ description?: string;
1315
+ userTypeId: number;
1316
+ isActive: boolean;
1677
1317
  }
1678
1318
  /**
1679
- * Request para crear o actualizar una categoría de producto.
1319
+ * Request para crear o actualizar un rol.
1680
1320
  */
1681
- interface ProductCategoryRequest {
1682
- productCategory: string;
1683
- description: string;
1321
+ interface RoleRequest {
1322
+ role: string;
1323
+ userTypeId: number;
1324
+ key?: string;
1325
+ description?: string;
1684
1326
  isActive?: boolean;
1685
1327
  }
1686
1328
  /**
1687
- * Filtros disponibles para buscar categorías de producto.
1329
+ * Filtros disponibles para buscar roles.
1688
1330
  */
1689
- interface ProductCategoriesFilter {
1331
+ interface RolesFilter {
1332
+ /** Búsqueda general */
1690
1333
  Search?: string;
1691
- ProductCategory?: string;
1334
+ /** Filtro por nombre del rol (búsqueda parcial) */
1335
+ Role?: string;
1336
+ /** Filtro por descripción (búsqueda parcial) */
1692
1337
  Description?: string;
1338
+ /** Filtro por estado activo/inactivo */
1693
1339
  IsActive?: boolean;
1694
1340
  }
1341
+ interface RoleUserProfile {
1342
+ roleId: number;
1343
+ role: string;
1344
+ }
1695
1345
 
1696
- /**
1697
- * Interfaz que representa un estatus de producto.
1698
- */
1699
- interface ProductStatus {
1700
- productStatusId: number;
1701
- productStatus: string;
1702
- description: string;
1703
- isSellable: boolean | null;
1704
- createdAt: string | null;
1705
- updatedAt: string | null;
1706
- deleted: boolean | null;
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;
1707
1357
  }
1708
- /**
1709
- * Request para crear o actualizar un estatus de producto.
1710
- */
1711
- interface ProductStatusRequest {
1712
- productStatus: string;
1713
- description: string;
1714
- isSellable?: boolean;
1358
+ interface UserRole {
1359
+ roleId: number;
1360
+ key: string;
1361
+ role: string;
1715
1362
  }
1716
- /**
1717
- * Filtros disponibles para buscar estatus de producto.
1718
- */
1719
- interface ProductStatusesFilter {
1720
- Search?: string;
1721
- ProductStatus?: string;
1722
- Description?: string;
1723
- IsSellable?: boolean;
1363
+ interface UserType$1 {
1364
+ userTypeId: number;
1365
+ key: string;
1366
+ userType: string;
1724
1367
  }
1725
1368
 
1726
- /**
1727
- * Interfaz que representa un estudio.
1728
- */
1729
- interface Studio {
1730
- studioId: number;
1731
- studio: string;
1732
- logo: string;
1733
- isActive: boolean | null;
1734
- createdAt: string | null;
1735
- updatedAt: string | null;
1736
- deleted: boolean | null;
1737
- }
1738
- /**
1739
- * Request para crear o actualizar un estudio.
1740
- */
1741
- interface StudioRequest {
1742
- studio: string;
1743
- logo: string;
1744
- isActive?: boolean;
1745
- }
1746
- /**
1747
- * Filtros disponibles para buscar estudios.
1748
- */
1749
- interface StudiosFilter {
1750
- Search?: string;
1751
- Studio?: string;
1752
- IsActive?: boolean;
1369
+ interface UserDataUpdateRequest {
1370
+ username: string;
1371
+ firstName: string;
1372
+ lastName: string;
1373
+ areaCodeId: number;
1374
+ phone: string;
1375
+ birthday: Date;
1376
+ profilePhoto: string;
1753
1377
  }
1754
1378
 
1755
1379
  /**
1756
- * Interfaz que representa una licencia.
1380
+ * Interfaz que representa un tipo de usuario.
1757
1381
  */
1758
- interface License {
1759
- licenseId: number;
1760
- license: string;
1761
- studioId: number | null;
1762
- region: string;
1763
- isActive: boolean | null;
1764
- createdAt: string | null;
1765
- updatedAt: string | null;
1766
- deleted: boolean | null;
1382
+ interface UserType {
1383
+ userTypeId: number;
1384
+ userType: string;
1385
+ key?: string;
1386
+ description?: string;
1767
1387
  }
1768
1388
  /**
1769
- * Request para crear o actualizar una licencia.
1389
+ * Request para crear o actualizar un tipo de usuario.
1770
1390
  */
1771
- interface LicenseRequest {
1772
- license: string;
1773
- studioId?: number;
1774
- region: string;
1775
- isActive?: boolean;
1391
+ interface UserTypeRequest {
1392
+ userType: string;
1393
+ key?: string;
1394
+ description?: string;
1776
1395
  }
1777
1396
  /**
1778
- * Filtros disponibles para buscar licencias.
1397
+ * Filtros disponibles para buscar tipos de usuario.
1779
1398
  */
1780
- interface LicensesFilter {
1399
+ interface UserTypesFilter {
1400
+ /** Búsqueda general */
1781
1401
  Search?: string;
1782
- License?: string;
1783
- StudioId?: number;
1784
- Region?: string;
1785
- IsActive?: boolean;
1786
- }
1787
-
1788
- /**
1789
- * Interfaz que representa un proveedor.
1790
- */
1791
- interface Provider {
1792
- providerId: number;
1793
- provider: string;
1794
- contactName: string;
1795
- areaCodeId: number;
1796
- contactNumber: string;
1797
- contactEmail: string;
1798
- isActive: boolean;
1799
- createdAt: string;
1800
- updatedAt: string;
1801
- deleted: boolean;
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;
1802
1408
  }
1803
- /**
1804
- * Request para crear o actualizar un proveedor.
1805
- */
1806
- interface ProviderRequest {
1807
- provider: string;
1808
- contactName: string;
1809
- areaCodeId: number;
1810
- contactNumber: string;
1811
- contactEmail: string;
1812
- isActive?: boolean;
1409
+ interface UserTypeUserProfile {
1410
+ userTypeId: number;
1411
+ userType: string;
1813
1412
  }
1814
- /**
1815
- * Filtros disponibles para buscar proveedores.
1816
- */
1817
- interface ProvidersFilter {
1818
- Search?: string;
1819
- Provider?: string;
1820
- IsActive?: boolean;
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;
1821
1437
  }
1822
1438
 
1823
- /**
1824
- * Servicio para gestionar productos y catálogos de productos.
1825
- */
1826
- declare class ProductService {
1439
+ declare class UserService {
1827
1440
  private api;
1828
1441
  private readonly BASE_PATH;
1829
1442
  constructor(api: API);
1830
1443
  /**
1831
- * Obtiene todas las imágenes de producto con filtros opcionales.
1832
- * @param filter - Filtros opcionales para la búsqueda
1833
- */
1834
- getImages(filter?: ProductImagesFilter): Promise<ResponseModel<ProductImage[]>>;
1835
- /**
1836
- * Obtiene el modelo de filtros disponibles para imágenes de producto.
1837
- */
1838
- getImageFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1839
- /**
1840
- * Obtiene una imagen de producto por su ID.
1841
- * @param id - ID de la imagen
1842
- */
1843
- getImageById(id: number): Promise<ResponseModel<ProductImage>>;
1844
- /**
1845
- * Crea una nueva imagen de producto.
1846
- * @param request - Datos de la imagen a crear
1847
- */
1848
- createImage(request: ProductImageRequest): Promise<ResponseModel<ProductImage>>;
1849
- /**
1850
- * Actualiza una imagen de producto existente.
1851
- * @param id - ID de la imagen a actualizar
1852
- * @param request - Nuevos datos de la imagen
1853
- */
1854
- updateImage(id: number, request: ProductImageRequest): Promise<ResponseModel<ProductImage>>;
1855
- /**
1856
- * Elimina una imagen de producto.
1857
- * @param id - ID de la imagen a eliminar
1858
- */
1859
- deleteImage(id: number): Promise<ResponseModel<void>>;
1860
- /**
1861
- * Obtiene todos los bullets de producto con filtros opcionales.
1862
- * @param filter - Filtros opcionales para la búsqueda
1863
- */
1864
- getBullets(filter?: ProductBulletsFilter): Promise<ResponseModel<ProductBullet[]>>;
1865
- /**
1866
- * Obtiene el modelo de filtros disponibles para bullets de producto.
1867
- */
1868
- getBulletFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1869
- /**
1870
- * Obtiene un bullet de producto por su ID.
1871
- * @param id - ID del bullet
1872
- */
1873
- getBulletById(id: number): Promise<ResponseModel<ProductBullet>>;
1874
- /**
1875
- * Crea un nuevo bullet de producto.
1876
- * @param request - Datos del bullet a crear
1877
- */
1878
- createBullet(request: ProductBulletRequest): Promise<ResponseModel<ProductBullet>>;
1879
- /**
1880
- * Actualiza un bullet de producto existente.
1881
- * @param id - ID del bullet a actualizar
1882
- * @param request - Nuevos datos del bullet
1883
- */
1884
- updateBullet(id: number, request: ProductBulletRequest): Promise<ResponseModel<ProductBullet>>;
1885
- /**
1886
- * Elimina un bullet de producto.
1887
- * @param id - ID del bullet a eliminar
1888
- */
1889
- deleteBullet(id: number): Promise<ResponseModel<void>>;
1890
- /**
1891
- * Obtiene todos los keywords de producto con filtros opcionales.
1892
- * @param filter - Filtros opcionales para la búsqueda
1893
- */
1894
- getKeywords(filter?: ProductKeywordsFilter): Promise<ResponseModel<ProductKeyword[]>>;
1895
- /**
1896
- * Obtiene el modelo de filtros disponibles para keywords de producto.
1897
- */
1898
- getKeywordFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1899
- /**
1900
- * Obtiene un keyword de producto por su ID.
1901
- * @param id - ID del keyword
1902
- */
1903
- getKeywordById(id: number): Promise<ResponseModel<ProductKeyword>>;
1904
- /**
1905
- * Crea un nuevo keyword de producto.
1906
- * @param request - Datos del keyword a crear
1907
- */
1908
- createKeyword(request: ProductKeywordRequest): Promise<ResponseModel<ProductKeyword>>;
1909
- /**
1910
- * Actualiza un keyword de producto existente.
1911
- * @param id - ID del keyword a actualizar
1912
- * @param request - Nuevos datos del keyword
1913
- */
1914
- updateKeyword(id: number, request: ProductKeywordRequest): Promise<ResponseModel<ProductKeyword>>;
1915
- /**
1916
- * Elimina un keyword de producto.
1917
- * @param id - ID del keyword a eliminar
1918
- */
1919
- deleteKeyword(id: number): Promise<ResponseModel<void>>;
1920
- /**
1921
- * Obtiene todos los precios de producto con filtros opcionales.
1922
- * @param filter - Filtros opcionales para la búsqueda
1923
- */
1924
- getPrices(filter?: ProductPricesFilter): Promise<ResponseModel<ProductPrice[]>>;
1925
- /**
1926
- * Obtiene el modelo de filtros disponibles para precios de producto.
1927
- */
1928
- getPriceFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1929
- /**
1930
- * Obtiene un precio de producto por su ID.
1931
- * @param id - ID del precio
1932
- */
1933
- getPriceById(id: number): Promise<ResponseModel<ProductPrice>>;
1934
- /**
1935
- * Crea un nuevo precio de producto.
1936
- * @param request - Datos del precio a crear
1937
- */
1938
- createPrice(request: ProductPriceRequest): Promise<ResponseModel<ProductPrice>>;
1939
- /**
1940
- * Actualiza un precio de producto existente.
1941
- * @param id - ID del precio a actualizar
1942
- * @param request - Nuevos datos del precio
1943
- */
1944
- updatePrice(id: number, request: ProductPriceRequest): Promise<ResponseModel<ProductPrice>>;
1945
- /**
1946
- * Elimina un precio de producto.
1947
- * @param id - ID del precio a eliminar
1948
- */
1949
- deletePrice(id: number): Promise<ResponseModel<void>>;
1950
- /**
1951
- * Obtiene todos los productos en blanco con filtros opcionales.
1952
- * @param filter - Filtros opcionales para la búsqueda
1953
- */
1954
- getBlankProducts(filter?: BlankProductsFilter): Promise<ResponseModel<BlankProduct[]>>;
1955
- /**
1956
- * Obtiene el modelo de filtros disponibles para productos en blanco.
1957
- */
1958
- getBlankProductFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1959
- /**
1960
- * Obtiene un producto en blanco por su ID.
1961
- * @param id - ID del producto en blanco
1962
- */
1963
- getBlankProductById(id: number): Promise<ResponseModel<BlankProduct>>;
1964
- /**
1965
- * Crea un nuevo producto en blanco.
1966
- * @param request - Datos del producto en blanco a crear
1967
- */
1968
- createBlankProduct(request: BlankProductRequest): Promise<ResponseModel<BlankProduct>>;
1969
- /**
1970
- * Actualiza un producto en blanco existente.
1971
- * @param id - ID del producto en blanco a actualizar
1972
- * @param request - Nuevos datos del producto en blanco
1973
- */
1974
- updateBlankProduct(id: number, request: BlankProductRequest): Promise<ResponseModel<BlankProduct>>;
1975
- /**
1976
- * Elimina un producto en blanco.
1977
- * @param id - ID del producto en blanco a eliminar
1978
- */
1979
- deleteBlankProduct(id: number): Promise<ResponseModel<void>>;
1980
- /**
1981
- * Obtiene todos los detalles de producto POD con filtros opcionales.
1982
- * @param filter - Filtros opcionales para la búsqueda
1983
- */
1984
- getPODDetails(filter?: DetailProductPODFilter): Promise<ResponseModel<DetailProductPOD[]>>;
1985
- /**
1986
- * Obtiene el modelo de filtros disponibles para detalles de producto POD.
1987
- */
1988
- getPODDetailFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1989
- /**
1990
- * Obtiene un detalle de producto POD por su ID.
1991
- * @param id - ID del detalle POD
1992
- */
1993
- getPODDetailById(id: number): Promise<ResponseModel<DetailProductPOD>>;
1994
- /**
1995
- * Crea un nuevo detalle de producto POD.
1996
- * @param request - Datos del detalle POD a crear
1997
- */
1998
- createPODDetail(request: DetailProductPODRequest): Promise<ResponseModel<DetailProductPOD>>;
1999
- /**
2000
- * Actualiza un detalle de producto POD existente.
2001
- * @param id - ID del detalle POD a actualizar
2002
- * @param request - Nuevos datos del detalle POD
2003
- */
2004
- updatePODDetail(id: number, request: DetailProductPODRequest): Promise<ResponseModel<DetailProductPOD>>;
2005
- /**
2006
- * Elimina un detalle de producto POD.
2007
- * @param id - ID del detalle POD a eliminar
2008
- */
2009
- deletePODDetail(id: number): Promise<ResponseModel<void>>;
2010
- /**
2011
- * Obtiene todas las tallas con filtros opcionales.
2012
- * @param filter - Filtros opcionales para la búsqueda
2013
- */
2014
- getSizes(filter?: SizesFilter): Promise<ResponseModel<Size[]>>;
2015
- /**
2016
- * Obtiene el modelo de filtros disponibles para tallas.
2017
- */
2018
- getSizeFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
2019
- /**
2020
- * Obtiene una talla por su ID.
2021
- * @param id - ID de la talla
2022
- */
2023
- getSizeById(id: number): Promise<ResponseModel<Size>>;
2024
- /**
2025
- * Crea una nueva talla.
2026
- * @param request - Datos de la talla a crear
2027
- */
2028
- createSize(request: SizeRequest): Promise<ResponseModel<Size>>;
2029
- /**
2030
- * Actualiza una talla existente.
2031
- * @param id - ID de la talla a actualizar
2032
- * @param request - Nuevos datos de la talla
2033
- */
2034
- updateSize(id: number, request: SizeRequest): Promise<ResponseModel<Size>>;
2035
- /**
2036
- * Elimina una talla.
2037
- * @param id - ID de la talla a eliminar
2038
- */
2039
- deleteSize(id: number): Promise<ResponseModel<void>>;
2040
- /**
2041
- * Obtiene todos los grupos de tallas con filtros opcionales.
2042
- * @param filter - Filtros opcionales para la búsqueda
2043
- */
2044
- getSizeGroups(filter?: SizeGroupsFilter): Promise<ResponseModel<SizeGroup[]>>;
2045
- /**
2046
- * Obtiene el modelo de filtros disponibles para grupos de tallas.
2047
- */
2048
- getSizeGroupFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
2049
- /**
2050
- * Obtiene un grupo de tallas por su ID.
2051
- * @param id - ID del grupo de tallas
2052
- */
2053
- getSizeGroupById(id: number): Promise<ResponseModel<SizeGroup>>;
2054
- /**
2055
- * Crea un nuevo grupo de tallas.
2056
- * @param request - Datos del grupo de tallas a crear
2057
- */
2058
- createSizeGroup(request: SizeGroupRequest): Promise<ResponseModel<SizeGroup>>;
2059
- /**
2060
- * Actualiza un grupo de tallas existente.
2061
- * @param id - ID del grupo de tallas a actualizar
2062
- * @param request - Nuevos datos del grupo de tallas
2063
- */
2064
- updateSizeGroup(id: number, request: SizeGroupRequest): Promise<ResponseModel<SizeGroup>>;
2065
- /**
2066
- * Elimina un grupo de tallas.
2067
- * @param id - ID del grupo de tallas a eliminar
2068
- */
2069
- deleteSizeGroup(id: number): Promise<ResponseModel<void>>;
2070
- /**
2071
- * Obtiene todos los tipos de producto con filtros opcionales.
2072
- * @param filter - Filtros opcionales para la búsqueda
2073
- */
2074
- getProductTypes(filter?: ProductTypesFilter): Promise<ResponseModel<ProductType[]>>;
2075
- /**
2076
- * Obtiene el modelo de filtros disponibles para tipos de producto.
2077
- */
2078
- getProductTypeFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1444
+ * Obtiene la información básica del usuario.
1445
+ * @returns retorna un objeto con la información básica del usuario
1446
+ */
1447
+ me(): Promise<ResponseModel<UserBasicResponse>>;
2079
1448
  /**
2080
- * Obtiene un tipo de producto por su ID.
2081
- * @param id - ID del tipo de producto
1449
+ * Obtiene la información general del usuario para la vista de perfil.
1450
+ * @returns
2082
1451
  */
2083
- getProductTypeById(id: number): Promise<ResponseModel<ProductType>>;
1452
+ profile(): Promise<ResponseModel<UserProfileResponse>>;
1453
+ changePasswordUser(request: ChangePasswordUserRequest): Promise<ResponseModel>;
1454
+ updateUserData(request: UserDataUpdateRequest): Promise<ResponseModel>;
2084
1455
  /**
2085
- * Crea un nuevo tipo de producto.
2086
- * @param request - Datos del tipo de producto a crear
1456
+ * Crea un nuevo usuario administrador.
1457
+ * @param request - Datos del nuevo administrador
2087
1458
  */
2088
- createProductType(request: ProductTypeRequest): Promise<ResponseModel<ProductType>>;
1459
+ newAdminUser(request: UserAdminRequest): Promise<ResponseModel<AdminUser>>;
2089
1460
  /**
2090
- * Actualiza un tipo de producto existente.
2091
- * @param id - ID del tipo de producto a actualizar
2092
- * @param request - Nuevos datos del tipo de producto
1461
+ * Crea la autenticación para un usuario.
1462
+ * @param request - Datos de autenticación del usuario
2093
1463
  */
2094
- updateProductType(id: number, request: ProductTypeRequest): Promise<ResponseModel<ProductType>>;
1464
+ createUserAuthentication(request: UserAuthAdminRequest): Promise<ResponseModel<AdminAuthentication>>;
2095
1465
  /**
2096
- * Elimina un tipo de producto.
2097
- * @param id - ID del tipo de producto a eliminar
1466
+ * Cambia la contraseña de un administrador.
1467
+ * @param id - ID del usuario
1468
+ * @param request - Nueva contraseña
2098
1469
  */
2099
- deleteProductType(id: number): Promise<ResponseModel<void>>;
1470
+ changePasswordAdmin(id: number, request: ChangePasswordAdminRequest): Promise<ResponseModel>;
2100
1471
  /**
2101
- * Obtiene todas las categorías de producto con filtros opcionales.
1472
+ * Obtiene todos los administradores con filtros opcionales.
2102
1473
  * @param filter - Filtros opcionales para la búsqueda
2103
1474
  */
2104
- getProductCategories(filter?: ProductCategoriesFilter): Promise<ResponseModel<ProductCategory[]>>;
2105
- /**
2106
- * Obtiene el modelo de filtros disponibles para categorías de producto.
2107
- */
2108
- getProductCategoryFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
2109
- /**
2110
- * Obtiene una categoría de producto por su ID.
2111
- * @param id - ID de la categoría
2112
- */
2113
- getProductCategoryById(id: number): Promise<ResponseModel<ProductCategory>>;
2114
- /**
2115
- * Crea una nueva categoría de producto.
2116
- * @param request - Datos de la categoría a crear
2117
- */
2118
- createProductCategory(request: ProductCategoryRequest): Promise<ResponseModel<ProductCategory>>;
2119
- /**
2120
- * Actualiza una categoría de producto existente.
2121
- * @param id - ID de la categoría a actualizar
2122
- * @param request - Nuevos datos de la categoría
2123
- */
2124
- updateProductCategory(id: number, request: ProductCategoryRequest): Promise<ResponseModel<ProductCategory>>;
1475
+ getAllAdmins(filter?: UserAdminFilter): Promise<ResponseModel<AdminUser[]>>;
2125
1476
  /**
2126
- * Activa o desactiva una categoría de producto.
2127
- * @param id - ID de la categoría
1477
+ * Obtiene el modelo de filtros disponibles para administradores.
2128
1478
  */
2129
- toggleProductCategoryStatus(id: number): Promise<ResponseModel<ProductCategory>>;
1479
+ getAdminFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
2130
1480
  /**
2131
- * Elimina una categoría de producto.
2132
- * @param id - ID de la categoría a eliminar
1481
+ * Obtiene un administrador por su ID.
1482
+ * @param id - ID del administrador
2133
1483
  */
2134
- deleteProductCategory(id: number): Promise<ResponseModel<void>>;
1484
+ getAdminById(id: number): Promise<ResponseModel<AdminUser>>;
2135
1485
  /**
2136
- * Obtiene todos los estatus de producto con filtros opcionales.
2137
- * @param filter - Filtros opcionales para la búsqueda
1486
+ * Obtiene la autenticación de un administrador.
1487
+ * @param id - ID del usuario
2138
1488
  */
2139
- getProductStatuses(filter?: ProductStatusesFilter): Promise<ResponseModel<ProductStatus[]>>;
1489
+ getAdminAuthentication(id: number): Promise<ResponseModel<AdminAuthentication>>;
2140
1490
  /**
2141
- * Obtiene el modelo de filtros disponibles para estatus de producto.
1491
+ * Actualiza un administrador existente.
1492
+ * @param id - ID del administrador
1493
+ * @param request - Nuevos datos del administrador
2142
1494
  */
2143
- getProductStatusFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1495
+ updateAdmin(id: number, request: UserAdminUpdateRequest): Promise<ResponseModel<AdminUser>>;
2144
1496
  /**
2145
- * Obtiene un estatus de producto por su ID.
2146
- * @param id - ID del estatus
1497
+ * Activa o desactiva un administrador.
1498
+ * @param id - ID del administrador
2147
1499
  */
2148
- getProductStatusById(id: number): Promise<ResponseModel<ProductStatus>>;
1500
+ toggleAdminStatus(id: number): Promise<ResponseModel<AdminUser>>;
2149
1501
  /**
2150
- * Crea un nuevo estatus de producto.
2151
- * @param request - Datos del estatus a crear
1502
+ * Actualiza la autenticación de un administrador.
1503
+ * @param id - ID del usuario
1504
+ * @param request - Nuevos datos de autenticación
2152
1505
  */
2153
- createProductStatus(request: ProductStatusRequest): Promise<ResponseModel<ProductStatus>>;
1506
+ updateAdminAuthentication(id: number, request: UserAuthUpdateRequest): Promise<ResponseModel<AdminAuthentication>>;
2154
1507
  /**
2155
- * Actualiza un estatus de producto existente.
2156
- * @param id - ID del estatus a actualizar
2157
- * @param request - Nuevos datos del estatus
1508
+ * Elimina un administrador.
1509
+ * @param id - ID del administrador
2158
1510
  */
2159
- updateProductStatus(id: number, request: ProductStatusRequest): Promise<ResponseModel<ProductStatus>>;
1511
+ deleteAdmin(id: number): Promise<ResponseModel>;
2160
1512
  /**
2161
- * Elimina un estatus de producto.
2162
- * @param id - ID del estatus a eliminar
1513
+ * Reenvía el correo de confirmación al usuario.
1514
+ * @param id - ID del usuario
2163
1515
  */
2164
- deleteProductStatus(id: number): Promise<ResponseModel<void>>;
1516
+ resendEmailConfirmation(id: number): Promise<ResponseModel>;
2165
1517
  /**
2166
- * Obtiene todos los estudios con filtros opcionales.
1518
+ * Obtiene todos los tipos de usuario con filtros opcionales.
2167
1519
  * @param filter - Filtros opcionales para la búsqueda
2168
1520
  */
2169
- getStudios(filter?: StudiosFilter): Promise<ResponseModel<Studio[]>>;
2170
- /**
2171
- * Obtiene el modelo de filtros disponibles para estudios.
2172
- */
2173
- getStudioFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1521
+ getUserTypes(filter?: UserTypesFilter): Promise<ResponseModel<UserType[]>>;
2174
1522
  /**
2175
- * Obtiene un estudio por su ID.
2176
- * @param id - ID del estudio
1523
+ * Obtiene el modelo de filtros disponibles para tipos de usuario.
2177
1524
  */
2178
- getStudioById(id: number): Promise<ResponseModel<Studio>>;
1525
+ getUserTypesFilters(): Promise<ResponseModel<FilterGroupsModel>>;
2179
1526
  /**
2180
- * Crea un nuevo estudio.
2181
- * @param request - Datos del estudio a crear
1527
+ * Obtiene un tipo de usuario por su ID.
1528
+ * @param id - ID del tipo de usuario
2182
1529
  */
2183
- createStudio(request: StudioRequest): Promise<ResponseModel<Studio>>;
1530
+ getUserTypeById(id: number): Promise<ResponseModel<UserType>>;
2184
1531
  /**
2185
- * Actualiza un estudio existente.
2186
- * @param id - ID del estudio a actualizar
2187
- * @param request - Nuevos datos del estudio
1532
+ * Crea un nuevo tipo de usuario.
1533
+ * @param request - Datos del tipo de usuario a crear
2188
1534
  */
2189
- updateStudio(id: number, request: StudioRequest): Promise<ResponseModel<Studio>>;
1535
+ createUserType(request: UserTypeRequest): Promise<ResponseModel<UserType>>;
2190
1536
  /**
2191
- * Activa o desactiva un estudio.
2192
- * @param id - ID del estudio
1537
+ * Actualiza un tipo de usuario existente.
1538
+ * @param id - ID del tipo de usuario a actualizar
1539
+ * @param request - Nuevos datos del tipo de usuario
2193
1540
  */
2194
- toggleStudioStatus(id: number): Promise<ResponseModel<Studio>>;
1541
+ updateUserType(id: number, request: UserTypeRequest): Promise<ResponseModel<UserType>>;
2195
1542
  /**
2196
- * Elimina un estudio.
2197
- * @param id - ID del estudio a eliminar
1543
+ * Elimina un tipo de usuario.
1544
+ * @param id - ID del tipo de usuario a eliminar
2198
1545
  */
2199
- deleteStudio(id: number): Promise<ResponseModel<void>>;
1546
+ deleteUserType(id: number): Promise<ResponseModel<void>>;
2200
1547
  /**
2201
- * Obtiene todas las licencias con filtros opcionales.
1548
+ * Obtiene todos los roles con filtros opcionales.
2202
1549
  * @param filter - Filtros opcionales para la búsqueda
2203
1550
  */
2204
- getLicenses(filter?: LicensesFilter): Promise<ResponseModel<License[]>>;
2205
- /**
2206
- * Obtiene el modelo de filtros disponibles para licencias.
2207
- */
2208
- getLicenseFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1551
+ getRoles(filter?: RolesFilter): Promise<ResponseModel<Role[]>>;
2209
1552
  /**
2210
- * Obtiene una licencia por su ID.
2211
- * @param id - ID de la licencia
1553
+ * Obtiene el modelo de filtros disponibles para roles.
2212
1554
  */
2213
- getLicenseById(id: number): Promise<ResponseModel<License>>;
1555
+ getRolesFilters(): Promise<ResponseModel<FilterGroupsModel>>;
2214
1556
  /**
2215
- * Crea una nueva licencia.
2216
- * @param request - Datos de la licencia a crear
1557
+ * Obtiene un rol por su ID.
1558
+ * @param id - ID del rol
2217
1559
  */
2218
- createLicense(request: LicenseRequest): Promise<ResponseModel<License>>;
1560
+ getRoleById(id: number): Promise<ResponseModel<Role>>;
2219
1561
  /**
2220
- * Actualiza una licencia existente.
2221
- * @param id - ID de la licencia a actualizar
2222
- * @param request - Nuevos datos de la licencia
1562
+ * Obtiene los roles asociados a un tipo de usuario.
1563
+ * @param userTypeId - ID del tipo de usuario
2223
1564
  */
2224
- updateLicense(id: number, request: LicenseRequest): Promise<ResponseModel<License>>;
1565
+ getRolesByUserType(userTypeId: number): Promise<ResponseModel<Role[]>>;
2225
1566
  /**
2226
- * Activa o desactiva una licencia.
2227
- * @param id - ID de la licencia
1567
+ * Crea un nuevo rol.
1568
+ * @param request - Datos del rol a crear
2228
1569
  */
2229
- toggleLicenseStatus(id: number): Promise<ResponseModel<License>>;
1570
+ createRole(request: RoleRequest): Promise<ResponseModel<Role>>;
2230
1571
  /**
2231
- * Elimina una licencia.
2232
- * @param id - ID de la licencia a eliminar
1572
+ * Actualiza un rol existente.
1573
+ * @param id - ID del rol a actualizar
1574
+ * @param request - Nuevos datos del rol
2233
1575
  */
2234
- deleteLicense(id: number): Promise<ResponseModel<void>>;
1576
+ updateRole(id: number, request: RoleRequest): Promise<ResponseModel<Role>>;
2235
1577
  /**
2236
- * Obtiene todos los proveedores con filtros opcionales.
2237
- * @param filter - Filtros opcionales para la búsqueda
1578
+ * Activa o desactiva un rol.
1579
+ * @param id - ID del rol
2238
1580
  */
2239
- getProviders(filter?: ProvidersFilter): Promise<ResponseModel<Provider[]>>;
1581
+ toggleRoleStatus(id: number): Promise<ResponseModel<Role>>;
2240
1582
  /**
2241
- * Obtiene el modelo de filtros disponibles para proveedores.
1583
+ * Elimina un rol.
1584
+ * @param id - ID del rol a eliminar
2242
1585
  */
2243
- getProviderFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1586
+ deleteRole(id: number): Promise<ResponseModel<void>>;
1587
+ }
1588
+
1589
+ /**
1590
+ * SDK principal de FalconHUB
1591
+ */
1592
+ declare class FalconHUBSDK {
1593
+ auth: AuthService;
1594
+ user: UserService;
1595
+ system: SystemService;
1596
+ inventory: InventoryService;
1597
+ catalog: CatalogService;
1598
+ private serviceProperties;
1599
+ private cryptoService;
1600
+ private tokenManager;
1601
+ private authInterceptor;
1602
+ private api;
1603
+ constructor(serviceProperties: ServiceProperties);
1604
+ private normalizeAutoRefreshConfig;
2244
1605
  /**
2245
- * Obtiene un proveedor por su ID.
2246
- * @param id - ID del proveedor
1606
+ * Inyecta tokens desde storage externo (cookies/localStorage/etc)
1607
+ * @param expiresAt - Timestamp en milisegundos
2247
1608
  */
2248
- getProviderById(id: number): Promise<ResponseModel<Provider>>;
1609
+ setTokensFromExternal(accessToken: string, refreshToken: string, expiresAt: number, rememberMe?: boolean): void;
2249
1610
  /**
2250
- * Crea un nuevo proveedor.
2251
- * @param request - Datos del proveedor a crear
1611
+ * Obtiene los tokens actuales
2252
1612
  */
2253
- createProvider(request: ProviderRequest): Promise<ResponseModel<Provider>>;
1613
+ getTokens(): TokenData | null;
2254
1614
  /**
2255
- * Actualiza un proveedor existente.
2256
- * @param id - ID del proveedor a actualizar
2257
- * @param request - Nuevos datos del proveedor
1615
+ * Verifica si el usuario está autenticado
2258
1616
  */
2259
- updateProvider(id: number, request: ProviderRequest): Promise<ResponseModel<Provider>>;
1617
+ isAuthenticated(): boolean;
2260
1618
  /**
2261
- * Activa o desactiva un proveedor.
2262
- * @param id - ID del proveedor
1619
+ * Verifica si la sesión está por expirar
2263
1620
  */
2264
- toggleProviderStatus(id: number): Promise<ResponseModel<Provider>>;
1621
+ isSessionExpiringSoon(thresholdMinutes?: number): boolean;
2265
1622
  /**
2266
- * Elimina un proveedor.
2267
- * @param id - ID del proveedor a eliminar
1623
+ * Obtiene el tiempo restante hasta la expiración en milisegundos
2268
1624
  */
2269
- deleteProvider(id: number): Promise<ResponseModel<void>>;
1625
+ getTimeUntilExpiry(): number | null;
2270
1626
  }
2271
1627
 
2272
1628
  /**
2273
- * Interfaz que representa un género del catálogo.
1629
+ * Interfaz que representa un color.
2274
1630
  */
2275
- interface Gender {
2276
- genderId: number;
2277
- gender: string;
1631
+ interface Color {
1632
+ colorId: number;
1633
+ color: string;
1634
+ key: string;
2278
1635
  createdAt: string;
2279
- updatedAt: string | null;
1636
+ updatedAt?: string;
2280
1637
  deleted: boolean;
2281
1638
  }
2282
1639
  /**
2283
- * Request para crear o actualizar un género.
1640
+ * Request para crear o actualizar un color.
2284
1641
  */
2285
- interface GenderRequest {
2286
- gender: string;
1642
+ interface ColorRequest {
1643
+ color: string;
1644
+ key: string;
2287
1645
  }
2288
1646
  /**
2289
- * Filtros disponibles para buscar géneros.
1647
+ * Filtros disponibles para buscar colores.
2290
1648
  */
2291
- interface GendersFilter {
2292
- /** Búsqueda general */
1649
+ interface ColorsFilter {
2293
1650
  Search?: string;
2294
- /** Filtro por nombre del género (búsqueda parcial) */
2295
- Gender?: string;
1651
+ Color?: string;
2296
1652
  }
2297
1653
 
2298
1654
  /**
2299
- * Interfaz que representa un código de área del catálogo.
1655
+ * Interfaz que representa un grupo de tallas.
2300
1656
  */
2301
- interface AreaCode {
2302
- areaCodeId: number;
2303
- countryCode: string;
1657
+ interface SizeGroup {
1658
+ sizeGroupId: number;
1659
+ sizeGroup: string;
1660
+ key: string;
1661
+ description: string;
1662
+ createdAt: string;
1663
+ updatedAt?: string;
1664
+ deleted: boolean;
1665
+ }
1666
+ /**
1667
+ * Request para crear o actualizar un grupo de tallas.
1668
+ */
1669
+ interface SizeGroupRequest {
1670
+ sizeGroup: string;
1671
+ key: string;
1672
+ description: string;
1673
+ }
1674
+ /**
1675
+ * Filtros disponibles para buscar grupos de tallas.
1676
+ */
1677
+ interface SizeGroupsFilter {
1678
+ Search?: string;
1679
+ SizeGroup?: string;
1680
+ Description?: string;
1681
+ }
1682
+
1683
+ /**
1684
+ * Interfaz que representa una talla.
1685
+ */
1686
+ interface Size {
1687
+ sizeId: number;
1688
+ size: string;
2304
1689
  iso: string;
2305
- countryName: string;
2306
- isActive: boolean;
1690
+ width: string;
1691
+ length: string;
1692
+ sizeGroupId: number;
2307
1693
  createdAt: string;
2308
- updatedAt: string | null;
1694
+ updatedAt?: string;
2309
1695
  deleted: boolean;
1696
+ sizeGroup?: SizeGroup;
2310
1697
  }
2311
1698
  /**
2312
- * Request para crear o actualizar un código de área.
1699
+ * Request para crear o actualizar una talla.
2313
1700
  */
2314
- interface AreaCodeRequest {
2315
- countryCode: string;
1701
+ interface SizeRequest {
1702
+ size: string;
2316
1703
  iso: string;
2317
- countryName: string;
2318
- isActive?: boolean;
1704
+ width: string;
1705
+ length: string;
1706
+ sizeGroupId: number;
2319
1707
  }
2320
1708
  /**
2321
- * Filtros disponibles para buscar códigos de área.
1709
+ * Filtros disponibles para buscar tallas.
2322
1710
  */
2323
- interface AreaCodesFilter {
2324
- /** Búsqueda general */
1711
+ interface SizesFilter {
2325
1712
  Search?: string;
2326
- /** Filtro por código de país (búsqueda parcial) */
2327
- CountryCode?: string;
2328
- /** Filtro por ISO (búsqueda parcial) */
2329
- ISO?: string;
2330
- /** Filtro por nombre de país (búsqueda parcial) */
2331
- CountryName?: string;
2332
- /** Filtro por estado activo/inactivo */
1713
+ Size?: string;
1714
+ SizeGroupId?: number;
1715
+ }
1716
+
1717
+ /**
1718
+ * Interfaz que representa un Blank en el catálogo de productos.
1719
+ */
1720
+ interface Blank {
1721
+ blankId: number;
1722
+ blank: string;
1723
+ sku: string;
1724
+ cost: number;
1725
+ isActive: boolean;
1726
+ colorId: number;
1727
+ providerId: number;
1728
+ materialId: number;
1729
+ sizeId: number;
1730
+ createdAt: string;
1731
+ updatedAt?: string;
1732
+ deleted: boolean;
1733
+ color?: Color;
1734
+ size?: Size;
1735
+ provider?: Provider;
1736
+ material?: Material;
1737
+ }
1738
+ /**
1739
+ * Request para crear o actualizar un Blank.
1740
+ */
1741
+ interface BlankRequest {
1742
+ blank: string;
1743
+ sku: string;
1744
+ cost: number;
1745
+ colorId: number;
1746
+ providerId: number;
1747
+ materialId: number;
1748
+ sizeId: number;
1749
+ isActive: boolean;
1750
+ }
1751
+ /**
1752
+ * Filtros disponibles para buscar Blanks.
1753
+ */
1754
+ interface BlanksFilter {
1755
+ Search?: string;
1756
+ SKU?: string;
1757
+ Provider: string;
1758
+ Material: string;
1759
+ Size: string;
2333
1760
  IsActive?: boolean;
2334
1761
  }
2335
1762
 
2336
1763
  /**
2337
- * Servicio para gestionar catálogos públicos.
2338
- * No requiere autenticación.
1764
+ * Servicio para gestionar entidades relacionadas a Productos (Blanks, Colors, Sizes, SizeGroups, etc.)
2339
1765
  */
2340
- declare class CatalogService {
1766
+ declare class ProductService {
2341
1767
  private api;
2342
1768
  private readonly BASE_PATH;
2343
1769
  constructor(api: API);
2344
1770
  /**
2345
- * Obtiene todos los géneros con filtros opcionales.
2346
- * @param filter - Filtros opcionales para la búsqueda
1771
+ * Obtiene todos los colores con filtros opcionales.
2347
1772
  */
2348
- getGenders(filter?: GendersFilter): Promise<ResponseModel<Gender[]>>;
1773
+ getColors(filter?: ColorsFilter): Promise<ResponseModel<Color[]>>;
2349
1774
  /**
2350
- * Obtiene el modelo de filtros disponibles para géneros.
1775
+ * Obtiene el modelo de filtros disponibles para colores.
2351
1776
  */
2352
- getGendersFilters(): Promise<ResponseModel<FilterGroupsModel>>;
1777
+ getColorsFilters(): Promise<ResponseModel<FilterGroupsModel>>;
2353
1778
  /**
2354
- * Obtiene un género por su ID.
2355
- * @param id - ID del género
1779
+ * Obtiene un color por su ID.
2356
1780
  */
2357
- getGenderById(id: number): Promise<ResponseModel<Gender>>;
1781
+ getColorById(id: number): Promise<ResponseModel<Color>>;
2358
1782
  /**
2359
- * Crea un nuevo género.
2360
- * @param request - Datos del género a crear
1783
+ * Crea un nuevo color.
2361
1784
  */
2362
- createGender(request: GenderRequest): Promise<ResponseModel<Gender>>;
1785
+ createColor(request: ColorRequest): Promise<ResponseModel<Color>>;
2363
1786
  /**
2364
- * Actualiza un género existente.
2365
- * @param id - ID del género a actualizar
2366
- * @param request - Nuevos datos del género
1787
+ * Actualiza un color existente.
2367
1788
  */
2368
- updateGender(id: number, request: GenderRequest): Promise<ResponseModel<Gender>>;
1789
+ updateColor(id: number, request: ColorRequest): Promise<ResponseModel<Color>>;
2369
1790
  /**
2370
- * Elimina un género.
2371
- * @param id - ID del género a eliminar
1791
+ * Elimina un color.
2372
1792
  */
2373
- deleteGender(id: number): Promise<ResponseModel<void>>;
1793
+ deleteColor(id: number): Promise<ResponseModel<void>>;
2374
1794
  /**
2375
- * Obtiene todos los códigos de área con filtros opcionales.
2376
- * @param filter - Filtros opcionales para la búsqueda
1795
+ * Obtiene todos los grupos de tallas con filtros opcionales.
2377
1796
  */
2378
- getAreaCodes(filter?: AreaCodesFilter): Promise<ResponseModel<AreaCode[]>>;
1797
+ getSizeGroups(filter?: SizeGroupsFilter): Promise<ResponseModel<SizeGroup[]>>;
2379
1798
  /**
2380
- * Obtiene el modelo de filtros disponibles para códigos de área.
1799
+ * Obtiene el modelo de filtros disponibles para grupos de tallas.
2381
1800
  */
2382
- getAreaCodesFilters(): Promise<ResponseModel<FilterGroupsModel>>;
1801
+ getSizeGroupsFilters(): Promise<ResponseModel<FilterGroupsModel>>;
2383
1802
  /**
2384
- * Obtiene un código de área por su ID.
2385
- * @param id - ID del código de área
1803
+ * Obtiene un grupo de tallas por su ID.
2386
1804
  */
2387
- getAreaCodeById(id: number): Promise<ResponseModel<AreaCode>>;
1805
+ getSizeGroupById(id: number): Promise<ResponseModel<SizeGroup>>;
2388
1806
  /**
2389
- * Crea un nuevo código de área.
2390
- * @param request - Datos del código de área a crear
1807
+ * Crea un nuevo grupo de tallas.
2391
1808
  */
2392
- createAreaCode(request: AreaCodeRequest): Promise<ResponseModel<AreaCode>>;
1809
+ createSizeGroup(request: SizeGroupRequest): Promise<ResponseModel<SizeGroup>>;
2393
1810
  /**
2394
- * Actualiza un código de área existente.
2395
- * @param id - ID del código de área a actualizar
2396
- * @param request - Nuevos datos del código de área
1811
+ * Actualiza un grupo de tallas existente.
2397
1812
  */
2398
- updateAreaCode(id: number, request: AreaCodeRequest): Promise<ResponseModel<AreaCode>>;
1813
+ updateSizeGroup(id: number, request: SizeGroupRequest): Promise<ResponseModel<SizeGroup>>;
2399
1814
  /**
2400
- * Activa o desactiva un código de área.
2401
- * @param id - ID del código de área
1815
+ * Elimina un grupo de tallas.
2402
1816
  */
2403
- toggleAreaCodeStatus(id: number): Promise<ResponseModel<AreaCode>>;
1817
+ deleteSizeGroup(id: number): Promise<ResponseModel<void>>;
2404
1818
  /**
2405
- * Elimina un código de área.
2406
- * @param id - ID del código de área a eliminar
1819
+ * Obtiene todas las tallas con filtros opcionales.
2407
1820
  */
2408
- deleteAreaCode(id: number): Promise<ResponseModel<void>>;
2409
- }
2410
-
2411
- /**
2412
- * SDK principal de FalconHUB
2413
- */
2414
- declare class FalconHUBSDK {
2415
- auth: AuthService;
2416
- user: UserService;
2417
- system: SystemService;
2418
- inventory: InventoryService;
2419
- product: ProductService;
2420
- catalog: CatalogService;
2421
- private serviceProperties;
2422
- private cryptoService;
2423
- private tokenManager;
2424
- private authInterceptor;
2425
- private api;
2426
- constructor(serviceProperties: ServiceProperties);
2427
- private normalizeAutoRefreshConfig;
1821
+ getSizes(filter?: SizesFilter): Promise<ResponseModel<Size[]>>;
2428
1822
  /**
2429
- * Inyecta tokens desde storage externo (cookies/localStorage/etc)
2430
- * @param expiresAt - Timestamp en milisegundos
1823
+ * Obtiene el modelo de filtros disponibles para tallas.
2431
1824
  */
2432
- setTokensFromExternal(accessToken: string, refreshToken: string, expiresAt: number, rememberMe?: boolean): void;
1825
+ getSizesFilters(): Promise<ResponseModel<FilterGroupsModel>>;
2433
1826
  /**
2434
- * Obtiene los tokens actuales
1827
+ * Obtiene una talla por su ID.
2435
1828
  */
2436
- getTokens(): TokenData | null;
1829
+ getSizeById(id: number): Promise<ResponseModel<Size>>;
2437
1830
  /**
2438
- * Verifica si el usuario está autenticado
1831
+ * Crea una nueva talla.
2439
1832
  */
2440
- isAuthenticated(): boolean;
1833
+ createSize(request: SizeRequest): Promise<ResponseModel<Size>>;
2441
1834
  /**
2442
- * Verifica si la sesión está por expirar
1835
+ * Actualiza una talla existente.
2443
1836
  */
2444
- isSessionExpiringSoon(thresholdMinutes?: number): boolean;
1837
+ updateSize(id: number, request: SizeRequest): Promise<ResponseModel<Size>>;
2445
1838
  /**
2446
- * Obtiene el tiempo restante hasta la expiración en milisegundos
1839
+ * Elimina una talla.
2447
1840
  */
2448
- getTimeUntilExpiry(): number | null;
1841
+ deleteSize(id: number): Promise<ResponseModel<void>>;
1842
+ /**
1843
+ * Obtiene todos los blanks con filtros opcionales.
1844
+ */
1845
+ getBlanks(filter?: BlanksFilter): Promise<ResponseModel<Blank[]>>;
1846
+ /**
1847
+ * Obtiene el modelo de filtros disponibles para blanks.
1848
+ */
1849
+ getBlanksFilters(): Promise<ResponseModel<FilterGroupsModel>>;
1850
+ /**
1851
+ * Obtiene un blank por su ID.
1852
+ */
1853
+ getBlankById(id: number): Promise<ResponseModel<Blank>>;
1854
+ /**
1855
+ * Crea un nuevo blank.
1856
+ */
1857
+ createBlank(request: BlankRequest): Promise<ResponseModel<Blank>>;
1858
+ /**
1859
+ * Actualiza un blank existente.
1860
+ */
1861
+ updateBlank(id: number, request: BlankRequest): Promise<ResponseModel<Blank>>;
1862
+ /**
1863
+ * Alterna el estado activo de un blank.
1864
+ */
1865
+ toggleBlankStatus(id: number): Promise<ResponseModel<Blank>>;
1866
+ /**
1867
+ * Elimina un blank.
1868
+ */
1869
+ deleteBlank(id: number): Promise<ResponseModel<void>>;
2449
1870
  }
2450
1871
 
2451
1872
  declare function decrypt(encryptedBase64: string, secret: string, timestamp: string): string;
2452
1873
 
2453
- export { API, type AdminAuthentication, type AdminUser, type AreaCode, type AreaCodeRequest, type AreaCodesFilter, AuthInterceptor, type AuthInterceptorConfig, AuthService, type BlankProduct, type BlankProductRequest, type BlankProductsFilter, CatalogService, type ChangePasswordAdminRequest, type ChangePasswordRequest, type ChangePasswordUserRequest, type ConfirmEmailRequest, CryptoService, type DetailProductPOD, type DetailProductPODFilter, type DetailProductPODRequest, 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 GendersFilter, type HttpMethodType, type InterceptorContext, InventoryService, type InventoryStatus, type InventoryStatusRequest, type InventoryStatusesFilter, type License, type LicenseRequest, type LicensesFilter, 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 ProductBullet, type ProductBulletRequest, type ProductBulletsFilter, type ProductCategoriesFilter, type ProductCategory, type ProductCategoryRequest, type ProductImage, type ProductImageRequest, type ProductImagesFilter, type ProductKeyword, type ProductKeywordRequest, type ProductKeywordsFilter, type ProductPrice, type ProductPriceRequest, type ProductPricesFilter, ProductService, type ProductStatus, type ProductStatusRequest, type ProductStatusesFilter, type ProductType, type ProductTypeRequest, type ProductTypesFilter, type Provider, type ProviderRequest, type ProvidersFilter, type RefreshTokenRequest, type RefreshTokenResponse, type RequestConfig, type RequestInterceptor, type RequestOptions, type ResponseModel, type Role, type RoleRequest, type RolesFilter, type SendOtpRequest, type ServiceProperties, type Size, type SizeGroup, type SizeGroupRequest, type SizeGroupsFilter, type SizeRequest, type SizesFilter, type Studio, type StudioRequest, type StudiosFilter, 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 UserTypesFilter, type ValidateOtpRequest, type ValidateSessionRenewedResponse, type ValidateSessionResponse, decrypt };
1874
+ export { API, type AdminAuthentication, type AdminUser, type AreaCode, type AreaCodeRequest, type AreaCodeUserProfile, type AreaCodesFilter, AuthInterceptor, type AuthInterceptorConfig, AuthService, type Blank, type BlankRequest, type BlanksFilter, 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, UserService, type UserType, type UserTypeRequest, type UserTypeUserProfile, type UserTypesFilter, type ValidateOtpRequest, type ValidateSessionRenewedResponse, type ValidateSessionResponse, decrypt };