@fiado/type-kit 3.164.0 → 3.166.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/bin/appContent/dtos/AppMessageDto.d.ts +16 -0
  2. package/bin/appContent/dtos/AppMessageDto.js +11 -0
  3. package/bin/appContent/dtos/CreateImageUploadUrlRequest.d.ts +10 -0
  4. package/bin/appContent/dtos/CreateImageUploadUrlRequest.js +30 -0
  5. package/bin/appContent/dtos/CreateImageUploadUrlResponse.d.ts +12 -0
  6. package/bin/appContent/dtos/CreateImageUploadUrlResponse.js +10 -0
  7. package/bin/appContent/dtos/CreateMessageRequest.d.ts +16 -0
  8. package/bin/appContent/dtos/CreateMessageRequest.js +65 -0
  9. package/bin/appContent/dtos/CreateServiceRequest.d.ts +13 -0
  10. package/bin/appContent/dtos/CreateServiceRequest.js +57 -0
  11. package/bin/appContent/dtos/ListAppMessagesResponse.d.ts +7 -0
  12. package/bin/appContent/dtos/ListAppMessagesResponse.js +9 -0
  13. package/bin/appContent/dtos/ListMessagesResponse.d.ts +7 -0
  14. package/bin/appContent/dtos/ListMessagesResponse.js +9 -0
  15. package/bin/appContent/dtos/ListServiceStatusResponse.d.ts +7 -0
  16. package/bin/appContent/dtos/ListServiceStatusResponse.js +9 -0
  17. package/bin/appContent/dtos/MessageDto.d.ts +24 -0
  18. package/bin/appContent/dtos/MessageDto.js +11 -0
  19. package/bin/appContent/dtos/ServiceStatusDto.d.ts +24 -0
  20. package/bin/appContent/dtos/ServiceStatusDto.js +12 -0
  21. package/bin/appContent/dtos/UpdateMessageRequest.d.ts +16 -0
  22. package/bin/appContent/dtos/UpdateMessageRequest.js +70 -0
  23. package/bin/appContent/dtos/UpdateServiceRequest.d.ts +13 -0
  24. package/bin/appContent/dtos/UpdateServiceRequest.js +58 -0
  25. package/bin/appContent/enums/MessageAudience.d.ts +9 -0
  26. package/bin/appContent/enums/MessageAudience.js +13 -0
  27. package/bin/appContent/index.d.ts +13 -0
  28. package/bin/appContent/index.js +31 -0
  29. package/bin/index.d.ts +1 -0
  30. package/bin/index.js +3 -2
  31. package/bin/remittance/dtos/RemittancePricing.d.ts +2 -0
  32. package/package.json +1 -1
  33. package/src/appContent/dtos/AppMessageDto.ts +16 -0
  34. package/src/appContent/dtos/CreateImageUploadUrlRequest.ts +17 -0
  35. package/src/appContent/dtos/CreateImageUploadUrlResponse.ts +12 -0
  36. package/src/appContent/dtos/CreateMessageRequest.ts +53 -0
  37. package/src/appContent/dtos/CreateServiceRequest.ts +36 -0
  38. package/src/appContent/dtos/ListAppMessagesResponse.ts +8 -0
  39. package/src/appContent/dtos/ListMessagesResponse.ts +8 -0
  40. package/src/appContent/dtos/ListServiceStatusResponse.ts +8 -0
  41. package/src/appContent/dtos/MessageDto.ts +25 -0
  42. package/src/appContent/dtos/ServiceStatusDto.ts +24 -0
  43. package/src/appContent/dtos/UpdateMessageRequest.ts +58 -0
  44. package/src/appContent/dtos/UpdateServiceRequest.ts +38 -0
  45. package/src/appContent/enums/MessageAudience.ts +9 -0
  46. package/src/appContent/index.ts +16 -0
  47. package/src/index.ts +1 -0
  48. package/src/remittance/dtos/RemittancePricing.ts +2 -0
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Mensaje/modal tal como lo consume la App (login y post-login).
3
+ * Response DTO — sin decoradores. Shape "delgado": NO expone audience/scopes/active
4
+ * (el backend ya filtró); la App recibe ambos idiomas y elige según su locale.
5
+ */
6
+ export declare class AppMessageDto {
7
+ id: string;
8
+ titleEn: string;
9
+ titleEs: string;
10
+ descriptionEn?: string;
11
+ descriptionEs?: string;
12
+ /** URL de CloudFront de la imagen (opcional: modal solo-texto). */
13
+ imageUrl?: string;
14
+ /** Orden de despliegue (asc). */
15
+ order: number;
16
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AppMessageDto = void 0;
4
+ /**
5
+ * Mensaje/modal tal como lo consume la App (login y post-login).
6
+ * Response DTO — sin decoradores. Shape "delgado": NO expone audience/scopes/active
7
+ * (el backend ya filtró); la App recibe ambos idiomas y elige según su locale.
8
+ */
9
+ class AppMessageDto {
10
+ }
11
+ exports.AppMessageDto = AppMessageDto;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Solicita al backoffice una URL prefirmada de S3 para subir la imagen de un modal.
3
+ * El backend devuelve la URL de subida (PUT directo a S3) y la URL de CloudFront final.
4
+ */
5
+ export declare class CreateImageUploadUrlRequest {
6
+ /** MIME type del archivo, ej. "image/png", "image/jpeg". */
7
+ contentType: string;
8
+ /** Nombre de archivo sugerido (opcional; el backend genera la key). */
9
+ fileName?: string;
10
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.CreateImageUploadUrlRequest = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ /**
15
+ * Solicita al backoffice una URL prefirmada de S3 para subir la imagen de un modal.
16
+ * El backend devuelve la URL de subida (PUT directo a S3) y la URL de CloudFront final.
17
+ */
18
+ class CreateImageUploadUrlRequest {
19
+ }
20
+ exports.CreateImageUploadUrlRequest = CreateImageUploadUrlRequest;
21
+ __decorate([
22
+ (0, class_validator_1.IsString)(),
23
+ (0, class_validator_1.IsNotEmpty)(),
24
+ __metadata("design:type", String)
25
+ ], CreateImageUploadUrlRequest.prototype, "contentType", void 0);
26
+ __decorate([
27
+ (0, class_validator_1.IsOptional)(),
28
+ (0, class_validator_1.IsString)(),
29
+ __metadata("design:type", String)
30
+ ], CreateImageUploadUrlRequest.prototype, "fileName", void 0);
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Respuesta con la URL prefirmada de subida a S3 y la URL pública (CloudFront) resultante.
3
+ * El backoffice sube la imagen con PUT a `uploadUrl` y luego guarda `imageUrl` en el mensaje.
4
+ */
5
+ export declare class CreateImageUploadUrlResponse {
6
+ /** URL prefirmada de S3 para el PUT de la imagen (expira). */
7
+ uploadUrl: string;
8
+ /** URL pública de CloudFront que quedará en `imageUrl` del mensaje. */
9
+ imageUrl: string;
10
+ /** Key del objeto en S3. */
11
+ key: string;
12
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CreateImageUploadUrlResponse = void 0;
4
+ /**
5
+ * Respuesta con la URL prefirmada de subida a S3 y la URL pública (CloudFront) resultante.
6
+ * El backoffice sube la imagen con PUT a `uploadUrl` y luego guarda `imageUrl` en el mensaje.
7
+ */
8
+ class CreateImageUploadUrlResponse {
9
+ }
10
+ exports.CreateImageUploadUrlResponse = CreateImageUploadUrlResponse;
@@ -0,0 +1,16 @@
1
+ import { MessageAudience } from '../enums/MessageAudience';
2
+ /**
3
+ * Alta de un mensaje/modal desde backoffice.
4
+ * `scopes` es obligatorio y no-vacío SOLO cuando audience = AUTHENTICATED (vacío = a nadie).
5
+ */
6
+ export declare class CreateMessageRequest {
7
+ audience: MessageAudience;
8
+ scopes?: string[];
9
+ titleEn: string;
10
+ titleEs: string;
11
+ descriptionEn?: string;
12
+ descriptionEs?: string;
13
+ imageUrl?: string;
14
+ active: boolean;
15
+ order: number;
16
+ }
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.CreateMessageRequest = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const MessageAudience_1 = require("../enums/MessageAudience");
15
+ /**
16
+ * Alta de un mensaje/modal desde backoffice.
17
+ * `scopes` es obligatorio y no-vacío SOLO cuando audience = AUTHENTICATED (vacío = a nadie).
18
+ */
19
+ class CreateMessageRequest {
20
+ }
21
+ exports.CreateMessageRequest = CreateMessageRequest;
22
+ __decorate([
23
+ (0, class_validator_1.IsEnum)(MessageAudience_1.MessageAudience),
24
+ __metadata("design:type", String)
25
+ ], CreateMessageRequest.prototype, "audience", void 0);
26
+ __decorate([
27
+ (0, class_validator_1.ValidateIf)((o) => o.audience === MessageAudience_1.MessageAudience.AUTHENTICATED),
28
+ (0, class_validator_1.IsArray)(),
29
+ (0, class_validator_1.ArrayNotEmpty)(),
30
+ (0, class_validator_1.IsString)({ each: true }),
31
+ __metadata("design:type", Array)
32
+ ], CreateMessageRequest.prototype, "scopes", void 0);
33
+ __decorate([
34
+ (0, class_validator_1.IsString)(),
35
+ (0, class_validator_1.IsNotEmpty)(),
36
+ __metadata("design:type", String)
37
+ ], CreateMessageRequest.prototype, "titleEn", void 0);
38
+ __decorate([
39
+ (0, class_validator_1.IsString)(),
40
+ (0, class_validator_1.IsNotEmpty)(),
41
+ __metadata("design:type", String)
42
+ ], CreateMessageRequest.prototype, "titleEs", void 0);
43
+ __decorate([
44
+ (0, class_validator_1.IsOptional)(),
45
+ (0, class_validator_1.IsString)(),
46
+ __metadata("design:type", String)
47
+ ], CreateMessageRequest.prototype, "descriptionEn", void 0);
48
+ __decorate([
49
+ (0, class_validator_1.IsOptional)(),
50
+ (0, class_validator_1.IsString)(),
51
+ __metadata("design:type", String)
52
+ ], CreateMessageRequest.prototype, "descriptionEs", void 0);
53
+ __decorate([
54
+ (0, class_validator_1.IsOptional)(),
55
+ (0, class_validator_1.IsString)(),
56
+ __metadata("design:type", String)
57
+ ], CreateMessageRequest.prototype, "imageUrl", void 0);
58
+ __decorate([
59
+ (0, class_validator_1.IsBoolean)(),
60
+ __metadata("design:type", Boolean)
61
+ ], CreateMessageRequest.prototype, "active", void 0);
62
+ __decorate([
63
+ (0, class_validator_1.IsInt)(),
64
+ __metadata("design:type", Number)
65
+ ], CreateMessageRequest.prototype, "order", void 0);
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Alta de un servicio (#3) desde backoffice. `serviceKey` es un slug libre acordado con la App.
3
+ */
4
+ export declare class CreateServiceRequest {
5
+ serviceKey: string;
6
+ titleEn: string;
7
+ titleEs: string;
8
+ icon: string;
9
+ active: boolean;
10
+ inactiveMessage?: string;
11
+ inactiveIcon?: string;
12
+ order: number;
13
+ }
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.CreateServiceRequest = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ /**
15
+ * Alta de un servicio (#3) desde backoffice. `serviceKey` es un slug libre acordado con la App.
16
+ */
17
+ class CreateServiceRequest {
18
+ }
19
+ exports.CreateServiceRequest = CreateServiceRequest;
20
+ __decorate([
21
+ (0, class_validator_1.IsString)(),
22
+ (0, class_validator_1.IsNotEmpty)(),
23
+ __metadata("design:type", String)
24
+ ], CreateServiceRequest.prototype, "serviceKey", void 0);
25
+ __decorate([
26
+ (0, class_validator_1.IsString)(),
27
+ (0, class_validator_1.IsNotEmpty)(),
28
+ __metadata("design:type", String)
29
+ ], CreateServiceRequest.prototype, "titleEn", void 0);
30
+ __decorate([
31
+ (0, class_validator_1.IsString)(),
32
+ (0, class_validator_1.IsNotEmpty)(),
33
+ __metadata("design:type", String)
34
+ ], CreateServiceRequest.prototype, "titleEs", void 0);
35
+ __decorate([
36
+ (0, class_validator_1.IsString)(),
37
+ (0, class_validator_1.IsNotEmpty)(),
38
+ __metadata("design:type", String)
39
+ ], CreateServiceRequest.prototype, "icon", void 0);
40
+ __decorate([
41
+ (0, class_validator_1.IsBoolean)(),
42
+ __metadata("design:type", Boolean)
43
+ ], CreateServiceRequest.prototype, "active", void 0);
44
+ __decorate([
45
+ (0, class_validator_1.IsOptional)(),
46
+ (0, class_validator_1.IsString)(),
47
+ __metadata("design:type", String)
48
+ ], CreateServiceRequest.prototype, "inactiveMessage", void 0);
49
+ __decorate([
50
+ (0, class_validator_1.IsOptional)(),
51
+ (0, class_validator_1.IsString)(),
52
+ __metadata("design:type", String)
53
+ ], CreateServiceRequest.prototype, "inactiveIcon", void 0);
54
+ __decorate([
55
+ (0, class_validator_1.IsInt)(),
56
+ __metadata("design:type", Number)
57
+ ], CreateServiceRequest.prototype, "order", void 0);
@@ -0,0 +1,7 @@
1
+ import { AppMessageDto } from './AppMessageDto';
2
+ /**
3
+ * Respuesta de los endpoints de mensajes para la App (#1 login sin token y #2 con token).
4
+ */
5
+ export declare class ListAppMessagesResponse {
6
+ messages: AppMessageDto[];
7
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ListAppMessagesResponse = void 0;
4
+ /**
5
+ * Respuesta de los endpoints de mensajes para la App (#1 login sin token y #2 con token).
6
+ */
7
+ class ListAppMessagesResponse {
8
+ }
9
+ exports.ListAppMessagesResponse = ListAppMessagesResponse;
@@ -0,0 +1,7 @@
1
+ import { MessageDto } from './MessageDto';
2
+ /**
3
+ * Respuesta del listado de mensajes para backoffice (shape completo).
4
+ */
5
+ export declare class ListMessagesResponse {
6
+ messages: MessageDto[];
7
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ListMessagesResponse = void 0;
4
+ /**
5
+ * Respuesta del listado de mensajes para backoffice (shape completo).
6
+ */
7
+ class ListMessagesResponse {
8
+ }
9
+ exports.ListMessagesResponse = ListMessagesResponse;
@@ -0,0 +1,7 @@
1
+ import { ServiceStatusDto } from './ServiceStatusDto';
2
+ /**
3
+ * Respuesta del endpoint de estado de servicios (#3), tanto App (anónimo) como backoffice.
4
+ */
5
+ export declare class ListServiceStatusResponse {
6
+ services: ServiceStatusDto[];
7
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ListServiceStatusResponse = void 0;
4
+ /**
5
+ * Respuesta del endpoint de estado de servicios (#3), tanto App (anónimo) como backoffice.
6
+ */
7
+ class ListServiceStatusResponse {
8
+ }
9
+ exports.ListServiceStatusResponse = ListServiceStatusResponse;
@@ -0,0 +1,24 @@
1
+ import { MessageAudience } from '../enums/MessageAudience';
2
+ /**
3
+ * Mensaje/modal completo para administración desde backoffice.
4
+ * Response DTO — sin decoradores. Incluye los campos de control (audience, scopes,
5
+ * active) y auditoría que la App NO ve.
6
+ */
7
+ export declare class MessageDto {
8
+ id: string;
9
+ audience: MessageAudience;
10
+ /** Scopes objetivo (solo aplica a AUTHENTICATED). Vacío = a nadie. */
11
+ scopes: string[];
12
+ titleEn: string;
13
+ titleEs: string;
14
+ descriptionEn?: string;
15
+ descriptionEs?: string;
16
+ /** URL de CloudFront de la imagen. */
17
+ imageUrl?: string;
18
+ active: boolean;
19
+ order: number;
20
+ /** epoch ms */
21
+ createdAt: number;
22
+ /** epoch ms */
23
+ updatedAt: number;
24
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MessageDto = void 0;
4
+ /**
5
+ * Mensaje/modal completo para administración desde backoffice.
6
+ * Response DTO — sin decoradores. Incluye los campos de control (audience, scopes,
7
+ * active) y auditoría que la App NO ve.
8
+ */
9
+ class MessageDto {
10
+ }
11
+ exports.MessageDto = MessageDto;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Estado de un servicio (ej. STP, MetaMap) para que la App informe disponibilidad.
3
+ * Response DTO — sin decoradores. La App muestra el estado "caído" (inactiveMessage +
4
+ * inactiveIcon) cuando `active = false`. Se usa tanto en el endpoint público como en
5
+ * backoffice (updatedAt/updatedBy solo se llenan para backoffice).
6
+ */
7
+ export declare class ServiceStatusDto {
8
+ /** Slug estable acordado con la App (ej. "STP", "METAMAP"). */
9
+ serviceKey: string;
10
+ titleEn: string;
11
+ titleEs: string;
12
+ /** Icono cuando el servicio está activo. */
13
+ icon: string;
14
+ active: boolean;
15
+ /** Mensaje a mostrar cuando active = false. */
16
+ inactiveMessage?: string;
17
+ /** Icono a mostrar cuando active = false. */
18
+ inactiveIcon?: string;
19
+ order: number;
20
+ /** epoch ms (solo backoffice) */
21
+ updatedAt?: number;
22
+ /** actor que hizo el último cambio (solo backoffice) */
23
+ updatedBy?: string;
24
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ServiceStatusDto = void 0;
4
+ /**
5
+ * Estado de un servicio (ej. STP, MetaMap) para que la App informe disponibilidad.
6
+ * Response DTO — sin decoradores. La App muestra el estado "caído" (inactiveMessage +
7
+ * inactiveIcon) cuando `active = false`. Se usa tanto en el endpoint público como en
8
+ * backoffice (updatedAt/updatedBy solo se llenan para backoffice).
9
+ */
10
+ class ServiceStatusDto {
11
+ }
12
+ exports.ServiceStatusDto = ServiceStatusDto;
@@ -0,0 +1,16 @@
1
+ import { MessageAudience } from '../enums/MessageAudience';
2
+ /**
3
+ * Edición parcial de un mensaje/modal desde backoffice (incluye el toggle `active`).
4
+ * Todos los campos son opcionales; solo se actualizan los presentes.
5
+ */
6
+ export declare class UpdateMessageRequest {
7
+ audience?: MessageAudience;
8
+ scopes?: string[];
9
+ titleEn?: string;
10
+ titleEs?: string;
11
+ descriptionEn?: string;
12
+ descriptionEs?: string;
13
+ imageUrl?: string;
14
+ active?: boolean;
15
+ order?: number;
16
+ }
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.UpdateMessageRequest = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const MessageAudience_1 = require("../enums/MessageAudience");
15
+ /**
16
+ * Edición parcial de un mensaje/modal desde backoffice (incluye el toggle `active`).
17
+ * Todos los campos son opcionales; solo se actualizan los presentes.
18
+ */
19
+ class UpdateMessageRequest {
20
+ }
21
+ exports.UpdateMessageRequest = UpdateMessageRequest;
22
+ __decorate([
23
+ (0, class_validator_1.IsOptional)(),
24
+ (0, class_validator_1.IsEnum)(MessageAudience_1.MessageAudience),
25
+ __metadata("design:type", String)
26
+ ], UpdateMessageRequest.prototype, "audience", void 0);
27
+ __decorate([
28
+ (0, class_validator_1.ValidateIf)((o) => o.audience === MessageAudience_1.MessageAudience.AUTHENTICATED),
29
+ (0, class_validator_1.IsArray)(),
30
+ (0, class_validator_1.ArrayNotEmpty)(),
31
+ (0, class_validator_1.IsString)({ each: true }),
32
+ __metadata("design:type", Array)
33
+ ], UpdateMessageRequest.prototype, "scopes", void 0);
34
+ __decorate([
35
+ (0, class_validator_1.IsOptional)(),
36
+ (0, class_validator_1.IsString)(),
37
+ (0, class_validator_1.IsNotEmpty)(),
38
+ __metadata("design:type", String)
39
+ ], UpdateMessageRequest.prototype, "titleEn", void 0);
40
+ __decorate([
41
+ (0, class_validator_1.IsOptional)(),
42
+ (0, class_validator_1.IsString)(),
43
+ (0, class_validator_1.IsNotEmpty)(),
44
+ __metadata("design:type", String)
45
+ ], UpdateMessageRequest.prototype, "titleEs", void 0);
46
+ __decorate([
47
+ (0, class_validator_1.IsOptional)(),
48
+ (0, class_validator_1.IsString)(),
49
+ __metadata("design:type", String)
50
+ ], UpdateMessageRequest.prototype, "descriptionEn", void 0);
51
+ __decorate([
52
+ (0, class_validator_1.IsOptional)(),
53
+ (0, class_validator_1.IsString)(),
54
+ __metadata("design:type", String)
55
+ ], UpdateMessageRequest.prototype, "descriptionEs", void 0);
56
+ __decorate([
57
+ (0, class_validator_1.IsOptional)(),
58
+ (0, class_validator_1.IsString)(),
59
+ __metadata("design:type", String)
60
+ ], UpdateMessageRequest.prototype, "imageUrl", void 0);
61
+ __decorate([
62
+ (0, class_validator_1.IsOptional)(),
63
+ (0, class_validator_1.IsBoolean)(),
64
+ __metadata("design:type", Boolean)
65
+ ], UpdateMessageRequest.prototype, "active", void 0);
66
+ __decorate([
67
+ (0, class_validator_1.IsOptional)(),
68
+ (0, class_validator_1.IsInt)(),
69
+ __metadata("design:type", Number)
70
+ ], UpdateMessageRequest.prototype, "order", void 0);
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Edición parcial de un servicio (#3) desde backoffice (incluye el toggle `active`).
3
+ * El `serviceKey` va en la ruta, no en el body. Todos los campos son opcionales.
4
+ */
5
+ export declare class UpdateServiceRequest {
6
+ titleEn?: string;
7
+ titleEs?: string;
8
+ icon?: string;
9
+ active?: boolean;
10
+ inactiveMessage?: string;
11
+ inactiveIcon?: string;
12
+ order?: number;
13
+ }
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.UpdateServiceRequest = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ /**
15
+ * Edición parcial de un servicio (#3) desde backoffice (incluye el toggle `active`).
16
+ * El `serviceKey` va en la ruta, no en el body. Todos los campos son opcionales.
17
+ */
18
+ class UpdateServiceRequest {
19
+ }
20
+ exports.UpdateServiceRequest = UpdateServiceRequest;
21
+ __decorate([
22
+ (0, class_validator_1.IsOptional)(),
23
+ (0, class_validator_1.IsString)(),
24
+ (0, class_validator_1.IsNotEmpty)(),
25
+ __metadata("design:type", String)
26
+ ], UpdateServiceRequest.prototype, "titleEn", void 0);
27
+ __decorate([
28
+ (0, class_validator_1.IsOptional)(),
29
+ (0, class_validator_1.IsString)(),
30
+ (0, class_validator_1.IsNotEmpty)(),
31
+ __metadata("design:type", String)
32
+ ], UpdateServiceRequest.prototype, "titleEs", void 0);
33
+ __decorate([
34
+ (0, class_validator_1.IsOptional)(),
35
+ (0, class_validator_1.IsString)(),
36
+ (0, class_validator_1.IsNotEmpty)(),
37
+ __metadata("design:type", String)
38
+ ], UpdateServiceRequest.prototype, "icon", void 0);
39
+ __decorate([
40
+ (0, class_validator_1.IsOptional)(),
41
+ (0, class_validator_1.IsBoolean)(),
42
+ __metadata("design:type", Boolean)
43
+ ], UpdateServiceRequest.prototype, "active", void 0);
44
+ __decorate([
45
+ (0, class_validator_1.IsOptional)(),
46
+ (0, class_validator_1.IsString)(),
47
+ __metadata("design:type", String)
48
+ ], UpdateServiceRequest.prototype, "inactiveMessage", void 0);
49
+ __decorate([
50
+ (0, class_validator_1.IsOptional)(),
51
+ (0, class_validator_1.IsString)(),
52
+ __metadata("design:type", String)
53
+ ], UpdateServiceRequest.prototype, "inactiveIcon", void 0);
54
+ __decorate([
55
+ (0, class_validator_1.IsOptional)(),
56
+ (0, class_validator_1.IsInt)(),
57
+ __metadata("design:type", Number)
58
+ ], UpdateServiceRequest.prototype, "order", void 0);
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Audiencia de un mensaje de la App.
3
+ * - PUBLIC: modal de login, se sirve SIN token.
4
+ * - AUTHENTICATED: modal post-login, se filtra por los scopes del token.
5
+ */
6
+ export declare enum MessageAudience {
7
+ PUBLIC = "PUBLIC",
8
+ AUTHENTICATED = "AUTHENTICATED"
9
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MessageAudience = void 0;
4
+ /**
5
+ * Audiencia de un mensaje de la App.
6
+ * - PUBLIC: modal de login, se sirve SIN token.
7
+ * - AUTHENTICATED: modal post-login, se filtra por los scopes del token.
8
+ */
9
+ var MessageAudience;
10
+ (function (MessageAudience) {
11
+ MessageAudience["PUBLIC"] = "PUBLIC";
12
+ MessageAudience["AUTHENTICATED"] = "AUTHENTICATED";
13
+ })(MessageAudience || (exports.MessageAudience = MessageAudience = {}));
@@ -0,0 +1,13 @@
1
+ export * from './dtos/AppMessageDto';
2
+ export * from './dtos/MessageDto';
3
+ export * from './dtos/ServiceStatusDto';
4
+ export * from './dtos/ListAppMessagesResponse';
5
+ export * from './dtos/ListServiceStatusResponse';
6
+ export * from './dtos/ListMessagesResponse';
7
+ export * from './dtos/CreateMessageRequest';
8
+ export * from './dtos/UpdateMessageRequest';
9
+ export * from './dtos/CreateServiceRequest';
10
+ export * from './dtos/UpdateServiceRequest';
11
+ export * from './dtos/CreateImageUploadUrlRequest';
12
+ export * from './dtos/CreateImageUploadUrlResponse';
13
+ export * from './enums/MessageAudience';
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ //dtos
18
+ __exportStar(require("./dtos/AppMessageDto"), exports);
19
+ __exportStar(require("./dtos/MessageDto"), exports);
20
+ __exportStar(require("./dtos/ServiceStatusDto"), exports);
21
+ __exportStar(require("./dtos/ListAppMessagesResponse"), exports);
22
+ __exportStar(require("./dtos/ListServiceStatusResponse"), exports);
23
+ __exportStar(require("./dtos/ListMessagesResponse"), exports);
24
+ __exportStar(require("./dtos/CreateMessageRequest"), exports);
25
+ __exportStar(require("./dtos/UpdateMessageRequest"), exports);
26
+ __exportStar(require("./dtos/CreateServiceRequest"), exports);
27
+ __exportStar(require("./dtos/UpdateServiceRequest"), exports);
28
+ __exportStar(require("./dtos/CreateImageUploadUrlRequest"), exports);
29
+ __exportStar(require("./dtos/CreateImageUploadUrlResponse"), exports);
30
+ //enums
31
+ __exportStar(require("./enums/MessageAudience"), exports);
package/bin/index.d.ts CHANGED
@@ -6,6 +6,7 @@ export * as Address from './address';
6
6
  export * as Places from './places';
7
7
  export * as Offices from './offices';
8
8
  export * as App from './app';
9
+ export * as AppContent from './appContent';
9
10
  export * as Authentication from './authentication';
10
11
  export * as Card from './card';
11
12
  export * as Country from './country';
package/bin/index.js CHANGED
@@ -36,8 +36,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
36
36
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.AppSelectionData = exports.Device = exports.Observations = exports.IssuanceBusiness = exports.Blacklist = exports.CentralPayments = exports.Helpdesk = exports.FiadoApiResponse = exports.Auth = exports.LegalDocumentsBusiness = exports.Role = exports.STPAccount = exports.RiskProfile = exports.FraudPreventionEngine = exports.BBVARst = exports.Stp = exports.BenefitCenter = exports.BankAccount = exports.P2pContact = exports.CreditContract = exports.Contract = exports.ProductCatalog = exports.ContactInfo = exports.TransactionAnalytics = exports.Transaction = exports.TransactionProcessor = exports.GenericMessage = exports.EventBridgeMessage = exports.SessionActivity = exports.NotificationMessages = exports.ServicePayment = exports.Header = exports.Identity = exports.UserTags = exports.Group = exports.File = exports.ExchangeRate = exports.Directory = exports.Currency = exports.Country = exports.Card = exports.Authentication = exports.App = exports.Offices = exports.Places = exports.Address = exports.Beneficiary = exports.Activity = exports.Account = exports.Crypto = void 0;
40
- exports.EmailVerification = exports.NetworkConnector = exports.TotpSecurity = exports.WalletFunding = exports.Remittance = exports.PlatformRbac = exports.CognitoBackofficeConnector = exports.TwilioConnector = exports.MessagesConnector = exports.Mdm = exports.MilestoneBusiness = exports.CirculoCredito = exports.CreditStatements = exports.Sentry = exports.AiEngine = exports.Funnel = exports.TeamsConnector = exports.PlatformErrorEvents = exports.CustomerFile = exports.CreditBackoffice = exports.CreditDashboard = exports.CreditEngine = exports.Credit = exports.ComissionBusiness = exports.ReferralBusiness = exports.ZendeskMessaging = exports.NotificationWS = exports.Event = exports.PayrollBusiness = exports.Cnbv = exports.DirectorySetting = exports.InvoiceCollector = exports.Collector = exports.Pricelist = exports.Company = exports.Services = exports.AccountIssuanceBusiness = void 0;
39
+ exports.Device = exports.Observations = exports.IssuanceBusiness = exports.Blacklist = exports.CentralPayments = exports.Helpdesk = exports.FiadoApiResponse = exports.Auth = exports.LegalDocumentsBusiness = exports.Role = exports.STPAccount = exports.RiskProfile = exports.FraudPreventionEngine = exports.BBVARst = exports.Stp = exports.BenefitCenter = exports.BankAccount = exports.P2pContact = exports.CreditContract = exports.Contract = exports.ProductCatalog = exports.ContactInfo = exports.TransactionAnalytics = exports.Transaction = exports.TransactionProcessor = exports.GenericMessage = exports.EventBridgeMessage = exports.SessionActivity = exports.NotificationMessages = exports.ServicePayment = exports.Header = exports.Identity = exports.UserTags = exports.Group = exports.File = exports.ExchangeRate = exports.Directory = exports.Currency = exports.Country = exports.Card = exports.Authentication = exports.AppContent = exports.App = exports.Offices = exports.Places = exports.Address = exports.Beneficiary = exports.Activity = exports.Account = exports.Crypto = void 0;
40
+ exports.EmailVerification = exports.NetworkConnector = exports.TotpSecurity = exports.WalletFunding = exports.Remittance = exports.PlatformRbac = exports.CognitoBackofficeConnector = exports.TwilioConnector = exports.MessagesConnector = exports.Mdm = exports.MilestoneBusiness = exports.CirculoCredito = exports.CreditStatements = exports.Sentry = exports.AiEngine = exports.Funnel = exports.TeamsConnector = exports.PlatformErrorEvents = exports.CustomerFile = exports.CreditBackoffice = exports.CreditDashboard = exports.CreditEngine = exports.Credit = exports.ComissionBusiness = exports.ReferralBusiness = exports.ZendeskMessaging = exports.NotificationWS = exports.Event = exports.PayrollBusiness = exports.Cnbv = exports.DirectorySetting = exports.InvoiceCollector = exports.Collector = exports.Pricelist = exports.Company = exports.Services = exports.AccountIssuanceBusiness = exports.AppSelectionData = void 0;
41
41
  exports.Crypto = __importStar(require("./crypto"));
42
42
  exports.Account = __importStar(require("./account"));
43
43
  exports.Activity = __importStar(require("./activity"));
@@ -46,6 +46,7 @@ exports.Address = __importStar(require("./address"));
46
46
  exports.Places = __importStar(require("./places"));
47
47
  exports.Offices = __importStar(require("./offices"));
48
48
  exports.App = __importStar(require("./app"));
49
+ exports.AppContent = __importStar(require("./appContent"));
49
50
  exports.Authentication = __importStar(require("./authentication"));
50
51
  exports.Card = __importStar(require("./card"));
51
52
  exports.Country = __importStar(require("./country"));
@@ -82,6 +82,8 @@ export declare class SimulatePricingResponse {
82
82
  receives: number;
83
83
  /** amountUSD + serviceFee (el stateFee lo calcula UNIR; prod US = 0). */
84
84
  totalToPay: number;
85
+ /** Revenue de Fiado en USD = serviceFee + margen FX (amountUSD × markupBps/10000; negativo si markup negativo = subsidio). */
86
+ revenueUsd: number;
85
87
  /** ISO del quote. */
86
88
  asOf: string;
87
89
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiado/type-kit",
3
- "version": "3.164.0",
3
+ "version": "3.166.0",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "types": "bin/index.d.ts",
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Mensaje/modal tal como lo consume la App (login y post-login).
3
+ * Response DTO — sin decoradores. Shape "delgado": NO expone audience/scopes/active
4
+ * (el backend ya filtró); la App recibe ambos idiomas y elige según su locale.
5
+ */
6
+ export class AppMessageDto {
7
+ id: string;
8
+ titleEn: string;
9
+ titleEs: string;
10
+ descriptionEn?: string;
11
+ descriptionEs?: string;
12
+ /** URL de CloudFront de la imagen (opcional: modal solo-texto). */
13
+ imageUrl?: string;
14
+ /** Orden de despliegue (asc). */
15
+ order: number;
16
+ }
@@ -0,0 +1,17 @@
1
+ import { IsNotEmpty, IsOptional, IsString } from 'class-validator';
2
+
3
+ /**
4
+ * Solicita al backoffice una URL prefirmada de S3 para subir la imagen de un modal.
5
+ * El backend devuelve la URL de subida (PUT directo a S3) y la URL de CloudFront final.
6
+ */
7
+ export class CreateImageUploadUrlRequest {
8
+ /** MIME type del archivo, ej. "image/png", "image/jpeg". */
9
+ @IsString()
10
+ @IsNotEmpty()
11
+ contentType: string;
12
+
13
+ /** Nombre de archivo sugerido (opcional; el backend genera la key). */
14
+ @IsOptional()
15
+ @IsString()
16
+ fileName?: string;
17
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Respuesta con la URL prefirmada de subida a S3 y la URL pública (CloudFront) resultante.
3
+ * El backoffice sube la imagen con PUT a `uploadUrl` y luego guarda `imageUrl` en el mensaje.
4
+ */
5
+ export class CreateImageUploadUrlResponse {
6
+ /** URL prefirmada de S3 para el PUT de la imagen (expira). */
7
+ uploadUrl: string;
8
+ /** URL pública de CloudFront que quedará en `imageUrl` del mensaje. */
9
+ imageUrl: string;
10
+ /** Key del objeto en S3. */
11
+ key: string;
12
+ }
@@ -0,0 +1,53 @@
1
+ import {
2
+ ArrayNotEmpty,
3
+ IsArray,
4
+ IsBoolean,
5
+ IsEnum,
6
+ IsInt,
7
+ IsNotEmpty,
8
+ IsOptional,
9
+ IsString,
10
+ ValidateIf,
11
+ } from 'class-validator';
12
+ import { MessageAudience } from '../enums/MessageAudience';
13
+
14
+ /**
15
+ * Alta de un mensaje/modal desde backoffice.
16
+ * `scopes` es obligatorio y no-vacío SOLO cuando audience = AUTHENTICATED (vacío = a nadie).
17
+ */
18
+ export class CreateMessageRequest {
19
+ @IsEnum(MessageAudience)
20
+ audience: MessageAudience;
21
+
22
+ @ValidateIf((o) => o.audience === MessageAudience.AUTHENTICATED)
23
+ @IsArray()
24
+ @ArrayNotEmpty()
25
+ @IsString({ each: true })
26
+ scopes?: string[];
27
+
28
+ @IsString()
29
+ @IsNotEmpty()
30
+ titleEn: string;
31
+
32
+ @IsString()
33
+ @IsNotEmpty()
34
+ titleEs: string;
35
+
36
+ @IsOptional()
37
+ @IsString()
38
+ descriptionEn?: string;
39
+
40
+ @IsOptional()
41
+ @IsString()
42
+ descriptionEs?: string;
43
+
44
+ @IsOptional()
45
+ @IsString()
46
+ imageUrl?: string;
47
+
48
+ @IsBoolean()
49
+ active: boolean;
50
+
51
+ @IsInt()
52
+ order: number;
53
+ }
@@ -0,0 +1,36 @@
1
+ import { IsBoolean, IsInt, IsNotEmpty, IsOptional, IsString } from 'class-validator';
2
+
3
+ /**
4
+ * Alta de un servicio (#3) desde backoffice. `serviceKey` es un slug libre acordado con la App.
5
+ */
6
+ export class CreateServiceRequest {
7
+ @IsString()
8
+ @IsNotEmpty()
9
+ serviceKey: string;
10
+
11
+ @IsString()
12
+ @IsNotEmpty()
13
+ titleEn: string;
14
+
15
+ @IsString()
16
+ @IsNotEmpty()
17
+ titleEs: string;
18
+
19
+ @IsString()
20
+ @IsNotEmpty()
21
+ icon: string;
22
+
23
+ @IsBoolean()
24
+ active: boolean;
25
+
26
+ @IsOptional()
27
+ @IsString()
28
+ inactiveMessage?: string;
29
+
30
+ @IsOptional()
31
+ @IsString()
32
+ inactiveIcon?: string;
33
+
34
+ @IsInt()
35
+ order: number;
36
+ }
@@ -0,0 +1,8 @@
1
+ import { AppMessageDto } from './AppMessageDto';
2
+
3
+ /**
4
+ * Respuesta de los endpoints de mensajes para la App (#1 login sin token y #2 con token).
5
+ */
6
+ export class ListAppMessagesResponse {
7
+ messages: AppMessageDto[];
8
+ }
@@ -0,0 +1,8 @@
1
+ import { MessageDto } from './MessageDto';
2
+
3
+ /**
4
+ * Respuesta del listado de mensajes para backoffice (shape completo).
5
+ */
6
+ export class ListMessagesResponse {
7
+ messages: MessageDto[];
8
+ }
@@ -0,0 +1,8 @@
1
+ import { ServiceStatusDto } from './ServiceStatusDto';
2
+
3
+ /**
4
+ * Respuesta del endpoint de estado de servicios (#3), tanto App (anónimo) como backoffice.
5
+ */
6
+ export class ListServiceStatusResponse {
7
+ services: ServiceStatusDto[];
8
+ }
@@ -0,0 +1,25 @@
1
+ import { MessageAudience } from '../enums/MessageAudience';
2
+
3
+ /**
4
+ * Mensaje/modal completo para administración desde backoffice.
5
+ * Response DTO — sin decoradores. Incluye los campos de control (audience, scopes,
6
+ * active) y auditoría que la App NO ve.
7
+ */
8
+ export class MessageDto {
9
+ id: string;
10
+ audience: MessageAudience;
11
+ /** Scopes objetivo (solo aplica a AUTHENTICATED). Vacío = a nadie. */
12
+ scopes: string[];
13
+ titleEn: string;
14
+ titleEs: string;
15
+ descriptionEn?: string;
16
+ descriptionEs?: string;
17
+ /** URL de CloudFront de la imagen. */
18
+ imageUrl?: string;
19
+ active: boolean;
20
+ order: number;
21
+ /** epoch ms */
22
+ createdAt: number;
23
+ /** epoch ms */
24
+ updatedAt: number;
25
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Estado de un servicio (ej. STP, MetaMap) para que la App informe disponibilidad.
3
+ * Response DTO — sin decoradores. La App muestra el estado "caído" (inactiveMessage +
4
+ * inactiveIcon) cuando `active = false`. Se usa tanto en el endpoint público como en
5
+ * backoffice (updatedAt/updatedBy solo se llenan para backoffice).
6
+ */
7
+ export class ServiceStatusDto {
8
+ /** Slug estable acordado con la App (ej. "STP", "METAMAP"). */
9
+ serviceKey: string;
10
+ titleEn: string;
11
+ titleEs: string;
12
+ /** Icono cuando el servicio está activo. */
13
+ icon: string;
14
+ active: boolean;
15
+ /** Mensaje a mostrar cuando active = false. */
16
+ inactiveMessage?: string;
17
+ /** Icono a mostrar cuando active = false. */
18
+ inactiveIcon?: string;
19
+ order: number;
20
+ /** epoch ms (solo backoffice) */
21
+ updatedAt?: number;
22
+ /** actor que hizo el último cambio (solo backoffice) */
23
+ updatedBy?: string;
24
+ }
@@ -0,0 +1,58 @@
1
+ import {
2
+ ArrayNotEmpty,
3
+ IsArray,
4
+ IsBoolean,
5
+ IsEnum,
6
+ IsInt,
7
+ IsNotEmpty,
8
+ IsOptional,
9
+ IsString,
10
+ ValidateIf,
11
+ } from 'class-validator';
12
+ import { MessageAudience } from '../enums/MessageAudience';
13
+
14
+ /**
15
+ * Edición parcial de un mensaje/modal desde backoffice (incluye el toggle `active`).
16
+ * Todos los campos son opcionales; solo se actualizan los presentes.
17
+ */
18
+ export class UpdateMessageRequest {
19
+ @IsOptional()
20
+ @IsEnum(MessageAudience)
21
+ audience?: MessageAudience;
22
+
23
+ @ValidateIf((o) => o.audience === MessageAudience.AUTHENTICATED)
24
+ @IsArray()
25
+ @ArrayNotEmpty()
26
+ @IsString({ each: true })
27
+ scopes?: string[];
28
+
29
+ @IsOptional()
30
+ @IsString()
31
+ @IsNotEmpty()
32
+ titleEn?: string;
33
+
34
+ @IsOptional()
35
+ @IsString()
36
+ @IsNotEmpty()
37
+ titleEs?: string;
38
+
39
+ @IsOptional()
40
+ @IsString()
41
+ descriptionEn?: string;
42
+
43
+ @IsOptional()
44
+ @IsString()
45
+ descriptionEs?: string;
46
+
47
+ @IsOptional()
48
+ @IsString()
49
+ imageUrl?: string;
50
+
51
+ @IsOptional()
52
+ @IsBoolean()
53
+ active?: boolean;
54
+
55
+ @IsOptional()
56
+ @IsInt()
57
+ order?: number;
58
+ }
@@ -0,0 +1,38 @@
1
+ import { IsBoolean, IsInt, IsNotEmpty, IsOptional, IsString } from 'class-validator';
2
+
3
+ /**
4
+ * Edición parcial de un servicio (#3) desde backoffice (incluye el toggle `active`).
5
+ * El `serviceKey` va en la ruta, no en el body. Todos los campos son opcionales.
6
+ */
7
+ export class UpdateServiceRequest {
8
+ @IsOptional()
9
+ @IsString()
10
+ @IsNotEmpty()
11
+ titleEn?: string;
12
+
13
+ @IsOptional()
14
+ @IsString()
15
+ @IsNotEmpty()
16
+ titleEs?: string;
17
+
18
+ @IsOptional()
19
+ @IsString()
20
+ @IsNotEmpty()
21
+ icon?: string;
22
+
23
+ @IsOptional()
24
+ @IsBoolean()
25
+ active?: boolean;
26
+
27
+ @IsOptional()
28
+ @IsString()
29
+ inactiveMessage?: string;
30
+
31
+ @IsOptional()
32
+ @IsString()
33
+ inactiveIcon?: string;
34
+
35
+ @IsOptional()
36
+ @IsInt()
37
+ order?: number;
38
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Audiencia de un mensaje de la App.
3
+ * - PUBLIC: modal de login, se sirve SIN token.
4
+ * - AUTHENTICATED: modal post-login, se filtra por los scopes del token.
5
+ */
6
+ export enum MessageAudience {
7
+ PUBLIC = 'PUBLIC',
8
+ AUTHENTICATED = 'AUTHENTICATED',
9
+ }
@@ -0,0 +1,16 @@
1
+ //dtos
2
+ export * from './dtos/AppMessageDto';
3
+ export * from './dtos/MessageDto';
4
+ export * from './dtos/ServiceStatusDto';
5
+ export * from './dtos/ListAppMessagesResponse';
6
+ export * from './dtos/ListServiceStatusResponse';
7
+ export * from './dtos/ListMessagesResponse';
8
+ export * from './dtos/CreateMessageRequest';
9
+ export * from './dtos/UpdateMessageRequest';
10
+ export * from './dtos/CreateServiceRequest';
11
+ export * from './dtos/UpdateServiceRequest';
12
+ export * from './dtos/CreateImageUploadUrlRequest';
13
+ export * from './dtos/CreateImageUploadUrlResponse';
14
+
15
+ //enums
16
+ export * from './enums/MessageAudience';
package/src/index.ts CHANGED
@@ -6,6 +6,7 @@ export * as Address from './address';
6
6
  export * as Places from './places';
7
7
  export * as Offices from './offices';
8
8
  export * as App from './app';
9
+ export * as AppContent from './appContent';
9
10
  export * as Authentication from './authentication';
10
11
  export * as Card from './card';
11
12
  export * as Country from './country';
@@ -172,6 +172,8 @@ export class SimulatePricingResponse {
172
172
  receives!: number;
173
173
  /** amountUSD + serviceFee (el stateFee lo calcula UNIR; prod US = 0). */
174
174
  totalToPay!: number;
175
+ /** Revenue de Fiado en USD = serviceFee + margen FX (amountUSD × markupBps/10000; negativo si markup negativo = subsidio). */
176
+ revenueUsd!: number;
175
177
  /** ISO del quote. */
176
178
  asOf!: string;
177
179
  }