falconhub-apilibrary 1.3.1-dev.97 → 1.3.1-dev.99

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