@fiado/type-kit 3.537.0 → 3.539.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.
- package/bin/index.d.ts +2 -0
- package/bin/index.js +5 -2
- package/bin/rules/constants/RulesLimits.d.ts +8 -0
- package/bin/rules/constants/RulesLimits.js +11 -0
- package/bin/rules/dtos/EvaluateRulesRequest.d.ts +30 -0
- package/bin/rules/dtos/EvaluateRulesRequest.js +84 -0
- package/bin/rules/dtos/EvaluateRulesResponse.d.ts +17 -0
- package/bin/rules/dtos/EvaluateRulesResponse.js +11 -0
- package/bin/rules/dtos/GenerateRulesRequest.d.ts +20 -0
- package/bin/rules/dtos/GenerateRulesRequest.js +60 -0
- package/bin/rules/dtos/GenerateRulesResponse.d.ts +12 -0
- package/bin/rules/dtos/GenerateRulesResponse.js +7 -0
- package/bin/rules/dtos/RulesCatalogResponse.d.ts +36 -0
- package/bin/rules/dtos/RulesCatalogResponse.js +14 -0
- package/bin/rules/dtos/RulesChatMessage.d.ts +6 -0
- package/bin/rules/dtos/RulesChatMessage.js +32 -0
- package/bin/rules/dtos/RulesTraceResponse.d.ts +32 -0
- package/bin/rules/dtos/RulesTraceResponse.js +17 -0
- package/bin/rules/dtos/ValidateRulesRequest.d.ts +15 -0
- package/bin/rules/dtos/ValidateRulesRequest.js +44 -0
- package/bin/rules/dtos/ValidateRulesResponse.d.ts +6 -0
- package/bin/rules/dtos/ValidateRulesResponse.js +7 -0
- package/bin/rules/enums/RulesChatRoleEnum.d.ts +5 -0
- package/bin/rules/enums/RulesChatRoleEnum.js +9 -0
- package/bin/rules/enums/RulesErrorCodeEnum.d.ts +7 -0
- package/bin/rules/enums/RulesErrorCodeEnum.js +11 -0
- package/bin/rules/enums/RulesGenerationStatusEnum.d.ts +6 -0
- package/bin/rules/enums/RulesGenerationStatusEnum.js +10 -0
- package/bin/rules/enums/RulesOutcomeEnum.d.ts +6 -0
- package/bin/rules/enums/RulesOutcomeEnum.js +10 -0
- package/bin/rules/enums/RulesValueTypeEnum.d.ts +9 -0
- package/bin/rules/enums/RulesValueTypeEnum.js +13 -0
- package/bin/rules/index.d.ts +15 -0
- package/bin/rules/index.js +34 -0
- package/bin/usmarketgrowth-business/dtos/PromoterByDirectoryIdResponse.d.ts +22 -0
- package/bin/usmarketgrowth-business/dtos/PromoterByDirectoryIdResponse.js +2 -0
- package/bin/usmarketgrowth-business/index.d.ts +1 -0
- package/bin/usmarketgrowth-business/index.js +18 -0
- package/package.json +1 -1
- package/src/index.ts +4 -0
- package/src/rules/constants/RulesLimits.ts +8 -0
- package/src/rules/dtos/EvaluateRulesRequest.ts +67 -0
- package/src/rules/dtos/EvaluateRulesResponse.ts +19 -0
- package/src/rules/dtos/GenerateRulesRequest.ts +49 -0
- package/src/rules/dtos/GenerateRulesResponse.ts +11 -0
- package/src/rules/dtos/RulesCatalogResponse.ts +35 -0
- package/src/rules/dtos/RulesChatMessage.ts +17 -0
- package/src/rules/dtos/RulesTraceResponse.ts +32 -0
- package/src/rules/dtos/ValidateRulesRequest.ts +33 -0
- package/src/rules/dtos/ValidateRulesResponse.ts +6 -0
- package/src/rules/enums/RulesChatRoleEnum.ts +5 -0
- package/src/rules/enums/RulesErrorCodeEnum.ts +7 -0
- package/src/rules/enums/RulesGenerationStatusEnum.ts +6 -0
- package/src/rules/enums/RulesOutcomeEnum.ts +6 -0
- package/src/rules/enums/RulesValueTypeEnum.ts +9 -0
- package/src/rules/index.ts +20 -0
- package/src/usmarketgrowth-business/dtos/PromoterByDirectoryIdResponse.ts +22 -0
- package/src/usmarketgrowth-business/index.ts +2 -0
package/bin/index.d.ts
CHANGED
|
@@ -65,6 +65,7 @@ export * as Event from './event';
|
|
|
65
65
|
export * as NotificationWS from './notificationWS';
|
|
66
66
|
export * as ZendeskMessaging from './zendeskMessaging';
|
|
67
67
|
export * as ReferralBusiness from './referral-business';
|
|
68
|
+
export * as UsMarketGrowthBusiness from './usmarketgrowth-business';
|
|
68
69
|
export * as ComissionBusiness from './comission-business';
|
|
69
70
|
export * as Credit from './credit';
|
|
70
71
|
export * as CreditEngine from './creditEngine';
|
|
@@ -126,3 +127,4 @@ export * as Rewards from './rewards';
|
|
|
126
127
|
export * as RewardsEligibility from './rewardsEligibility';
|
|
127
128
|
export * as DatalakeReports from './datalakeReports';
|
|
128
129
|
export * as PdfRender from './pdfRender';
|
|
130
|
+
export * as Rules from './rules';
|
package/bin/index.js
CHANGED
|
@@ -37,8 +37,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
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.MessageMoments = 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.Biometrics = exports.MetamapConnector = exports.Account = exports.Crypto = void 0;
|
|
40
|
-
exports.
|
|
41
|
-
exports.PdfRender = exports.DatalakeReports = exports.RewardsEligibility = exports.Rewards = exports.DynamicForm = exports.FileStorage = exports.MoneyTransfer = exports.RetailLoan = exports.Membership = exports.WebhookBusiness = exports.PeopleBusiness = exports.UserConfirmations = exports.Collection = exports.Shipping = exports.PhoneSales = exports.Onboarding = exports.Kyc = exports.LoanScoring = exports.LoanCredit = exports.LoanCollectorAssignment = exports.LoanOfferings = exports.Shortlink = exports.LoanConfig = exports.DatalakeQuery = exports.RetailIntegration = exports.RetailPromotions = void 0;
|
|
40
|
+
exports.RetailCustomer = exports.RetailCards = exports.RetailCatalog = exports.RetailCommission = exports.RetailOrg = exports.EmailVerification = exports.NetworkConnector = exports.Modelias = exports.TotpSecurity = exports.Passport = exports.WalletFunding = exports.Remittance = exports.PlatformRbac = exports.CognitoBackofficeConnector = exports.WhatsappConnector = 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.UsMarketGrowthBusiness = 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 = exports.Device = exports.Observations = exports.IssuanceBusiness = void 0;
|
|
41
|
+
exports.Rules = exports.PdfRender = exports.DatalakeReports = exports.RewardsEligibility = exports.Rewards = exports.DynamicForm = exports.FileStorage = exports.MoneyTransfer = exports.RetailLoan = exports.Membership = exports.WebhookBusiness = exports.PeopleBusiness = exports.UserConfirmations = exports.Collection = exports.Shipping = exports.PhoneSales = exports.Onboarding = exports.Kyc = exports.LoanScoring = exports.LoanCredit = exports.LoanCollectorAssignment = exports.LoanOfferings = exports.Shortlink = exports.LoanConfig = exports.DatalakeQuery = exports.RetailIntegration = exports.RetailPromotions = exports.RetailWizard = void 0;
|
|
42
42
|
exports.Crypto = __importStar(require("./crypto"));
|
|
43
43
|
exports.Account = __importStar(require("./account"));
|
|
44
44
|
exports.MetamapConnector = __importStar(require("./metamapConnector"));
|
|
@@ -106,6 +106,7 @@ exports.Event = __importStar(require("./event"));
|
|
|
106
106
|
exports.NotificationWS = __importStar(require("./notificationWS"));
|
|
107
107
|
exports.ZendeskMessaging = __importStar(require("./zendeskMessaging"));
|
|
108
108
|
exports.ReferralBusiness = __importStar(require("./referral-business"));
|
|
109
|
+
exports.UsMarketGrowthBusiness = __importStar(require("./usmarketgrowth-business"));
|
|
109
110
|
exports.ComissionBusiness = __importStar(require("./comission-business"));
|
|
110
111
|
exports.Credit = __importStar(require("./credit"));
|
|
111
112
|
exports.CreditEngine = __importStar(require("./creditEngine"));
|
|
@@ -248,3 +249,5 @@ exports.RewardsEligibility = __importStar(require("./rewardsEligibility"));
|
|
|
248
249
|
exports.DatalakeReports = __importStar(require("./datalakeReports"));
|
|
249
250
|
// PdfRender: DTOs del lambda pdf-render-business (plantilla HTML → PDF multitenant y su backoffice).
|
|
250
251
|
exports.PdfRender = __importStar(require("./pdfRender"));
|
|
252
|
+
// Rules: DTOs del lambda central rules-business (catálogo, validación, generación con IA y evaluación de reglas).
|
|
253
|
+
exports.Rules = __importStar(require("./rules"));
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Máximo de sujetos por llamada a `POST /evaluate` (si no, 400 `TOO_MANY_SUBJECTS`). */
|
|
2
|
+
export declare const RULES_MAX_SUBJECTS_PER_CALL = 100;
|
|
3
|
+
/** Fuente especial: datos que el llamador manda en la llamada, no se resuelven ni se piden en `items`. */
|
|
4
|
+
export declare const RULES_INPUT_SOURCE = "input";
|
|
5
|
+
/** Máximo de campos del contrato de `input`. */
|
|
6
|
+
export declare const RULES_MAX_INPUT_CONTRACT = 30;
|
|
7
|
+
/** Largo máximo (caracteres) del contenido de un turno del chat de `POST /generate`. */
|
|
8
|
+
export declare const RULES_CHAT_TURN_MAX_LENGTH = 4000;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RULES_CHAT_TURN_MAX_LENGTH = exports.RULES_MAX_INPUT_CONTRACT = exports.RULES_INPUT_SOURCE = exports.RULES_MAX_SUBJECTS_PER_CALL = void 0;
|
|
4
|
+
/** Máximo de sujetos por llamada a `POST /evaluate` (si no, 400 `TOO_MANY_SUBJECTS`). */
|
|
5
|
+
exports.RULES_MAX_SUBJECTS_PER_CALL = 100;
|
|
6
|
+
/** Fuente especial: datos que el llamador manda en la llamada, no se resuelven ni se piden en `items`. */
|
|
7
|
+
exports.RULES_INPUT_SOURCE = 'input';
|
|
8
|
+
/** Máximo de campos del contrato de `input`. */
|
|
9
|
+
exports.RULES_MAX_INPUT_CONTRACT = 30;
|
|
10
|
+
/** Largo máximo (caracteres) del contenido de un turno del chat de `POST /generate`. */
|
|
11
|
+
exports.RULES_CHAT_TURN_MAX_LENGTH = 4000;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { JsonValue } from '../../common';
|
|
2
|
+
import { DynamicFormValue } from '../../dynamicForm/types/DynamicFormValue';
|
|
3
|
+
/** A quién se le evalúa la regla. */
|
|
4
|
+
export declare class RulesEvaluationSubject {
|
|
5
|
+
directoryId: string;
|
|
6
|
+
/** Otros participantes del evento: llegan al motor como `ctx.subjects[key] = { directoryId }`. */
|
|
7
|
+
subjects?: Record<string, {
|
|
8
|
+
directoryId: string;
|
|
9
|
+
}>;
|
|
10
|
+
/** Datos escalares del evento: forman la fuente `input`. */
|
|
11
|
+
inputs?: Record<string, DynamicFormValue>;
|
|
12
|
+
}
|
|
13
|
+
export declare class RuleToEvaluate {
|
|
14
|
+
id: string;
|
|
15
|
+
/** La regla (`{ match, groups[] }`). */
|
|
16
|
+
rule: {
|
|
17
|
+
[key: string]: JsonValue;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
/** `POST /evaluate`. El límite de 100 sujetos lo valida el lambda (400 `TOO_MANY_SUBJECTS`), no el DTO. */
|
|
21
|
+
export declare class EvaluateRulesRequest {
|
|
22
|
+
/** Quién llama (solo logs y métricas). */
|
|
23
|
+
consumer?: string;
|
|
24
|
+
/** Ids de ítems del catálogo (`source:key`) que las reglas pueden usar. */
|
|
25
|
+
items: string[];
|
|
26
|
+
rules: RuleToEvaluate[];
|
|
27
|
+
subjects: RulesEvaluationSubject[];
|
|
28
|
+
/** Fecha ISO 8601; por defecto, el momento de la llamada. */
|
|
29
|
+
referenceAt?: string;
|
|
30
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
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.EvaluateRulesRequest = exports.RuleToEvaluate = exports.RulesEvaluationSubject = void 0;
|
|
13
|
+
const class_transformer_1 = require("class-transformer");
|
|
14
|
+
const class_validator_1 = require("class-validator");
|
|
15
|
+
/** A quién se le evalúa la regla. */
|
|
16
|
+
class RulesEvaluationSubject {
|
|
17
|
+
}
|
|
18
|
+
exports.RulesEvaluationSubject = RulesEvaluationSubject;
|
|
19
|
+
__decorate([
|
|
20
|
+
(0, class_transformer_1.Expose)(),
|
|
21
|
+
(0, class_validator_1.IsString)(),
|
|
22
|
+
__metadata("design:type", String)
|
|
23
|
+
], RulesEvaluationSubject.prototype, "directoryId", void 0);
|
|
24
|
+
__decorate([
|
|
25
|
+
(0, class_transformer_1.Expose)(),
|
|
26
|
+
(0, class_validator_1.IsOptional)(),
|
|
27
|
+
(0, class_validator_1.IsObject)(),
|
|
28
|
+
__metadata("design:type", Object)
|
|
29
|
+
], RulesEvaluationSubject.prototype, "subjects", void 0);
|
|
30
|
+
__decorate([
|
|
31
|
+
(0, class_transformer_1.Expose)(),
|
|
32
|
+
(0, class_validator_1.IsOptional)(),
|
|
33
|
+
(0, class_validator_1.IsObject)(),
|
|
34
|
+
__metadata("design:type", Object)
|
|
35
|
+
], RulesEvaluationSubject.prototype, "inputs", void 0);
|
|
36
|
+
class RuleToEvaluate {
|
|
37
|
+
}
|
|
38
|
+
exports.RuleToEvaluate = RuleToEvaluate;
|
|
39
|
+
__decorate([
|
|
40
|
+
(0, class_transformer_1.Expose)(),
|
|
41
|
+
(0, class_validator_1.IsString)(),
|
|
42
|
+
__metadata("design:type", String)
|
|
43
|
+
], RuleToEvaluate.prototype, "id", void 0);
|
|
44
|
+
__decorate([
|
|
45
|
+
(0, class_transformer_1.Expose)(),
|
|
46
|
+
(0, class_validator_1.IsObject)(),
|
|
47
|
+
__metadata("design:type", Object)
|
|
48
|
+
], RuleToEvaluate.prototype, "rule", void 0);
|
|
49
|
+
/** `POST /evaluate`. El límite de 100 sujetos lo valida el lambda (400 `TOO_MANY_SUBJECTS`), no el DTO. */
|
|
50
|
+
class EvaluateRulesRequest {
|
|
51
|
+
}
|
|
52
|
+
exports.EvaluateRulesRequest = EvaluateRulesRequest;
|
|
53
|
+
__decorate([
|
|
54
|
+
(0, class_transformer_1.Expose)(),
|
|
55
|
+
(0, class_validator_1.IsOptional)(),
|
|
56
|
+
(0, class_validator_1.IsString)(),
|
|
57
|
+
__metadata("design:type", String)
|
|
58
|
+
], EvaluateRulesRequest.prototype, "consumer", void 0);
|
|
59
|
+
__decorate([
|
|
60
|
+
(0, class_transformer_1.Expose)(),
|
|
61
|
+
(0, class_validator_1.IsArray)(),
|
|
62
|
+
(0, class_validator_1.IsString)({ each: true }),
|
|
63
|
+
__metadata("design:type", Array)
|
|
64
|
+
], EvaluateRulesRequest.prototype, "items", void 0);
|
|
65
|
+
__decorate([
|
|
66
|
+
(0, class_transformer_1.Expose)(),
|
|
67
|
+
(0, class_validator_1.IsArray)(),
|
|
68
|
+
(0, class_validator_1.ValidateNested)({ each: true }),
|
|
69
|
+
(0, class_transformer_1.Type)(() => RuleToEvaluate),
|
|
70
|
+
__metadata("design:type", Array)
|
|
71
|
+
], EvaluateRulesRequest.prototype, "rules", void 0);
|
|
72
|
+
__decorate([
|
|
73
|
+
(0, class_transformer_1.Expose)(),
|
|
74
|
+
(0, class_validator_1.IsArray)(),
|
|
75
|
+
(0, class_validator_1.ValidateNested)({ each: true }),
|
|
76
|
+
(0, class_transformer_1.Type)(() => RulesEvaluationSubject),
|
|
77
|
+
__metadata("design:type", Array)
|
|
78
|
+
], EvaluateRulesRequest.prototype, "subjects", void 0);
|
|
79
|
+
__decorate([
|
|
80
|
+
(0, class_transformer_1.Expose)(),
|
|
81
|
+
(0, class_validator_1.IsOptional)(),
|
|
82
|
+
(0, class_validator_1.IsISO8601)(),
|
|
83
|
+
__metadata("design:type", String)
|
|
84
|
+
], EvaluateRulesRequest.prototype, "referenceAt", void 0);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { RulesOutcomeEnum } from '../enums/RulesOutcomeEnum';
|
|
2
|
+
import { RulesTraceResponse } from './RulesTraceResponse';
|
|
3
|
+
/** Resultado de una regla para un sujeto. */
|
|
4
|
+
export declare class RuleEvaluationResult {
|
|
5
|
+
ruleId: string;
|
|
6
|
+
/** Posición del sujeto en `EvaluateRulesRequest.subjects`. */
|
|
7
|
+
subjectIndex: number;
|
|
8
|
+
directoryId: string;
|
|
9
|
+
outcome: RulesOutcomeEnum;
|
|
10
|
+
trace?: RulesTraceResponse;
|
|
11
|
+
/** Solo si `outcome` es `ERROR`. */
|
|
12
|
+
errorMessage?: string;
|
|
13
|
+
}
|
|
14
|
+
/** `POST /evaluate`: ordenado por regla y, dentro de cada regla, por `subjectIndex`. */
|
|
15
|
+
export declare class EvaluateRulesResponse {
|
|
16
|
+
results: RuleEvaluationResult[];
|
|
17
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EvaluateRulesResponse = exports.RuleEvaluationResult = void 0;
|
|
4
|
+
/** Resultado de una regla para un sujeto. */
|
|
5
|
+
class RuleEvaluationResult {
|
|
6
|
+
}
|
|
7
|
+
exports.RuleEvaluationResult = RuleEvaluationResult;
|
|
8
|
+
/** `POST /evaluate`: ordenado por regla y, dentro de cada regla, por `subjectIndex`. */
|
|
9
|
+
class EvaluateRulesResponse {
|
|
10
|
+
}
|
|
11
|
+
exports.EvaluateRulesResponse = EvaluateRulesResponse;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { JsonValue } from '../../common';
|
|
2
|
+
import { InputField } from '../../dynamicForm/dtos/InputField';
|
|
3
|
+
import { RulesChatMessage } from './RulesChatMessage';
|
|
4
|
+
/** `POST /generate`: el chat que genera una regla con IA sobre el catálogo de los ítems indicados. */
|
|
5
|
+
export declare class GenerateRulesRequest {
|
|
6
|
+
/** Quién llama (solo logs y métricas). */
|
|
7
|
+
consumer?: string;
|
|
8
|
+
/** Ids de ítems del catálogo (`source:key`) que la IA puede usar. */
|
|
9
|
+
items: string[];
|
|
10
|
+
/** Contrato de la fuente `input` (`InputField[]`, dominio `dynamicForm`). */
|
|
11
|
+
inputContract?: InputField[];
|
|
12
|
+
/** Del turno más viejo al más nuevo; el último es del usuario. */
|
|
13
|
+
messages: RulesChatMessage[];
|
|
14
|
+
/** Contexto libre del llamador para el prompt. */
|
|
15
|
+
context?: string;
|
|
16
|
+
/** La regla que el editor tiene ahora, para refinarla. Ausente = regla nueva. */
|
|
17
|
+
currentRule?: {
|
|
18
|
+
[key: string]: JsonValue;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
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.GenerateRulesRequest = void 0;
|
|
13
|
+
const class_transformer_1 = require("class-transformer");
|
|
14
|
+
const class_validator_1 = require("class-validator");
|
|
15
|
+
const RulesLimits_1 = require("../constants/RulesLimits");
|
|
16
|
+
const RulesChatMessage_1 = require("./RulesChatMessage");
|
|
17
|
+
/** `POST /generate`: el chat que genera una regla con IA sobre el catálogo de los ítems indicados. */
|
|
18
|
+
class GenerateRulesRequest {
|
|
19
|
+
}
|
|
20
|
+
exports.GenerateRulesRequest = GenerateRulesRequest;
|
|
21
|
+
__decorate([
|
|
22
|
+
(0, class_transformer_1.Expose)(),
|
|
23
|
+
(0, class_validator_1.IsOptional)(),
|
|
24
|
+
(0, class_validator_1.IsString)(),
|
|
25
|
+
__metadata("design:type", String)
|
|
26
|
+
], GenerateRulesRequest.prototype, "consumer", void 0);
|
|
27
|
+
__decorate([
|
|
28
|
+
(0, class_transformer_1.Expose)(),
|
|
29
|
+
(0, class_validator_1.IsArray)(),
|
|
30
|
+
(0, class_validator_1.IsString)({ each: true }),
|
|
31
|
+
__metadata("design:type", Array)
|
|
32
|
+
], GenerateRulesRequest.prototype, "items", void 0);
|
|
33
|
+
__decorate([
|
|
34
|
+
(0, class_transformer_1.Expose)(),
|
|
35
|
+
(0, class_validator_1.IsOptional)(),
|
|
36
|
+
(0, class_validator_1.IsArray)(),
|
|
37
|
+
(0, class_validator_1.ArrayMaxSize)(RulesLimits_1.RULES_MAX_INPUT_CONTRACT),
|
|
38
|
+
(0, class_validator_1.IsObject)({ each: true }),
|
|
39
|
+
__metadata("design:type", Array)
|
|
40
|
+
], GenerateRulesRequest.prototype, "inputContract", void 0);
|
|
41
|
+
__decorate([
|
|
42
|
+
(0, class_transformer_1.Expose)(),
|
|
43
|
+
(0, class_validator_1.IsArray)(),
|
|
44
|
+
(0, class_validator_1.ArrayMinSize)(1),
|
|
45
|
+
(0, class_validator_1.ValidateNested)({ each: true }),
|
|
46
|
+
(0, class_transformer_1.Type)(() => RulesChatMessage_1.RulesChatMessage),
|
|
47
|
+
__metadata("design:type", Array)
|
|
48
|
+
], GenerateRulesRequest.prototype, "messages", void 0);
|
|
49
|
+
__decorate([
|
|
50
|
+
(0, class_transformer_1.Expose)(),
|
|
51
|
+
(0, class_validator_1.IsOptional)(),
|
|
52
|
+
(0, class_validator_1.IsString)(),
|
|
53
|
+
__metadata("design:type", String)
|
|
54
|
+
], GenerateRulesRequest.prototype, "context", void 0);
|
|
55
|
+
__decorate([
|
|
56
|
+
(0, class_transformer_1.Expose)(),
|
|
57
|
+
(0, class_validator_1.IsOptional)(),
|
|
58
|
+
(0, class_validator_1.IsObject)(),
|
|
59
|
+
__metadata("design:type", Object)
|
|
60
|
+
], GenerateRulesRequest.prototype, "currentRule", void 0);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { JsonValue } from '../../common';
|
|
2
|
+
import { RulesGenerationStatusEnum } from '../enums/RulesGenerationStatusEnum';
|
|
3
|
+
/** Resultado de `POST /generate`. `status: OK` con `rule: null` = la IA hizo una pregunta (sin regla). */
|
|
4
|
+
export declare class GenerateRulesResponse {
|
|
5
|
+
status: RulesGenerationStatusEnum;
|
|
6
|
+
rule: {
|
|
7
|
+
[key: string]: JsonValue;
|
|
8
|
+
} | null;
|
|
9
|
+
explanation: string;
|
|
10
|
+
/** Problemas de validación (vacío salvo `FAILED`). */
|
|
11
|
+
errors: string[];
|
|
12
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GenerateRulesResponse = void 0;
|
|
4
|
+
/** Resultado de `POST /generate`. `status: OK` con `rule: null` = la IA hizo una pregunta (sin regla). */
|
|
5
|
+
class GenerateRulesResponse {
|
|
6
|
+
}
|
|
7
|
+
exports.GenerateRulesResponse = GenerateRulesResponse;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { InputField } from '../../dynamicForm/dtos/InputField';
|
|
2
|
+
import { RulesValueTypeEnum } from '../enums/RulesValueTypeEnum';
|
|
3
|
+
/** Un campo que un ítem del catálogo resuelve para las reglas. */
|
|
4
|
+
export declare class RulesCatalogFieldResponse {
|
|
5
|
+
field: string;
|
|
6
|
+
label: string;
|
|
7
|
+
valueType: RulesValueTypeEnum;
|
|
8
|
+
/** Operadores válidos para este campo (`GT`, `LTE`, `IN`…). */
|
|
9
|
+
operators: string[];
|
|
10
|
+
/** Params del campo (ej. ventana y moneda de `sumAmount`), como formulario dinámico. */
|
|
11
|
+
params?: InputField[];
|
|
12
|
+
/** Valores posibles si es un enum (con qué significa cada uno, si se sabe). */
|
|
13
|
+
options?: {
|
|
14
|
+
value: string;
|
|
15
|
+
label: string;
|
|
16
|
+
description?: string;
|
|
17
|
+
}[];
|
|
18
|
+
/** Qué es este campo, en una frase. */
|
|
19
|
+
description?: string;
|
|
20
|
+
/** Frases de ejemplo que típicamente piden este campo (ayuda del chat de IA). */
|
|
21
|
+
examplePhrases?: string[];
|
|
22
|
+
}
|
|
23
|
+
/** Un ítem del catálogo: una fuente + una llave de búsqueda (`source:key`). */
|
|
24
|
+
export declare class RulesCatalogItemResponse {
|
|
25
|
+
id: string;
|
|
26
|
+
source: string;
|
|
27
|
+
key: string;
|
|
28
|
+
label: string;
|
|
29
|
+
description: string;
|
|
30
|
+
fields: RulesCatalogFieldResponse[];
|
|
31
|
+
}
|
|
32
|
+
export declare class RulesCatalogResponse {
|
|
33
|
+
items: RulesCatalogItemResponse[];
|
|
34
|
+
/** Etiqueta legible de cada operador (`GTE` → «≥»). */
|
|
35
|
+
operators: Record<string, string>;
|
|
36
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RulesCatalogResponse = exports.RulesCatalogItemResponse = exports.RulesCatalogFieldResponse = void 0;
|
|
4
|
+
/** Un campo que un ítem del catálogo resuelve para las reglas. */
|
|
5
|
+
class RulesCatalogFieldResponse {
|
|
6
|
+
}
|
|
7
|
+
exports.RulesCatalogFieldResponse = RulesCatalogFieldResponse;
|
|
8
|
+
/** Un ítem del catálogo: una fuente + una llave de búsqueda (`source:key`). */
|
|
9
|
+
class RulesCatalogItemResponse {
|
|
10
|
+
}
|
|
11
|
+
exports.RulesCatalogItemResponse = RulesCatalogItemResponse;
|
|
12
|
+
class RulesCatalogResponse {
|
|
13
|
+
}
|
|
14
|
+
exports.RulesCatalogResponse = RulesCatalogResponse;
|
|
@@ -0,0 +1,32 @@
|
|
|
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.RulesChatMessage = void 0;
|
|
13
|
+
const class_transformer_1 = require("class-transformer");
|
|
14
|
+
const class_validator_1 = require("class-validator");
|
|
15
|
+
const RulesLimits_1 = require("../constants/RulesLimits");
|
|
16
|
+
const RulesChatRoleEnum_1 = require("../enums/RulesChatRoleEnum");
|
|
17
|
+
/** Un turno del chat que genera reglas con IA. */
|
|
18
|
+
class RulesChatMessage {
|
|
19
|
+
}
|
|
20
|
+
exports.RulesChatMessage = RulesChatMessage;
|
|
21
|
+
__decorate([
|
|
22
|
+
(0, class_transformer_1.Expose)(),
|
|
23
|
+
(0, class_validator_1.IsEnum)(RulesChatRoleEnum_1.RulesChatRoleEnum),
|
|
24
|
+
__metadata("design:type", String)
|
|
25
|
+
], RulesChatMessage.prototype, "role", void 0);
|
|
26
|
+
__decorate([
|
|
27
|
+
(0, class_transformer_1.Expose)(),
|
|
28
|
+
(0, class_validator_1.IsString)(),
|
|
29
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
30
|
+
(0, class_validator_1.MaxLength)(RulesLimits_1.RULES_CHAT_TURN_MAX_LENGTH),
|
|
31
|
+
__metadata("design:type", String)
|
|
32
|
+
], RulesChatMessage.prototype, "content", void 0);
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { JsonValue } from '../../common';
|
|
2
|
+
import { RulesOutcomeEnum } from '../enums/RulesOutcomeEnum';
|
|
3
|
+
/**
|
|
4
|
+
* Una condición evaluada: qué se esperaba y qué se encontró.
|
|
5
|
+
* Sin `origin`/`asOf`: el central no sabe de dónde salió el dato; el consumidor (rewards) los agrega.
|
|
6
|
+
*/
|
|
7
|
+
export declare class RulesTraceConditionResponse {
|
|
8
|
+
source: string;
|
|
9
|
+
subject?: string;
|
|
10
|
+
field: string;
|
|
11
|
+
params?: Record<string, string | number | boolean>;
|
|
12
|
+
op: string;
|
|
13
|
+
expected: JsonValue;
|
|
14
|
+
actual?: JsonValue;
|
|
15
|
+
outcome: RulesOutcomeEnum;
|
|
16
|
+
/** Solo si `outcome` es `ERROR`. */
|
|
17
|
+
error?: {
|
|
18
|
+
code: string;
|
|
19
|
+
message: string;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export declare class RulesTraceGroupResponse {
|
|
23
|
+
match: 'ALL' | 'ANY';
|
|
24
|
+
outcome: RulesOutcomeEnum;
|
|
25
|
+
conditions: RulesTraceConditionResponse[];
|
|
26
|
+
}
|
|
27
|
+
/** Traza completa de una evaluación: por qué cumplió o no. */
|
|
28
|
+
export declare class RulesTraceResponse {
|
|
29
|
+
match: 'ALL' | 'ANY';
|
|
30
|
+
outcome: RulesOutcomeEnum;
|
|
31
|
+
groups: RulesTraceGroupResponse[];
|
|
32
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RulesTraceResponse = exports.RulesTraceGroupResponse = exports.RulesTraceConditionResponse = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Una condición evaluada: qué se esperaba y qué se encontró.
|
|
6
|
+
* Sin `origin`/`asOf`: el central no sabe de dónde salió el dato; el consumidor (rewards) los agrega.
|
|
7
|
+
*/
|
|
8
|
+
class RulesTraceConditionResponse {
|
|
9
|
+
}
|
|
10
|
+
exports.RulesTraceConditionResponse = RulesTraceConditionResponse;
|
|
11
|
+
class RulesTraceGroupResponse {
|
|
12
|
+
}
|
|
13
|
+
exports.RulesTraceGroupResponse = RulesTraceGroupResponse;
|
|
14
|
+
/** Traza completa de una evaluación: por qué cumplió o no. */
|
|
15
|
+
class RulesTraceResponse {
|
|
16
|
+
}
|
|
17
|
+
exports.RulesTraceResponse = RulesTraceResponse;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { JsonValue } from '../../common';
|
|
2
|
+
import { InputField } from '../../dynamicForm/dtos/InputField';
|
|
3
|
+
/** `POST /validate`: valida una regla guardada contra el catálogo de los ítems indicados y el contrato de `input`. */
|
|
4
|
+
export declare class ValidateRulesRequest {
|
|
5
|
+
/** Quién llama (solo logs y métricas). */
|
|
6
|
+
consumer?: string;
|
|
7
|
+
/** Ids de ítems del catálogo (`source:key`) contra los que se valida. */
|
|
8
|
+
items: string[];
|
|
9
|
+
/** La regla (`{ match, groups[] }`). */
|
|
10
|
+
rule: {
|
|
11
|
+
[key: string]: JsonValue;
|
|
12
|
+
};
|
|
13
|
+
/** Contrato de la fuente `input` (`InputField[]`, dominio `dynamicForm`). */
|
|
14
|
+
inputContract?: InputField[];
|
|
15
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
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.ValidateRulesRequest = void 0;
|
|
13
|
+
const class_transformer_1 = require("class-transformer");
|
|
14
|
+
const class_validator_1 = require("class-validator");
|
|
15
|
+
const RulesLimits_1 = require("../constants/RulesLimits");
|
|
16
|
+
/** `POST /validate`: valida una regla guardada contra el catálogo de los ítems indicados y el contrato de `input`. */
|
|
17
|
+
class ValidateRulesRequest {
|
|
18
|
+
}
|
|
19
|
+
exports.ValidateRulesRequest = ValidateRulesRequest;
|
|
20
|
+
__decorate([
|
|
21
|
+
(0, class_transformer_1.Expose)(),
|
|
22
|
+
(0, class_validator_1.IsOptional)(),
|
|
23
|
+
(0, class_validator_1.IsString)(),
|
|
24
|
+
__metadata("design:type", String)
|
|
25
|
+
], ValidateRulesRequest.prototype, "consumer", void 0);
|
|
26
|
+
__decorate([
|
|
27
|
+
(0, class_transformer_1.Expose)(),
|
|
28
|
+
(0, class_validator_1.IsArray)(),
|
|
29
|
+
(0, class_validator_1.IsString)({ each: true }),
|
|
30
|
+
__metadata("design:type", Array)
|
|
31
|
+
], ValidateRulesRequest.prototype, "items", void 0);
|
|
32
|
+
__decorate([
|
|
33
|
+
(0, class_transformer_1.Expose)(),
|
|
34
|
+
(0, class_validator_1.IsObject)(),
|
|
35
|
+
__metadata("design:type", Object)
|
|
36
|
+
], ValidateRulesRequest.prototype, "rule", void 0);
|
|
37
|
+
__decorate([
|
|
38
|
+
(0, class_transformer_1.Expose)(),
|
|
39
|
+
(0, class_validator_1.IsOptional)(),
|
|
40
|
+
(0, class_validator_1.IsArray)(),
|
|
41
|
+
(0, class_validator_1.ArrayMaxSize)(RulesLimits_1.RULES_MAX_INPUT_CONTRACT),
|
|
42
|
+
(0, class_validator_1.IsObject)({ each: true }),
|
|
43
|
+
__metadata("design:type", Array)
|
|
44
|
+
], ValidateRulesRequest.prototype, "inputContract", void 0);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RulesChatRoleEnum = void 0;
|
|
4
|
+
/** Quién habló en un turno del chat que genera reglas con IA (`POST /generate`). */
|
|
5
|
+
var RulesChatRoleEnum;
|
|
6
|
+
(function (RulesChatRoleEnum) {
|
|
7
|
+
RulesChatRoleEnum["USER"] = "user";
|
|
8
|
+
RulesChatRoleEnum["ASSISTANT"] = "assistant";
|
|
9
|
+
})(RulesChatRoleEnum || (exports.RulesChatRoleEnum = RulesChatRoleEnum = {}));
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Códigos de error 400 del lambda central de reglas. */
|
|
2
|
+
export declare enum RulesErrorCodeEnum {
|
|
3
|
+
UNKNOWN_CATALOG_ITEM = "UNKNOWN_CATALOG_ITEM",
|
|
4
|
+
DUPLICATE_SOURCE_IN_ITEMS = "DUPLICATE_SOURCE_IN_ITEMS",
|
|
5
|
+
TOO_MANY_SUBJECTS = "TOO_MANY_SUBJECTS",
|
|
6
|
+
VALIDATION_ERROR = "VALIDATION_ERROR"
|
|
7
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RulesErrorCodeEnum = void 0;
|
|
4
|
+
/** Códigos de error 400 del lambda central de reglas. */
|
|
5
|
+
var RulesErrorCodeEnum;
|
|
6
|
+
(function (RulesErrorCodeEnum) {
|
|
7
|
+
RulesErrorCodeEnum["UNKNOWN_CATALOG_ITEM"] = "UNKNOWN_CATALOG_ITEM";
|
|
8
|
+
RulesErrorCodeEnum["DUPLICATE_SOURCE_IN_ITEMS"] = "DUPLICATE_SOURCE_IN_ITEMS";
|
|
9
|
+
RulesErrorCodeEnum["TOO_MANY_SUBJECTS"] = "TOO_MANY_SUBJECTS";
|
|
10
|
+
RulesErrorCodeEnum["VALIDATION_ERROR"] = "VALIDATION_ERROR";
|
|
11
|
+
})(RulesErrorCodeEnum || (exports.RulesErrorCodeEnum = RulesErrorCodeEnum = {}));
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RulesGenerationStatusEnum = void 0;
|
|
4
|
+
/** Estado de la generación de una regla con IA (`POST /generate`). */
|
|
5
|
+
var RulesGenerationStatusEnum;
|
|
6
|
+
(function (RulesGenerationStatusEnum) {
|
|
7
|
+
RulesGenerationStatusEnum["OK"] = "OK";
|
|
8
|
+
RulesGenerationStatusEnum["REPAIRED"] = "REPAIRED";
|
|
9
|
+
RulesGenerationStatusEnum["FAILED"] = "FAILED";
|
|
10
|
+
})(RulesGenerationStatusEnum || (exports.RulesGenerationStatusEnum = RulesGenerationStatusEnum = {}));
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RulesOutcomeEnum = void 0;
|
|
4
|
+
/** Resultado de evaluar una regla para un sujeto (`POST /evaluate`). */
|
|
5
|
+
var RulesOutcomeEnum;
|
|
6
|
+
(function (RulesOutcomeEnum) {
|
|
7
|
+
RulesOutcomeEnum["MATCH"] = "MATCH";
|
|
8
|
+
RulesOutcomeEnum["NO_MATCH"] = "NO_MATCH";
|
|
9
|
+
RulesOutcomeEnum["ERROR"] = "ERROR";
|
|
10
|
+
})(RulesOutcomeEnum || (exports.RulesOutcomeEnum = RulesOutcomeEnum = {}));
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Tipo de valor de un campo del catálogo de reglas (`GET /catalog`). */
|
|
2
|
+
export declare enum RulesValueTypeEnum {
|
|
3
|
+
NUMBER = "NUMBER",
|
|
4
|
+
STRING = "STRING",
|
|
5
|
+
BOOLEAN = "BOOLEAN",
|
|
6
|
+
DATE = "DATE",
|
|
7
|
+
/** Lista de textos (ej. `directory.scope`). */
|
|
8
|
+
STRING_LIST = "STRING_LIST"
|
|
9
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RulesValueTypeEnum = void 0;
|
|
4
|
+
/** Tipo de valor de un campo del catálogo de reglas (`GET /catalog`). */
|
|
5
|
+
var RulesValueTypeEnum;
|
|
6
|
+
(function (RulesValueTypeEnum) {
|
|
7
|
+
RulesValueTypeEnum["NUMBER"] = "NUMBER";
|
|
8
|
+
RulesValueTypeEnum["STRING"] = "STRING";
|
|
9
|
+
RulesValueTypeEnum["BOOLEAN"] = "BOOLEAN";
|
|
10
|
+
RulesValueTypeEnum["DATE"] = "DATE";
|
|
11
|
+
/** Lista de textos (ej. `directory.scope`). */
|
|
12
|
+
RulesValueTypeEnum["STRING_LIST"] = "STRING_LIST";
|
|
13
|
+
})(RulesValueTypeEnum || (exports.RulesValueTypeEnum = RulesValueTypeEnum = {}));
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export * from './enums/RulesOutcomeEnum';
|
|
2
|
+
export * from './enums/RulesGenerationStatusEnum';
|
|
3
|
+
export * from './enums/RulesChatRoleEnum';
|
|
4
|
+
export * from './enums/RulesValueTypeEnum';
|
|
5
|
+
export * from './enums/RulesErrorCodeEnum';
|
|
6
|
+
export * from './constants/RulesLimits';
|
|
7
|
+
export * from './dtos/RulesCatalogResponse';
|
|
8
|
+
export * from './dtos/ValidateRulesRequest';
|
|
9
|
+
export * from './dtos/ValidateRulesResponse';
|
|
10
|
+
export * from './dtos/RulesChatMessage';
|
|
11
|
+
export * from './dtos/GenerateRulesRequest';
|
|
12
|
+
export * from './dtos/GenerateRulesResponse';
|
|
13
|
+
export * from './dtos/RulesTraceResponse';
|
|
14
|
+
export * from './dtos/EvaluateRulesRequest';
|
|
15
|
+
export * from './dtos/EvaluateRulesResponse';
|
|
@@ -0,0 +1,34 @@
|
|
|
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
|
+
//Enums
|
|
18
|
+
__exportStar(require("./enums/RulesOutcomeEnum"), exports);
|
|
19
|
+
__exportStar(require("./enums/RulesGenerationStatusEnum"), exports);
|
|
20
|
+
__exportStar(require("./enums/RulesChatRoleEnum"), exports);
|
|
21
|
+
__exportStar(require("./enums/RulesValueTypeEnum"), exports);
|
|
22
|
+
__exportStar(require("./enums/RulesErrorCodeEnum"), exports);
|
|
23
|
+
//Constants
|
|
24
|
+
__exportStar(require("./constants/RulesLimits"), exports);
|
|
25
|
+
//DTOs
|
|
26
|
+
__exportStar(require("./dtos/RulesCatalogResponse"), exports);
|
|
27
|
+
__exportStar(require("./dtos/ValidateRulesRequest"), exports);
|
|
28
|
+
__exportStar(require("./dtos/ValidateRulesResponse"), exports);
|
|
29
|
+
__exportStar(require("./dtos/RulesChatMessage"), exports);
|
|
30
|
+
__exportStar(require("./dtos/GenerateRulesRequest"), exports);
|
|
31
|
+
__exportStar(require("./dtos/GenerateRulesResponse"), exports);
|
|
32
|
+
__exportStar(require("./dtos/RulesTraceResponse"), exports);
|
|
33
|
+
__exportStar(require("./dtos/EvaluateRulesRequest"), exports);
|
|
34
|
+
__exportStar(require("./dtos/EvaluateRulesResponse"), exports);
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Promotor de US Market Growth ligado a un directorio. Respuesta del privado
|
|
3
|
+
* `GET /private/promoters/directoryId/{directoryId}` de `usmarketgrowth-business` (DEC-053).
|
|
4
|
+
*
|
|
5
|
+
* Si el directorio no es de un promotor, el endpoint responde 404 `PROMOTER_NOT_FOUND`.
|
|
6
|
+
*/
|
|
7
|
+
export interface PromoterByDirectoryIdResponse {
|
|
8
|
+
promoterId: string;
|
|
9
|
+
directoryId: string;
|
|
10
|
+
name: string;
|
|
11
|
+
phoneNumber: string;
|
|
12
|
+
email: string;
|
|
13
|
+
/** Código de referido que se le asignó (paso 6). */
|
|
14
|
+
referralCode?: string;
|
|
15
|
+
/** Grupo que se le creó (paso 6). */
|
|
16
|
+
groupId?: string;
|
|
17
|
+
groupName?: string;
|
|
18
|
+
/** Estado del contrato en DocuSign (paso 4). */
|
|
19
|
+
contractStatus?: string;
|
|
20
|
+
/** ISO 8601. */
|
|
21
|
+
createdAt: string;
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './dtos/PromoterByDirectoryIdResponse';
|
|
@@ -0,0 +1,18 @@
|
|
|
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/PromoterByDirectoryIdResponse"), exports);
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -65,6 +65,7 @@ export * as Event from './event';
|
|
|
65
65
|
export * as NotificationWS from './notificationWS';
|
|
66
66
|
export * as ZendeskMessaging from './zendeskMessaging';
|
|
67
67
|
export * as ReferralBusiness from './referral-business';
|
|
68
|
+
export * as UsMarketGrowthBusiness from './usmarketgrowth-business';
|
|
68
69
|
export * as ComissionBusiness from './comission-business';
|
|
69
70
|
export * as Credit from './credit';
|
|
70
71
|
export * as CreditEngine from './creditEngine';
|
|
@@ -212,3 +213,6 @@ export * as DatalakeReports from './datalakeReports';
|
|
|
212
213
|
|
|
213
214
|
// PdfRender: DTOs del lambda pdf-render-business (plantilla HTML → PDF multitenant y su backoffice).
|
|
214
215
|
export * as PdfRender from './pdfRender';
|
|
216
|
+
|
|
217
|
+
// Rules: DTOs del lambda central rules-business (catálogo, validación, generación con IA y evaluación de reglas).
|
|
218
|
+
export * as Rules from './rules';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Máximo de sujetos por llamada a `POST /evaluate` (si no, 400 `TOO_MANY_SUBJECTS`). */
|
|
2
|
+
export const RULES_MAX_SUBJECTS_PER_CALL = 100;
|
|
3
|
+
/** Fuente especial: datos que el llamador manda en la llamada, no se resuelven ni se piden en `items`. */
|
|
4
|
+
export const RULES_INPUT_SOURCE = 'input';
|
|
5
|
+
/** Máximo de campos del contrato de `input`. */
|
|
6
|
+
export const RULES_MAX_INPUT_CONTRACT = 30;
|
|
7
|
+
/** Largo máximo (caracteres) del contenido de un turno del chat de `POST /generate`. */
|
|
8
|
+
export const RULES_CHAT_TURN_MAX_LENGTH = 4000;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Expose, Type } from 'class-transformer';
|
|
2
|
+
import { IsArray, IsISO8601, IsObject, IsOptional, IsString, ValidateNested } from 'class-validator';
|
|
3
|
+
import { JsonValue } from '../../common';
|
|
4
|
+
import { DynamicFormValue } from '../../dynamicForm/types/DynamicFormValue';
|
|
5
|
+
|
|
6
|
+
/** A quién se le evalúa la regla. */
|
|
7
|
+
export class RulesEvaluationSubject {
|
|
8
|
+
@Expose()
|
|
9
|
+
@IsString()
|
|
10
|
+
directoryId: string;
|
|
11
|
+
|
|
12
|
+
/** Otros participantes del evento: llegan al motor como `ctx.subjects[key] = { directoryId }`. */
|
|
13
|
+
@Expose()
|
|
14
|
+
@IsOptional()
|
|
15
|
+
@IsObject()
|
|
16
|
+
subjects?: Record<string, { directoryId: string }>;
|
|
17
|
+
|
|
18
|
+
/** Datos escalares del evento: forman la fuente `input`. */
|
|
19
|
+
@Expose()
|
|
20
|
+
@IsOptional()
|
|
21
|
+
@IsObject()
|
|
22
|
+
inputs?: Record<string, DynamicFormValue>;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export class RuleToEvaluate {
|
|
26
|
+
@Expose()
|
|
27
|
+
@IsString()
|
|
28
|
+
id: string;
|
|
29
|
+
|
|
30
|
+
/** La regla (`{ match, groups[] }`). */
|
|
31
|
+
@Expose()
|
|
32
|
+
@IsObject()
|
|
33
|
+
rule: { [key: string]: JsonValue };
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/** `POST /evaluate`. El límite de 100 sujetos lo valida el lambda (400 `TOO_MANY_SUBJECTS`), no el DTO. */
|
|
37
|
+
export class EvaluateRulesRequest {
|
|
38
|
+
/** Quién llama (solo logs y métricas). */
|
|
39
|
+
@Expose()
|
|
40
|
+
@IsOptional()
|
|
41
|
+
@IsString()
|
|
42
|
+
consumer?: string;
|
|
43
|
+
|
|
44
|
+
/** Ids de ítems del catálogo (`source:key`) que las reglas pueden usar. */
|
|
45
|
+
@Expose()
|
|
46
|
+
@IsArray()
|
|
47
|
+
@IsString({ each: true })
|
|
48
|
+
items: string[];
|
|
49
|
+
|
|
50
|
+
@Expose()
|
|
51
|
+
@IsArray()
|
|
52
|
+
@ValidateNested({ each: true })
|
|
53
|
+
@Type(() => RuleToEvaluate)
|
|
54
|
+
rules: RuleToEvaluate[];
|
|
55
|
+
|
|
56
|
+
@Expose()
|
|
57
|
+
@IsArray()
|
|
58
|
+
@ValidateNested({ each: true })
|
|
59
|
+
@Type(() => RulesEvaluationSubject)
|
|
60
|
+
subjects: RulesEvaluationSubject[];
|
|
61
|
+
|
|
62
|
+
/** Fecha ISO 8601; por defecto, el momento de la llamada. */
|
|
63
|
+
@Expose()
|
|
64
|
+
@IsOptional()
|
|
65
|
+
@IsISO8601()
|
|
66
|
+
referenceAt?: string;
|
|
67
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { RulesOutcomeEnum } from '../enums/RulesOutcomeEnum';
|
|
2
|
+
import { RulesTraceResponse } from './RulesTraceResponse';
|
|
3
|
+
|
|
4
|
+
/** Resultado de una regla para un sujeto. */
|
|
5
|
+
export class RuleEvaluationResult {
|
|
6
|
+
ruleId: string;
|
|
7
|
+
/** Posición del sujeto en `EvaluateRulesRequest.subjects`. */
|
|
8
|
+
subjectIndex: number;
|
|
9
|
+
directoryId: string;
|
|
10
|
+
outcome: RulesOutcomeEnum;
|
|
11
|
+
trace?: RulesTraceResponse;
|
|
12
|
+
/** Solo si `outcome` es `ERROR`. */
|
|
13
|
+
errorMessage?: string;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/** `POST /evaluate`: ordenado por regla y, dentro de cada regla, por `subjectIndex`. */
|
|
17
|
+
export class EvaluateRulesResponse {
|
|
18
|
+
results: RuleEvaluationResult[];
|
|
19
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Expose, Type } from 'class-transformer';
|
|
2
|
+
import { ArrayMaxSize, ArrayMinSize, IsArray, IsObject, IsOptional, IsString, ValidateNested } from 'class-validator';
|
|
3
|
+
import { JsonValue } from '../../common';
|
|
4
|
+
import { InputField } from '../../dynamicForm/dtos/InputField';
|
|
5
|
+
import { RULES_MAX_INPUT_CONTRACT } from '../constants/RulesLimits';
|
|
6
|
+
import { RulesChatMessage } from './RulesChatMessage';
|
|
7
|
+
|
|
8
|
+
/** `POST /generate`: el chat que genera una regla con IA sobre el catálogo de los ítems indicados. */
|
|
9
|
+
export class GenerateRulesRequest {
|
|
10
|
+
/** Quién llama (solo logs y métricas). */
|
|
11
|
+
@Expose()
|
|
12
|
+
@IsOptional()
|
|
13
|
+
@IsString()
|
|
14
|
+
consumer?: string;
|
|
15
|
+
|
|
16
|
+
/** Ids de ítems del catálogo (`source:key`) que la IA puede usar. */
|
|
17
|
+
@Expose()
|
|
18
|
+
@IsArray()
|
|
19
|
+
@IsString({ each: true })
|
|
20
|
+
items: string[];
|
|
21
|
+
|
|
22
|
+
/** Contrato de la fuente `input` (`InputField[]`, dominio `dynamicForm`). */
|
|
23
|
+
@Expose()
|
|
24
|
+
@IsOptional()
|
|
25
|
+
@IsArray()
|
|
26
|
+
@ArrayMaxSize(RULES_MAX_INPUT_CONTRACT)
|
|
27
|
+
@IsObject({ each: true })
|
|
28
|
+
inputContract?: InputField[];
|
|
29
|
+
|
|
30
|
+
/** Del turno más viejo al más nuevo; el último es del usuario. */
|
|
31
|
+
@Expose()
|
|
32
|
+
@IsArray()
|
|
33
|
+
@ArrayMinSize(1)
|
|
34
|
+
@ValidateNested({ each: true })
|
|
35
|
+
@Type(() => RulesChatMessage)
|
|
36
|
+
messages: RulesChatMessage[];
|
|
37
|
+
|
|
38
|
+
/** Contexto libre del llamador para el prompt. */
|
|
39
|
+
@Expose()
|
|
40
|
+
@IsOptional()
|
|
41
|
+
@IsString()
|
|
42
|
+
context?: string;
|
|
43
|
+
|
|
44
|
+
/** La regla que el editor tiene ahora, para refinarla. Ausente = regla nueva. */
|
|
45
|
+
@Expose()
|
|
46
|
+
@IsOptional()
|
|
47
|
+
@IsObject()
|
|
48
|
+
currentRule?: { [key: string]: JsonValue };
|
|
49
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { JsonValue } from '../../common';
|
|
2
|
+
import { RulesGenerationStatusEnum } from '../enums/RulesGenerationStatusEnum';
|
|
3
|
+
|
|
4
|
+
/** Resultado de `POST /generate`. `status: OK` con `rule: null` = la IA hizo una pregunta (sin regla). */
|
|
5
|
+
export class GenerateRulesResponse {
|
|
6
|
+
status: RulesGenerationStatusEnum;
|
|
7
|
+
rule: { [key: string]: JsonValue } | null;
|
|
8
|
+
explanation: string;
|
|
9
|
+
/** Problemas de validación (vacío salvo `FAILED`). */
|
|
10
|
+
errors: string[];
|
|
11
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { InputField } from '../../dynamicForm/dtos/InputField';
|
|
2
|
+
import { RulesValueTypeEnum } from '../enums/RulesValueTypeEnum';
|
|
3
|
+
|
|
4
|
+
/** Un campo que un ítem del catálogo resuelve para las reglas. */
|
|
5
|
+
export class RulesCatalogFieldResponse {
|
|
6
|
+
field: string;
|
|
7
|
+
label: string;
|
|
8
|
+
valueType: RulesValueTypeEnum;
|
|
9
|
+
/** Operadores válidos para este campo (`GT`, `LTE`, `IN`…). */
|
|
10
|
+
operators: string[];
|
|
11
|
+
/** Params del campo (ej. ventana y moneda de `sumAmount`), como formulario dinámico. */
|
|
12
|
+
params?: InputField[];
|
|
13
|
+
/** Valores posibles si es un enum (con qué significa cada uno, si se sabe). */
|
|
14
|
+
options?: { value: string; label: string; description?: string }[];
|
|
15
|
+
/** Qué es este campo, en una frase. */
|
|
16
|
+
description?: string;
|
|
17
|
+
/** Frases de ejemplo que típicamente piden este campo (ayuda del chat de IA). */
|
|
18
|
+
examplePhrases?: string[];
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/** Un ítem del catálogo: una fuente + una llave de búsqueda (`source:key`). */
|
|
22
|
+
export class RulesCatalogItemResponse {
|
|
23
|
+
id: string;
|
|
24
|
+
source: string;
|
|
25
|
+
key: string;
|
|
26
|
+
label: string;
|
|
27
|
+
description: string;
|
|
28
|
+
fields: RulesCatalogFieldResponse[];
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export class RulesCatalogResponse {
|
|
32
|
+
items: RulesCatalogItemResponse[];
|
|
33
|
+
/** Etiqueta legible de cada operador (`GTE` → «≥»). */
|
|
34
|
+
operators: Record<string, string>;
|
|
35
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Expose } from 'class-transformer';
|
|
2
|
+
import { IsEnum, IsNotEmpty, IsString, MaxLength } from 'class-validator';
|
|
3
|
+
import { RULES_CHAT_TURN_MAX_LENGTH } from '../constants/RulesLimits';
|
|
4
|
+
import { RulesChatRoleEnum } from '../enums/RulesChatRoleEnum';
|
|
5
|
+
|
|
6
|
+
/** Un turno del chat que genera reglas con IA. */
|
|
7
|
+
export class RulesChatMessage {
|
|
8
|
+
@Expose()
|
|
9
|
+
@IsEnum(RulesChatRoleEnum)
|
|
10
|
+
role: RulesChatRoleEnum;
|
|
11
|
+
|
|
12
|
+
@Expose()
|
|
13
|
+
@IsString()
|
|
14
|
+
@IsNotEmpty()
|
|
15
|
+
@MaxLength(RULES_CHAT_TURN_MAX_LENGTH)
|
|
16
|
+
content: string;
|
|
17
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { JsonValue } from '../../common';
|
|
2
|
+
import { RulesOutcomeEnum } from '../enums/RulesOutcomeEnum';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Una condición evaluada: qué se esperaba y qué se encontró.
|
|
6
|
+
* Sin `origin`/`asOf`: el central no sabe de dónde salió el dato; el consumidor (rewards) los agrega.
|
|
7
|
+
*/
|
|
8
|
+
export class RulesTraceConditionResponse {
|
|
9
|
+
source: string;
|
|
10
|
+
subject?: string;
|
|
11
|
+
field: string;
|
|
12
|
+
params?: Record<string, string | number | boolean>;
|
|
13
|
+
op: string;
|
|
14
|
+
expected: JsonValue;
|
|
15
|
+
actual?: JsonValue;
|
|
16
|
+
outcome: RulesOutcomeEnum;
|
|
17
|
+
/** Solo si `outcome` es `ERROR`. */
|
|
18
|
+
error?: { code: string; message: string };
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export class RulesTraceGroupResponse {
|
|
22
|
+
match: 'ALL' | 'ANY';
|
|
23
|
+
outcome: RulesOutcomeEnum;
|
|
24
|
+
conditions: RulesTraceConditionResponse[];
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/** Traza completa de una evaluación: por qué cumplió o no. */
|
|
28
|
+
export class RulesTraceResponse {
|
|
29
|
+
match: 'ALL' | 'ANY';
|
|
30
|
+
outcome: RulesOutcomeEnum;
|
|
31
|
+
groups: RulesTraceGroupResponse[];
|
|
32
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Expose } from 'class-transformer';
|
|
2
|
+
import { ArrayMaxSize, IsArray, IsObject, IsOptional, IsString } from 'class-validator';
|
|
3
|
+
import { JsonValue } from '../../common';
|
|
4
|
+
import { InputField } from '../../dynamicForm/dtos/InputField';
|
|
5
|
+
import { RULES_MAX_INPUT_CONTRACT } from '../constants/RulesLimits';
|
|
6
|
+
|
|
7
|
+
/** `POST /validate`: valida una regla guardada contra el catálogo de los ítems indicados y el contrato de `input`. */
|
|
8
|
+
export class ValidateRulesRequest {
|
|
9
|
+
/** Quién llama (solo logs y métricas). */
|
|
10
|
+
@Expose()
|
|
11
|
+
@IsOptional()
|
|
12
|
+
@IsString()
|
|
13
|
+
consumer?: string;
|
|
14
|
+
|
|
15
|
+
/** Ids de ítems del catálogo (`source:key`) contra los que se valida. */
|
|
16
|
+
@Expose()
|
|
17
|
+
@IsArray()
|
|
18
|
+
@IsString({ each: true })
|
|
19
|
+
items: string[];
|
|
20
|
+
|
|
21
|
+
/** La regla (`{ match, groups[] }`). */
|
|
22
|
+
@Expose()
|
|
23
|
+
@IsObject()
|
|
24
|
+
rule: { [key: string]: JsonValue };
|
|
25
|
+
|
|
26
|
+
/** Contrato de la fuente `input` (`InputField[]`, dominio `dynamicForm`). */
|
|
27
|
+
@Expose()
|
|
28
|
+
@IsOptional()
|
|
29
|
+
@IsArray()
|
|
30
|
+
@ArrayMaxSize(RULES_MAX_INPUT_CONTRACT)
|
|
31
|
+
@IsObject({ each: true })
|
|
32
|
+
inputContract?: InputField[];
|
|
33
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Códigos de error 400 del lambda central de reglas. */
|
|
2
|
+
export enum RulesErrorCodeEnum {
|
|
3
|
+
UNKNOWN_CATALOG_ITEM = 'UNKNOWN_CATALOG_ITEM',
|
|
4
|
+
DUPLICATE_SOURCE_IN_ITEMS = 'DUPLICATE_SOURCE_IN_ITEMS',
|
|
5
|
+
TOO_MANY_SUBJECTS = 'TOO_MANY_SUBJECTS',
|
|
6
|
+
VALIDATION_ERROR = 'VALIDATION_ERROR',
|
|
7
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Tipo de valor de un campo del catálogo de reglas (`GET /catalog`). */
|
|
2
|
+
export enum RulesValueTypeEnum {
|
|
3
|
+
NUMBER = 'NUMBER',
|
|
4
|
+
STRING = 'STRING',
|
|
5
|
+
BOOLEAN = 'BOOLEAN',
|
|
6
|
+
DATE = 'DATE',
|
|
7
|
+
/** Lista de textos (ej. `directory.scope`). */
|
|
8
|
+
STRING_LIST = 'STRING_LIST',
|
|
9
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
//Enums
|
|
2
|
+
export * from './enums/RulesOutcomeEnum';
|
|
3
|
+
export * from './enums/RulesGenerationStatusEnum';
|
|
4
|
+
export * from './enums/RulesChatRoleEnum';
|
|
5
|
+
export * from './enums/RulesValueTypeEnum';
|
|
6
|
+
export * from './enums/RulesErrorCodeEnum';
|
|
7
|
+
|
|
8
|
+
//Constants
|
|
9
|
+
export * from './constants/RulesLimits';
|
|
10
|
+
|
|
11
|
+
//DTOs
|
|
12
|
+
export * from './dtos/RulesCatalogResponse';
|
|
13
|
+
export * from './dtos/ValidateRulesRequest';
|
|
14
|
+
export * from './dtos/ValidateRulesResponse';
|
|
15
|
+
export * from './dtos/RulesChatMessage';
|
|
16
|
+
export * from './dtos/GenerateRulesRequest';
|
|
17
|
+
export * from './dtos/GenerateRulesResponse';
|
|
18
|
+
export * from './dtos/RulesTraceResponse';
|
|
19
|
+
export * from './dtos/EvaluateRulesRequest';
|
|
20
|
+
export * from './dtos/EvaluateRulesResponse';
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Promotor de US Market Growth ligado a un directorio. Respuesta del privado
|
|
3
|
+
* `GET /private/promoters/directoryId/{directoryId}` de `usmarketgrowth-business` (DEC-053).
|
|
4
|
+
*
|
|
5
|
+
* Si el directorio no es de un promotor, el endpoint responde 404 `PROMOTER_NOT_FOUND`.
|
|
6
|
+
*/
|
|
7
|
+
export interface PromoterByDirectoryIdResponse {
|
|
8
|
+
promoterId: string;
|
|
9
|
+
directoryId: string;
|
|
10
|
+
name: string;
|
|
11
|
+
phoneNumber: string;
|
|
12
|
+
email: string;
|
|
13
|
+
/** Código de referido que se le asignó (paso 6). */
|
|
14
|
+
referralCode?: string;
|
|
15
|
+
/** Grupo que se le creó (paso 6). */
|
|
16
|
+
groupId?: string;
|
|
17
|
+
groupName?: string;
|
|
18
|
+
/** Estado del contrato en DocuSign (paso 4). */
|
|
19
|
+
contractStatus?: string;
|
|
20
|
+
/** ISO 8601. */
|
|
21
|
+
createdAt: string;
|
|
22
|
+
}
|