@devizovaburza/mdm-sdk 0.0.13 → 0.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/v1/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { hc } from 'hono/client';
2
2
  import { z as z$3, createRoute, OpenAPIHono } from '@hono/zod-openapi';
3
- import { COUNTRY_CODES_2, CURRENCY_CODES, BANK_CODES, LANGUAGE_CODES } from '@develit-io/general-codes';
3
+ import { COUNTRY_CODES_2, CURRENCY_CODES, BANK_CODES, LANGUAGE_CODES, CZ_TRADE_LICENSE_CODES, CZ_NACE_CODES } from '@develit-io/general-codes';
4
4
  import { z as z$1 } from 'zod/v4';
5
5
  import { z as z$2 } from 'zod';
6
6
  import * as z from 'zod/v4/core';
@@ -14,31 +14,31 @@ const createMdmClient = (baseUrl, options) => {
14
14
  return hc(baseUrl, options);
15
15
  };
16
16
 
17
- const AddressTypeZod$1 = [
17
+ const ADDRESS_TYPE$1 = [
18
18
  "PERMANENT_ADDRESS",
19
19
  "REGISTERED_OFFICE",
20
20
  "CONTACT_ADDRESS"
21
21
  ];
22
- const ContactTypeZod$1 = [
22
+ const CONTACT_TYPE$1 = [
23
23
  "EMAIL",
24
24
  "PHONE_AUTH",
25
25
  "PHONE_CONTACT",
26
26
  "PHONE_WORK"
27
27
  ];
28
- const IdDocTypeZod$1 = ["PASSPORT", "ID", "DRIVING_LICENSE"];
29
- const IdDocStatusZod$1 = [
28
+ const ID_DOC_TYPE$1 = ["PASSPORT", "ID", "DRIVING_LICENSE"];
29
+ const ID_DOC_STATUS$1 = [
30
30
  "ACTIVE",
31
31
  "EXPIRED",
32
32
  "EXPIRE_SOON",
33
33
  "REVOKED"
34
34
  ];
35
- const PartyRelationshipTypeZod$1 = [
35
+ const PARTY_RELATIONSHIP_TYPE$1 = [
36
36
  "AUTHORIZED_SIGNATORY",
37
37
  "POA_HOLDER",
38
38
  "BOARD_MEMBER",
39
39
  "UBO"
40
40
  ];
41
- const CustomerStatusZod$1 = [
41
+ const CUSTOMER_STATUS$1 = [
42
42
  // 'LEAD',
43
43
  "NEW",
44
44
  "ACTIVE",
@@ -47,7 +47,7 @@ const CustomerStatusZod$1 = [
47
47
  // 'FORMER',
48
48
  // 'DECEASED',
49
49
  ];
50
- const ClientStatusActionZod = [
50
+ const CLIENT_STATUS_ACTION = [
51
51
  "ON_CUSTOMER_FORM_COMPLETED",
52
52
  "ON_MANUAL_KYC_VERIFICATION_COMPLETED",
53
53
  "ON_MANUAL_RISK_ASSESSMENT_COMPLETED",
@@ -55,12 +55,12 @@ const ClientStatusActionZod = [
55
55
  "ON_CLOSE_CLIENT",
56
56
  "ON_UNBLOCK_CLIENT"
57
57
  ];
58
- const PartyTypeZod$1 = [
58
+ const PARTY_TYPE$1 = [
59
59
  "INDIVIDUAL",
60
60
  "SELF_EMPLOYED",
61
61
  "ORGANIZATION"
62
62
  ];
63
- const AmlScoreTypeZod$1 = [
63
+ const AML_SCORE_TYPE$1 = [
64
64
  "LOW",
65
65
  "MEDIUM",
66
66
  "HIGH",
@@ -68,44 +68,132 @@ const AmlScoreTypeZod$1 = [
68
68
  "UNVERIFIED",
69
69
  "UNCLASSIFIED"
70
70
  ];
71
- const IdentificationTypeZod = [
71
+ const IDENTIFICATION_TYPE = [
72
72
  "FACE_TO_FACE",
73
73
  "REMOTE_IDENTIFICATION"
74
74
  ];
75
- const GenderZod$1 = ["M", "F", "OTHER"];
76
- const KycStatusZod$1 = [
75
+ const GENDER$1 = ["M", "F", "OTHER"];
76
+ const KYC_STATUS$1 = [
77
77
  "NOT_APPROVED",
78
78
  "VERIFIED",
79
79
  "UNVERIFIED",
80
80
  "REJECTED"
81
81
  ];
82
82
  const TRADER_TYPE$1 = ["PERSON", "COMPANY", "OSVC"];
83
+ const PRODUCT_TYPE$1 = ["TXS", "CBS"];
84
+ const TXS_CLIENT_TYPE$1 = ["CLIENT", "PROVIDER"];
85
+ const TRADING_SIDE$1 = ["SELL", "BUY", "BOTH"];
86
+ const EST_TXS_VOLUME_MONTH$1 = ["UP_TO_1M", "1M_TO_5M", "OVER_5M"];
87
+ const EST_TXS_VOLUME_YEAR$1 = [
88
+ "LESS_THAN_12M",
89
+ "12M_TO_50M",
90
+ "OVER_50M"
91
+ ];
92
+ const TARGET_COUNTRY$1 = ["CZ", "EU", "OUTSIDE_EU"];
93
+ const TAX_DOMICILE$1 = ["CZ", "EU", "US", "OTHER"];
94
+ const MONTHLY_INCOME_RANGE$1 = [
95
+ "UP_TO_40K",
96
+ "40K_TO_80K",
97
+ "OVER_80K"
98
+ ];
99
+ const COMPANY_TURNOVER_RANGE$1 = [
100
+ "LESS_THAN_50M",
101
+ "50M_TO_100M",
102
+ "OVER_100M"
103
+ ];
104
+ const YEARLY_INCOME$1 = [
105
+ ...MONTHLY_INCOME_RANGE$1,
106
+ ...COMPANY_TURNOVER_RANGE$1
107
+ ];
108
+ const INCOME_SOURCE$1 = [
109
+ "EMPLOYMENT",
110
+ "PENSION",
111
+ "SAVINGS",
112
+ "INHERITANCE",
113
+ "INVESTMENTS",
114
+ "HOUSE_SALE",
115
+ "CAR_SALE",
116
+ "AUCTION_SALE",
117
+ "OTHER"
118
+ ];
119
+ const FINANCIAL_FUNDS_SOURCE$1 = [
120
+ "BUSINESS_REVENUE",
121
+ "INVESTMENTS",
122
+ "LOAN",
123
+ "OTHER"
124
+ ];
125
+ const SERVICE_PURPOSE_FO$1 = [
126
+ "PURCHASE_OF_GOODS_AND_SERVICES",
127
+ "INVESTMENTS",
128
+ "OTHER"
129
+ ];
130
+ const SERVICE_PURPOSE_COMPANY$1 = [
131
+ "PAYMENTS_TO_CUSTOMERS",
132
+ "PAYMENTS_TO_SUPPLIERS",
133
+ "FOREIGN_INVESTMENTS",
134
+ "OTHER"
135
+ ];
136
+ const SERVICE_PURPOSE$1 = [
137
+ ...SERVICE_PURPOSE_FO$1,
138
+ ...SERVICE_PURPOSE_COMPANY$1
139
+ ];
140
+ const OPERATING_COUNTRY$1 = ["CZ", "EU", "OUTSIDE_EU"];
141
+ const YES_NO_UNKNOWN = ["YES", "NO", "UNKNOWN"];
142
+ const SIGNATURE_METHOD$1 = [
143
+ "IN_PERSON",
144
+ "REMOTE",
145
+ "COURIER",
146
+ "POWER_OF_ATTORNEY"
147
+ ];
148
+ const EXISTENCE_PERIOD$1 = [
149
+ "OVER_24_MONTHS",
150
+ "OVER_16_MONTHS",
151
+ "LESS_THAN_12_MONTHS",
152
+ "LESS_THAN_6_MONTHS"
153
+ ];
154
+ const REPUTATION$1 = [
155
+ "NO_NEGATIVE_RECORDS",
156
+ "BUSINESS_INCREASES_RISK",
157
+ "NEGATIVE_RECORDS",
158
+ "SANCTIONS_LIST_HIT"
159
+ ];
160
+ const RISK_BUSINESS_AREA$1 = [
161
+ "PAWN_SHOPS",
162
+ "USED_CAR_DEALERS",
163
+ "CASINOS",
164
+ "REAL_ESTATE_AGENCIES",
165
+ "PRECIOUS_METALS_AND_GEMS",
166
+ "WEAPONS_AND_AMMUNITION",
167
+ "NON_BANK_CREDIT_INSTITUTIONS",
168
+ "CURRENCY_EXCHANGE",
169
+ "VIRTUAL_ASSET_SERVICES"
170
+ ];
83
171
 
84
- const AddressTypeZod = [
172
+ const ADDRESS_TYPE = [
85
173
  "PERMANENT_ADDRESS",
86
174
  "REGISTERED_OFFICE",
87
175
  "CONTACT_ADDRESS"
88
176
  ];
89
- const ContactTypeZod = [
177
+ const CONTACT_TYPE = [
90
178
  "EMAIL",
91
179
  "PHONE_AUTH",
92
180
  "PHONE_CONTACT",
93
181
  "PHONE_WORK"
94
182
  ];
95
- const IdDocTypeZod = ["PASSPORT", "ID", "DRIVING_LICENSE"];
96
- const IdDocStatusZod = [
183
+ const ID_DOC_TYPE = ["PASSPORT", "ID", "DRIVING_LICENSE"];
184
+ const ID_DOC_STATUS = [
97
185
  "ACTIVE",
98
186
  "EXPIRED",
99
187
  "EXPIRE_SOON",
100
188
  "REVOKED"
101
189
  ];
102
- const PartyRelationshipTypeZod = [
190
+ const PARTY_RELATIONSHIP_TYPE = [
103
191
  "AUTHORIZED_SIGNATORY",
104
192
  "POA_HOLDER",
105
193
  "BOARD_MEMBER",
106
194
  "UBO"
107
195
  ];
108
- const CustomerStatusZod = [
196
+ const CUSTOMER_STATUS = [
109
197
  // 'LEAD',
110
198
  "NEW",
111
199
  "ACTIVE",
@@ -114,12 +202,12 @@ const CustomerStatusZod = [
114
202
  // 'FORMER',
115
203
  // 'DECEASED',
116
204
  ];
117
- const PartyTypeZod = [
205
+ const PARTY_TYPE = [
118
206
  "INDIVIDUAL",
119
207
  "SELF_EMPLOYED",
120
208
  "ORGANIZATION"
121
209
  ];
122
- const AmlScoreTypeZod = [
210
+ const AML_SCORE_TYPE = [
123
211
  "LOW",
124
212
  "MEDIUM",
125
213
  "HIGH",
@@ -127,14 +215,100 @@ const AmlScoreTypeZod = [
127
215
  "UNVERIFIED",
128
216
  "UNCLASSIFIED"
129
217
  ];
130
- const GenderZod = ["M", "F", "OTHER"];
131
- const KycStatusZod = [
218
+ const GENDER = ["M", "F", "OTHER"];
219
+ const KYC_STATUS = [
132
220
  "NOT_APPROVED",
133
221
  "VERIFIED",
134
222
  "UNVERIFIED",
135
223
  "REJECTED"
136
224
  ];
137
225
  const TRADER_TYPE = ["PERSON", "COMPANY", "OSVC"];
226
+ const PRODUCT_TYPE = ["TXS", "CBS"];
227
+ const TRADING_SIDE = ["SELL", "BUY", "BOTH"];
228
+ const EST_TXS_VOLUME_MONTH = ["UP_TO_1M", "1M_TO_5M", "OVER_5M"];
229
+ const EST_TXS_VOLUME_YEAR = [
230
+ "LESS_THAN_12M",
231
+ "12M_TO_50M",
232
+ "OVER_50M"
233
+ ];
234
+ const TARGET_COUNTRY = ["CZ", "EU", "OUTSIDE_EU"];
235
+ const TAX_DOMICILE = ["CZ", "EU", "US", "OTHER"];
236
+ const MONTHLY_INCOME_RANGE = [
237
+ "UP_TO_40K",
238
+ "40K_TO_80K",
239
+ "OVER_80K"
240
+ ];
241
+ const COMPANY_TURNOVER_RANGE = [
242
+ "LESS_THAN_50M",
243
+ "50M_TO_100M",
244
+ "OVER_100M"
245
+ ];
246
+ const YEARLY_INCOME = [
247
+ ...MONTHLY_INCOME_RANGE,
248
+ ...COMPANY_TURNOVER_RANGE
249
+ ];
250
+ const INCOME_SOURCE = [
251
+ "EMPLOYMENT",
252
+ "PENSION",
253
+ "SAVINGS",
254
+ "INHERITANCE",
255
+ "INVESTMENTS",
256
+ "HOUSE_SALE",
257
+ "CAR_SALE",
258
+ "AUCTION_SALE",
259
+ "OTHER"
260
+ ];
261
+ const FINANCIAL_FUNDS_SOURCE = [
262
+ "BUSINESS_REVENUE",
263
+ "INVESTMENTS",
264
+ "LOAN",
265
+ "OTHER"
266
+ ];
267
+ const SERVICE_PURPOSE_FO = [
268
+ "PURCHASE_OF_GOODS_AND_SERVICES",
269
+ "INVESTMENTS",
270
+ "OTHER"
271
+ ];
272
+ const SERVICE_PURPOSE_COMPANY = [
273
+ "PAYMENTS_TO_CUSTOMERS",
274
+ "PAYMENTS_TO_SUPPLIERS",
275
+ "FOREIGN_INVESTMENTS",
276
+ "OTHER"
277
+ ];
278
+ const SERVICE_PURPOSE = [
279
+ ...SERVICE_PURPOSE_FO,
280
+ ...SERVICE_PURPOSE_COMPANY
281
+ ];
282
+ const OPERATING_COUNTRY = ["CZ", "EU", "OUTSIDE_EU"];
283
+ const SIGNATURE_METHOD = [
284
+ "IN_PERSON",
285
+ "REMOTE",
286
+ "COURIER",
287
+ "POWER_OF_ATTORNEY"
288
+ ];
289
+ const EXISTENCE_PERIOD = [
290
+ "OVER_24_MONTHS",
291
+ "OVER_16_MONTHS",
292
+ "LESS_THAN_12_MONTHS",
293
+ "LESS_THAN_6_MONTHS"
294
+ ];
295
+ const REPUTATION = [
296
+ "NO_NEGATIVE_RECORDS",
297
+ "BUSINESS_INCREASES_RISK",
298
+ "NEGATIVE_RECORDS",
299
+ "SANCTIONS_LIST_HIT"
300
+ ];
301
+ const RISK_BUSINESS_AREA = [
302
+ "PAWN_SHOPS",
303
+ "USED_CAR_DEALERS",
304
+ "CASINOS",
305
+ "REAL_ESTATE_AGENCIES",
306
+ "PRECIOUS_METALS_AND_GEMS",
307
+ "WEAPONS_AND_AMMUNITION",
308
+ "NON_BANK_CREDIT_INSTITUTIONS",
309
+ "CURRENCY_EXCHANGE",
310
+ "VIRTUAL_ASSET_SERVICES"
311
+ ];
138
312
 
139
313
  const entityKind = Symbol.for("drizzle:entityKind");
140
314
  function is(value, type) {
@@ -1338,12 +1512,60 @@ function sqliteTableBase(name, columns, extraConfig, schema, baseName = name) {
1338
1512
  const table = Object.assign(rawTable, builtColumns);
1339
1513
  table[Table.Symbol.Columns] = builtColumns;
1340
1514
  table[Table.Symbol.ExtraConfigColumns] = builtColumns;
1515
+ if (extraConfig) {
1516
+ table[SQLiteTable.Symbol.ExtraConfigBuilder] = extraConfig;
1517
+ }
1341
1518
  return table;
1342
1519
  }
1343
1520
  const sqliteTable = (name, columns, extraConfig) => {
1344
- return sqliteTableBase(name, columns);
1521
+ return sqliteTableBase(name, columns, extraConfig);
1345
1522
  };
1346
1523
 
1524
+ class IndexBuilderOn {
1525
+ constructor(name, unique) {
1526
+ this.name = name;
1527
+ this.unique = unique;
1528
+ }
1529
+ static [entityKind] = "SQLiteIndexBuilderOn";
1530
+ on(...columns) {
1531
+ return new IndexBuilder(this.name, columns, this.unique);
1532
+ }
1533
+ }
1534
+ class IndexBuilder {
1535
+ static [entityKind] = "SQLiteIndexBuilder";
1536
+ /** @internal */
1537
+ config;
1538
+ constructor(name, columns, unique) {
1539
+ this.config = {
1540
+ name,
1541
+ columns,
1542
+ unique,
1543
+ where: void 0
1544
+ };
1545
+ }
1546
+ /**
1547
+ * Condition for partial index.
1548
+ */
1549
+ where(condition) {
1550
+ this.config.where = condition;
1551
+ return this;
1552
+ }
1553
+ /** @internal */
1554
+ build(table) {
1555
+ return new Index(this.config, table);
1556
+ }
1557
+ }
1558
+ class Index {
1559
+ static [entityKind] = "SQLiteIndex";
1560
+ config;
1561
+ constructor(config, table) {
1562
+ this.config = { ...config, table };
1563
+ }
1564
+ }
1565
+ function uniqueIndex(name) {
1566
+ return new IndexBuilderOn(name, true);
1567
+ }
1568
+
1347
1569
  const CONSTANTS = {
1348
1570
  INT8_MIN: -128,
1349
1571
  INT8_MAX: 127,
@@ -1640,15 +1862,15 @@ const createSelectSchema = (entity, refine) => {
1640
1862
  return handleEnum(entity);
1641
1863
  }
1642
1864
  const columns = getColumns(entity);
1643
- return handleColumns(columns, {}, selectConditions);
1865
+ return handleColumns(columns, refine ?? {}, selectConditions);
1644
1866
  };
1645
1867
  const createInsertSchema = (entity, refine) => {
1646
1868
  const columns = getColumns(entity);
1647
- return handleColumns(columns, {}, insertConditions);
1869
+ return handleColumns(columns, refine ?? {}, insertConditions);
1648
1870
  };
1649
1871
  const createUpdateSchema = (entity, refine) => {
1650
1872
  const columns = getColumns(entity);
1651
- return handleColumns(columns, {}, updateConditions);
1873
+ return handleColumns(columns, refine ?? {}, updateConditions);
1652
1874
  };
1653
1875
 
1654
1876
  var esprima$1 = {exports: {}};
@@ -12267,9 +12489,9 @@ const party = sqliteTable("party", {
12267
12489
  internalId: text("internal_id"),
12268
12490
  note: text("note"),
12269
12491
  customerStatus: text("customer_status", {
12270
- enum: CustomerStatusZod
12492
+ enum: CUSTOMER_STATUS
12271
12493
  }).notNull(),
12272
- partyType: text("party_type", { enum: PartyTypeZod }).notNull(),
12494
+ partyType: text("party_type", { enum: PARTY_TYPE }).notNull(),
12273
12495
  language: text("language", { enum: LANGUAGE_CODES }).notNull(),
12274
12496
  countryCode: text("country_code", { enum: COUNTRY_CODES_2 }),
12275
12497
  isClient: integer("is_client", { mode: "boolean" }).notNull().default(false),
@@ -12281,7 +12503,7 @@ const address = sqliteTable("address", {
12281
12503
  internalId: text("internal_id"),
12282
12504
  partyId: text("party_id").notNull().references(() => party.id),
12283
12505
  ruianCode: text("ruian_code"),
12284
- addressType: text("address_type", { enum: AddressTypeZod }).notNull(),
12506
+ addressType: text("address_type", { enum: ADDRESS_TYPE }).notNull(),
12285
12507
  street: text("street"),
12286
12508
  orientationNumber: text("orientation_number"),
12287
12509
  descriptiveNumber: text("descriptive_number"),
@@ -12297,7 +12519,7 @@ const contact = sqliteTable("contact", {
12297
12519
  ...base,
12298
12520
  internalId: text("internal_id"),
12299
12521
  partyId: text("party_id").notNull().references(() => party.id),
12300
- contactType: text("contact_type", { enum: ContactTypeZod }),
12522
+ contactType: text("contact_type", { enum: CONTACT_TYPE }),
12301
12523
  email: text("email").notNull(),
12302
12524
  phoneNumber: text("phone_number").notNull()
12303
12525
  });
@@ -12306,7 +12528,7 @@ const idDocument = sqliteTable("id_document", {
12306
12528
  ...base,
12307
12529
  internalId: text("internal_id"),
12308
12530
  partyId: text("party_id").notNull().references(() => party.id),
12309
- idDocType: text("id_doc_type", { enum: IdDocTypeZod }).notNull(),
12531
+ idDocType: text("id_doc_type", { enum: ID_DOC_TYPE }).notNull(),
12310
12532
  idDocNumber: text("id_doc_number").notNull(),
12311
12533
  idDocHolderName: text("id_doc_holder_name").notNull(),
12312
12534
  issueDate: integer("issue_date", { mode: "timestamp_ms" }),
@@ -12315,7 +12537,7 @@ const idDocument = sqliteTable("id_document", {
12315
12537
  countryOfIssue: text("country_of_issue", { enum: COUNTRY_CODES_2 }),
12316
12538
  frontImageUri: text("front_image_uri"),
12317
12539
  backImageUri: text("back_image_uri"),
12318
- idDocStatus: text("id_doc_status", { enum: IdDocStatusZod })
12540
+ idDocStatus: text("id_doc_status", { enum: ID_DOC_STATUS })
12319
12541
  });
12320
12542
 
12321
12543
  const individual = sqliteTable("individual", {
@@ -12330,7 +12552,7 @@ const individual = sqliteTable("individual", {
12330
12552
  birthPlace: text("birth_place").notNull(),
12331
12553
  countryOfBirth: text("country_of_birth", { enum: COUNTRY_CODES_2 }),
12332
12554
  personalId: text("personal_id").notNull(),
12333
- gender: text("gender", { enum: GenderZod }).notNull(),
12555
+ gender: text("gender", { enum: GENDER }).notNull(),
12334
12556
  citizenship: text("citizenship", { enum: COUNTRY_CODES_2 }).notNull(),
12335
12557
  citizenshipOther: text("citizenship_other", { enum: COUNTRY_CODES_2 }),
12336
12558
  employer: text("employer"),
@@ -12365,8 +12587,7 @@ const organization = sqliteTable("organization", {
12365
12587
  monthlyVolumeOut: integer("monthly_volume_out").notNull(),
12366
12588
  ownedBy: text("owned_by").notNull(),
12367
12589
  // UBO, skutecny majitel, podle Marianovy tabulky by toto mela byt mozna relace na party
12368
- companyObjects: text("company_objects").notNull(),
12369
- // predmet cinnosti
12590
+ companyObjects: text("company_objects", { mode: "json" }).$type().notNull(),
12370
12591
  companyObjectsDescription: text("company_objects_description").notNull(),
12371
12592
  turnover3years: integer("turnover_3_years").notNull(),
12372
12593
  operationCountries: text("operation_countries").notNull(),
@@ -12391,7 +12612,7 @@ const partyRelationship = sqliteTable("party_relationship", {
12391
12612
  ...base,
12392
12613
  internalId: text("internal_id"),
12393
12614
  relationshipType: text("relationship_type", {
12394
- enum: PartyRelationshipTypeZod
12615
+ enum: PARTY_RELATIONSHIP_TYPE
12395
12616
  }),
12396
12617
  fromPartyId: text("from_party_id").references(() => party.id),
12397
12618
  toPartyId: text("to_party_id").references(() => party.id),
@@ -12436,27 +12657,38 @@ const aml = sqliteTable("aml", {
12436
12657
  ...base,
12437
12658
  internalId: text("internal_id"),
12438
12659
  partyId: text("party_id").notNull().unique().references(() => party.id),
12439
- sourceOfWealth: text("source_of_wealth").notNull(),
12440
- yearlyIncome: text("yearly_income").notNull(),
12441
- tradesPurpose: text("trades_purpose"),
12442
- sourceOfIncome: text("source_of_income").notNull(),
12660
+ sourceOfWealth: text("source_of_wealth", { mode: "json" }).$type().notNull(),
12661
+ yearlyIncome: text("yearly_income", { enum: YEARLY_INCOME }).notNull(),
12662
+ sourceOfIncome: text("source_of_income", { mode: "json" }).$type().notNull(),
12663
+ servicePurposes: text("service_purposes", { mode: "json" }).$type(),
12664
+ taxDomicile: text("tax_domicile", { enum: TAX_DOMICILE }),
12665
+ taxDomicileCountry: text("tax_domicile_country", { enum: COUNTRY_CODES_2 }),
12443
12666
  transactionType: text("transaction_type"),
12444
12667
  transactionTypeExpiry: integer("transaction_type_expiry", {
12445
12668
  mode: "timestamp_ms"
12446
12669
  }),
12447
- estTxsVolumeMonth: text("est_txs_volume_month").notNull(),
12448
- estTxsVolumeYear: text("est_txs_volume_year").notNull(),
12449
- tradingCountries: text("trading_countries").notNull(),
12450
- tradingSide: text("trading_side").notNull(),
12670
+ estTxsVolumeMonth: text("est_txs_volume_month", {
12671
+ enum: EST_TXS_VOLUME_MONTH
12672
+ }).notNull(),
12673
+ estTxsVolumeYear: text("est_txs_volume_year", {
12674
+ enum: EST_TXS_VOLUME_YEAR
12675
+ }).notNull(),
12676
+ estTxsCountMonth: integer("est_txs_count_month"),
12677
+ tradingCountries: text("trading_countries", { mode: "json" }).$type().notNull(),
12678
+ tradingCountriesOther: text("trading_countries_other", {
12679
+ mode: "json"
12680
+ }).$type(),
12681
+ tradingSide: text("trading_side", { enum: TRADING_SIDE }).notNull(),
12451
12682
  acceptedAMLTermsAndConditions: integer("accepted_aml_terms_and_conditions", {
12452
12683
  mode: "boolean"
12453
12684
  }).notNull(),
12454
- signatureMethod: text("signature_method"),
12455
- existencePeriod: text("existence_period"),
12456
- reputation: text("reputation"),
12685
+ signatureMethod: text("signature_method", { enum: SIGNATURE_METHOD }),
12686
+ existencePeriod: text("existence_period", { enum: EXISTENCE_PERIOD }),
12687
+ reputation: text("reputation", { enum: REPUTATION }),
12688
+ riskBusinessAreas: text("risk_business_areas", { mode: "json" }).$type(),
12457
12689
  isDistraint: integer("is_distraint", { mode: "boolean" }).notNull().default(false),
12458
- riskLevel: text("risk_level", { enum: AmlScoreTypeZod }).notNull(),
12459
- kycStatus: text("kyc_status", { enum: KycStatusZod })
12690
+ riskLevel: text("risk_level", { enum: AML_SCORE_TYPE }).notNull(),
12691
+ kycStatus: text("kyc_status", { enum: KYC_STATUS })
12460
12692
  });
12461
12693
 
12462
12694
  const recipient = sqliteTable("recipient", {
@@ -12487,8 +12719,26 @@ sqliteTable("trader_client", {
12487
12719
  legacyId: text("legacy_id")
12488
12720
  });
12489
12721
 
12722
+ const partyProduct = sqliteTable(
12723
+ "party_product",
12724
+ {
12725
+ ...base,
12726
+ partyId: text("party_id").notNull().references(() => party.id),
12727
+ product: text("product", { enum: PRODUCT_TYPE }).notNull(),
12728
+ config: text("config", { mode: "json" }).$type()
12729
+ },
12730
+ (table) => [
12731
+ uniqueIndex("party_product_party_id_product_unique").on(
12732
+ table.partyId,
12733
+ table.product
12734
+ )
12735
+ ]
12736
+ );
12737
+
12490
12738
  sqliteTable("base", baseMdmSqlite);
12491
12739
 
12740
+ const TXS_CLIENT_TYPE = ["CLIENT", "PROVIDER"];
12741
+
12492
12742
  createInsertSchema(address);
12493
12743
  createUpdateSchema(address);
12494
12744
  createSelectSchema(address);
@@ -12497,7 +12747,7 @@ const addressInsertSchema = z$3.object({
12497
12747
  partyId: z$3.uuid(),
12498
12748
  internalId: z$3.string().optional().nullable(),
12499
12749
  ruianCode: z$3.string().optional().nullable(),
12500
- addressType: z$3.enum(AddressTypeZod),
12750
+ addressType: z$3.enum(ADDRESS_TYPE),
12501
12751
  street: z$3.string().optional().nullable(),
12502
12752
  orientationNumber: z$3.string().optional().nullable(),
12503
12753
  descriptiveNumber: z$3.string().optional().nullable(),
@@ -12513,7 +12763,7 @@ const addressUpdateSchema = z$3.object({
12513
12763
  partyId: z$3.uuid().optional(),
12514
12764
  internalId: z$3.string().optional().nullable(),
12515
12765
  ruianCode: z$3.string().optional().nullable(),
12516
- addressType: z$3.enum(AddressTypeZod).optional(),
12766
+ addressType: z$3.enum(ADDRESS_TYPE).optional(),
12517
12767
  street: z$3.string().optional().nullable(),
12518
12768
  orientationNumber: z$3.string().optional().nullable(),
12519
12769
  descriptiveNumber: z$3.string().optional().nullable(),
@@ -12530,7 +12780,7 @@ const addressSelectSchema = z$3.object({
12530
12780
  partyId: z$3.uuid(),
12531
12781
  internalId: z$3.string().nullable(),
12532
12782
  ruianCode: z$3.string().nullable(),
12533
- addressType: z$3.enum(AddressTypeZod),
12783
+ addressType: z$3.enum(ADDRESS_TYPE),
12534
12784
  street: z$3.string().nullable(),
12535
12785
  orientationNumber: z$3.string().nullable(),
12536
12786
  descriptiveNumber: z$3.string().nullable(),
@@ -12546,51 +12796,138 @@ const addressSelectSchema = z$3.object({
12546
12796
 
12547
12797
  createInsertSchema(aml);
12548
12798
  createUpdateSchema(aml);
12549
- const amlBaseSelectSchema = createSelectSchema(aml);
12799
+ createSelectSchema(aml);
12800
+ const businessPartnerSchema = z$3.object({
12801
+ name: z$3.string(),
12802
+ country: z$3.string(),
12803
+ cooperationReason: z$3.string().nullable()
12804
+ });
12805
+ const foSourceOfWealthSchema = z$3.object({
12806
+ incomeSources: z$3.array(z$3.enum(INCOME_SOURCE)).min(1),
12807
+ monthlyIncome: z$3.enum(MONTHLY_INCOME_RANGE),
12808
+ employer: z$3.string().nullable(),
12809
+ employerCountry: z$3.string().nullable()
12810
+ });
12811
+ const businessSourceOfWealthSchema = z$3.object({
12812
+ financialFundsSources: z$3.array(z$3.enum(FINANCIAL_FUNDS_SOURCE)).min(1),
12813
+ mainBusinessSubjects: z$3.array(z$3.enum(CZ_TRADE_LICENSE_CODES)).min(1),
12814
+ companyTurnover: z$3.enum(COMPANY_TURNOVER_RANGE),
12815
+ operatingCountries: z$3.array(z$3.enum(OPERATING_COUNTRY)).min(1),
12816
+ operatingCountriesOther: z$3.array(z$3.enum(COUNTRY_CODES_2)).nullable(),
12817
+ businessPartners: z$3.array(businessPartnerSchema).nullable(),
12818
+ businessActivitiesNote: z$3.string().nullable()
12819
+ });
12820
+ const sourceOfWealthSchema = z$3.union([
12821
+ foSourceOfWealthSchema,
12822
+ businessSourceOfWealthSchema
12823
+ ]);
12824
+ const businessPartnerOutputSchema$1 = z$3.object({
12825
+ name: z$3.string(),
12826
+ country: z$3.string(),
12827
+ cooperationReason: z$3.string().nullable()
12828
+ });
12829
+ const foSourceOfWealthOutputSchema$1 = z$3.object({
12830
+ incomeSources: z$3.array(z$3.enum(INCOME_SOURCE)),
12831
+ monthlyIncome: z$3.enum(MONTHLY_INCOME_RANGE),
12832
+ employer: z$3.string().nullable(),
12833
+ employerCountry: z$3.string().nullable()
12834
+ });
12835
+ const businessSourceOfWealthOutputSchema$1 = z$3.object({
12836
+ financialFundsSources: z$3.array(z$3.enum(FINANCIAL_FUNDS_SOURCE)),
12837
+ mainBusinessSubjects: z$3.array(z$3.enum(CZ_TRADE_LICENSE_CODES)),
12838
+ companyTurnover: z$3.enum(COMPANY_TURNOVER_RANGE),
12839
+ operatingCountries: z$3.array(z$3.enum(OPERATING_COUNTRY)),
12840
+ operatingCountriesOther: z$3.array(z$3.enum(COUNTRY_CODES_2)).nullable(),
12841
+ businessPartners: z$3.array(businessPartnerOutputSchema$1).nullable(),
12842
+ businessActivitiesNote: z$3.string().nullable()
12843
+ });
12844
+ const sourceOfWealthOutputSchema = z$3.union([
12845
+ foSourceOfWealthOutputSchema$1,
12846
+ businessSourceOfWealthOutputSchema$1
12847
+ ]);
12550
12848
  const amlInsertSchema = z$3.object({
12551
12849
  partyId: z$3.uuid(),
12552
- internalId: z$3.string().optional().nullable(),
12553
- sourceOfWealth: z$3.string(),
12554
- yearlyIncome: z$3.string(),
12555
- tradesPurpose: z$3.string().optional().nullable(),
12556
- sourceOfIncome: z$3.string(),
12557
- transactionType: z$3.string().optional().nullable(),
12558
- transactionTypeExpiry: z$3.date().optional().nullable(),
12850
+ internalId: z$3.string().optional(),
12851
+ sourceOfWealth: sourceOfWealthSchema,
12852
+ yearlyIncome: z$3.enum(YEARLY_INCOME),
12853
+ sourceOfIncome: z$3.array(z$3.enum(INCOME_SOURCE)).min(1),
12854
+ servicePurposes: z$3.array(z$3.enum(SERVICE_PURPOSE)).optional(),
12855
+ taxDomicile: z$3.enum(TAX_DOMICILE).optional(),
12856
+ taxDomicileCountry: z$3.enum(COUNTRY_CODES_2).optional(),
12857
+ transactionType: z$3.string().optional(),
12858
+ transactionTypeExpiry: z$3.date().optional(),
12559
12859
  isDistraint: z$3.boolean().default(false),
12560
- estTxsVolumeMonth: z$3.string(),
12561
- estTxsVolumeYear: z$3.string(),
12562
- tradingCountries: z$3.string(),
12563
- tradingSide: z$3.string(),
12860
+ estTxsVolumeMonth: z$3.enum(EST_TXS_VOLUME_MONTH),
12861
+ estTxsVolumeYear: z$3.enum(EST_TXS_VOLUME_YEAR),
12862
+ estTxsCountMonth: z$3.number().int().optional(),
12863
+ tradingCountries: z$3.array(z$3.enum(TARGET_COUNTRY)).min(1),
12864
+ tradingCountriesOther: z$3.array(z$3.enum(COUNTRY_CODES_2)).optional(),
12865
+ tradingSide: z$3.enum(TRADING_SIDE),
12564
12866
  acceptedAMLTermsAndConditions: z$3.boolean(),
12565
- signatureMethod: z$3.string().nullable().optional(),
12566
- existencePeriod: z$3.string().nullable().optional(),
12567
- reputation: z$3.string().nullable().optional(),
12568
- riskLevel: z$3.enum(AmlScoreTypeZod).nullable().optional(),
12569
- kycStatus: z$3.enum(KycStatusZod).nullable().optional()
12867
+ signatureMethod: z$3.enum(SIGNATURE_METHOD).optional(),
12868
+ existencePeriod: z$3.enum(EXISTENCE_PERIOD).optional(),
12869
+ reputation: z$3.enum(REPUTATION).optional(),
12870
+ riskBusinessAreas: z$3.array(z$3.enum(RISK_BUSINESS_AREA)).optional(),
12871
+ riskLevel: z$3.enum(AML_SCORE_TYPE).optional(),
12872
+ kycStatus: z$3.enum(KYC_STATUS).optional()
12570
12873
  });
12571
12874
  const amlUpdateSchema = z$3.object({
12572
12875
  id: z$3.uuid(),
12573
12876
  partyId: z$3.uuid().optional(),
12574
- internalId: z$3.string().optional().nullable(),
12575
- sourceOfWealth: z$3.string().optional(),
12576
- yearlyIncome: z$3.string().optional(),
12577
- tradesPurpose: z$3.string().optional().nullable(),
12578
- sourceOfIncome: z$3.string().optional(),
12579
- transactionType: z$3.string().optional().nullable(),
12580
- transactionTypeExpiry: z$3.date().optional().nullable(),
12877
+ internalId: z$3.string().optional(),
12878
+ sourceOfWealth: sourceOfWealthSchema.optional(),
12879
+ yearlyIncome: z$3.enum(YEARLY_INCOME).optional(),
12880
+ sourceOfIncome: z$3.array(z$3.enum(INCOME_SOURCE)).min(1).optional(),
12881
+ servicePurposes: z$3.array(z$3.enum(SERVICE_PURPOSE)).optional(),
12882
+ taxDomicile: z$3.enum(TAX_DOMICILE).optional(),
12883
+ taxDomicileCountry: z$3.enum(COUNTRY_CODES_2).optional(),
12884
+ transactionType: z$3.string().optional(),
12885
+ transactionTypeExpiry: z$3.date().optional(),
12581
12886
  isDistraint: z$3.boolean().optional(),
12582
- estTxsVolumeMonth: z$3.string(),
12583
- estTxsVolumeYear: z$3.string(),
12584
- tradingCountries: z$3.string(),
12585
- tradingSide: z$3.string(),
12887
+ estTxsVolumeMonth: z$3.enum(EST_TXS_VOLUME_MONTH).optional(),
12888
+ estTxsVolumeYear: z$3.enum(EST_TXS_VOLUME_YEAR).optional(),
12889
+ estTxsCountMonth: z$3.number().int().optional(),
12890
+ tradingCountries: z$3.array(z$3.enum(TARGET_COUNTRY)).min(1).optional(),
12891
+ tradingCountriesOther: z$3.array(z$3.enum(COUNTRY_CODES_2)).optional(),
12892
+ tradingSide: z$3.enum(TRADING_SIDE).optional(),
12893
+ acceptedAMLTermsAndConditions: z$3.boolean().optional(),
12894
+ signatureMethod: z$3.enum(SIGNATURE_METHOD).optional(),
12895
+ existencePeriod: z$3.enum(EXISTENCE_PERIOD).optional(),
12896
+ reputation: z$3.enum(REPUTATION).optional(),
12897
+ riskBusinessAreas: z$3.array(z$3.enum(RISK_BUSINESS_AREA)).optional(),
12898
+ riskLevel: z$3.enum(AML_SCORE_TYPE).optional(),
12899
+ kycStatus: z$3.enum(KYC_STATUS).optional()
12900
+ });
12901
+ const amlSelectSchema = z$3.object({
12902
+ id: z$3.string(),
12903
+ partyId: z$3.string(),
12904
+ internalId: z$3.string().nullable(),
12905
+ sourceOfWealth: sourceOfWealthOutputSchema,
12906
+ yearlyIncome: z$3.enum(YEARLY_INCOME),
12907
+ sourceOfIncome: z$3.array(z$3.enum(INCOME_SOURCE)),
12908
+ servicePurposes: z$3.array(z$3.enum(SERVICE_PURPOSE)).nullable(),
12909
+ taxDomicile: z$3.enum(TAX_DOMICILE).nullable(),
12910
+ taxDomicileCountry: z$3.enum(COUNTRY_CODES_2).nullable(),
12911
+ transactionType: z$3.string().nullable(),
12912
+ transactionTypeExpiry: z$3.date().nullable(),
12913
+ isDistraint: z$3.boolean(),
12914
+ estTxsVolumeMonth: z$3.enum(EST_TXS_VOLUME_MONTH),
12915
+ estTxsVolumeYear: z$3.enum(EST_TXS_VOLUME_YEAR),
12916
+ estTxsCountMonth: z$3.number().int().nullable(),
12917
+ tradingCountries: z$3.array(z$3.enum(TARGET_COUNTRY)),
12918
+ tradingCountriesOther: z$3.array(z$3.enum(COUNTRY_CODES_2)).nullable(),
12919
+ tradingSide: z$3.enum(TRADING_SIDE),
12586
12920
  acceptedAMLTermsAndConditions: z$3.boolean(),
12587
- signatureMethod: z$3.string().nullable().optional(),
12588
- existencePeriod: z$3.string().nullable().optional(),
12589
- reputation: z$3.string().nullable().optional(),
12590
- riskLevel: z$3.enum(AmlScoreTypeZod).nullable().optional(),
12591
- kycStatus: z$3.enum(KycStatusZod).nullable().optional()
12921
+ signatureMethod: z$3.enum(SIGNATURE_METHOD).nullable(),
12922
+ existencePeriod: z$3.enum(EXISTENCE_PERIOD).nullable(),
12923
+ reputation: z$3.enum(REPUTATION).nullable(),
12924
+ riskBusinessAreas: z$3.array(z$3.enum(RISK_BUSINESS_AREA)).nullable(),
12925
+ riskLevel: z$3.enum(AML_SCORE_TYPE),
12926
+ kycStatus: z$3.enum(KYC_STATUS).nullable(),
12927
+ createdAt: z$3.date().nullable(),
12928
+ updatedAt: z$3.date().nullable(),
12929
+ deletedAt: z$3.date().nullable()
12592
12930
  });
12593
- const amlSelectSchema = amlBaseSelectSchema;
12594
12931
 
12595
12932
  const bankAccountBaseInsertSchema = createInsertSchema(bankAccount);
12596
12933
  createUpdateSchema(bankAccount);
@@ -12611,7 +12948,7 @@ createSelectSchema(contact);
12611
12948
  const contactInsertSchema = z$3.object({
12612
12949
  partyId: z$3.uuid(),
12613
12950
  internalId: z$3.string().optional().nullable(),
12614
- contactType: z$3.enum(ContactTypeZod).optional(),
12951
+ contactType: z$3.enum(CONTACT_TYPE).optional(),
12615
12952
  email: z$3.email("Invalid email format"),
12616
12953
  phoneNumber: z$3.string()
12617
12954
  });
@@ -12619,7 +12956,7 @@ const contactUpdateSchema = z$3.object({
12619
12956
  id: z$3.uuid(),
12620
12957
  partyId: z$3.uuid().optional(),
12621
12958
  internalId: z$3.string().optional().nullable(),
12622
- contactType: z$3.enum(ContactTypeZod).optional(),
12959
+ contactType: z$3.enum(CONTACT_TYPE).optional(),
12623
12960
  email: z$3.email("Invalid email format").optional(),
12624
12961
  phoneNumber: z$3.string().optional()
12625
12962
  });
@@ -12637,7 +12974,7 @@ const individualInsertSchema$1 = z$3.object({
12637
12974
  birthPlace: z$3.string(),
12638
12975
  countryOfBirth: z$3.enum(COUNTRY_CODES_2).optional().nullable(),
12639
12976
  personalId: z$3.string(),
12640
- gender: z$3.enum(GenderZod),
12977
+ gender: z$3.enum(GENDER),
12641
12978
  citizenship: z$3.enum(COUNTRY_CODES_2),
12642
12979
  citizenshipOther: z$3.enum(COUNTRY_CODES_2).optional().nullable(),
12643
12980
  employer: z$3.string().optional().nullable(),
@@ -12665,7 +13002,7 @@ const individualUpdateSchema$1 = z$3.object({
12665
13002
  birthPlace: z$3.string().optional(),
12666
13003
  countryOfBirth: z$3.enum(COUNTRY_CODES_2).optional().nullable(),
12667
13004
  personalId: z$3.string().optional(),
12668
- gender: z$3.enum(GenderZod).optional(),
13005
+ gender: z$3.enum(GENDER).optional(),
12669
13006
  citizenship: z$3.enum(COUNTRY_CODES_2).optional(),
12670
13007
  citizenshipOther: z$3.enum(COUNTRY_CODES_2).optional().nullable(),
12671
13008
  employer: z$3.string().optional().nullable(),
@@ -12694,7 +13031,7 @@ const individualSelectSchema = z$3.object({
12694
13031
  birthPlace: z$3.string(),
12695
13032
  countryOfBirth: z$3.enum(COUNTRY_CODES_2).nullable(),
12696
13033
  personalId: z$3.string(),
12697
- gender: z$3.enum(GenderZod),
13034
+ gender: z$3.enum(GENDER),
12698
13035
  citizenship: z$3.enum(COUNTRY_CODES_2),
12699
13036
  citizenshipOther: z$3.enum(COUNTRY_CODES_2).nullable(),
12700
13037
  employer: z$3.string().nullable(),
@@ -12729,7 +13066,7 @@ const organizationInsertSchema = z$3.object({
12729
13066
  monthlyVolumeIn: z$3.number(),
12730
13067
  monthlyVolumeOut: z$3.number(),
12731
13068
  ownedBy: z$3.string(),
12732
- companyObjects: z$3.string(),
13069
+ companyObjects: z$3.array(z$3.enum(CZ_NACE_CODES)).min(1),
12733
13070
  annualTurnover: z$3.number(),
12734
13071
  numberOfEmployees: z$3.number().optional().nullable(),
12735
13072
  prosecuted: z$3.string().optional().nullable(),
@@ -12755,7 +13092,7 @@ const organizationUpdateSchema$1 = z$3.object({
12755
13092
  monthlyVolumeIn: z$3.number().optional(),
12756
13093
  monthlyVolumeOut: z$3.number().optional(),
12757
13094
  ownedBy: z$3.string().optional(),
12758
- companyObjects: z$3.string().optional(),
13095
+ companyObjects: z$3.array(z$3.enum(CZ_NACE_CODES)).min(1).optional(),
12759
13096
  annualTurnover: z$3.number().optional(),
12760
13097
  numberOfEmployees: z$3.number().optional().nullable(),
12761
13098
  prosecuted: z$3.string().optional().nullable(),
@@ -12782,7 +13119,7 @@ const organizationOutputSchema = z$3.object({
12782
13119
  monthlyVolumeIn: z$3.number(),
12783
13120
  monthlyVolumeOut: z$3.number(),
12784
13121
  ownedBy: z$3.string(),
12785
- companyObjects: z$3.string(),
13122
+ companyObjects: z$3.array(z$3.enum(CZ_NACE_CODES)),
12786
13123
  annualTurnover: z$3.number(),
12787
13124
  numberOfEmployees: z$3.number().nullable(),
12788
13125
  prosecuted: z$3.string().nullable(),
@@ -12851,7 +13188,7 @@ createSelectSchema(idDocument);
12851
13188
  const idDocumentInsertSchema = z$3.object({
12852
13189
  partyId: z$3.uuid(),
12853
13190
  internalId: z$3.string().optional().nullable(),
12854
- idDocType: z$3.enum(IdDocTypeZod),
13191
+ idDocType: z$3.enum(ID_DOC_TYPE),
12855
13192
  idDocNumber: z$3.string(),
12856
13193
  idDocHolderName: z$3.string(),
12857
13194
  issueDate: z$3.date().optional().nullable(),
@@ -12860,13 +13197,13 @@ const idDocumentInsertSchema = z$3.object({
12860
13197
  countryOfIssue: z$3.enum(COUNTRY_CODES_2).optional().nullable(),
12861
13198
  frontImageUri: z$3.url().optional().nullable(),
12862
13199
  backImageUri: z$3.url().optional().nullable(),
12863
- idDocStatus: z$3.enum(IdDocStatusZod).optional().nullable()
13200
+ idDocStatus: z$3.enum(ID_DOC_STATUS).optional().nullable()
12864
13201
  });
12865
13202
  const idDocumentUpdateSchema = z$3.object({
12866
13203
  id: z$3.uuid(),
12867
13204
  partyId: z$3.uuid().optional(),
12868
13205
  internalId: z$3.string().optional().nullable(),
12869
- idDocType: z$3.enum(IdDocTypeZod).optional(),
13206
+ idDocType: z$3.enum(ID_DOC_TYPE).optional(),
12870
13207
  idDocNumber: z$3.string().optional(),
12871
13208
  idDocHolderName: z$3.string().optional(),
12872
13209
  issueDate: z$3.date().optional().nullable(),
@@ -12875,7 +13212,7 @@ const idDocumentUpdateSchema = z$3.object({
12875
13212
  countryOfIssue: z$3.enum(COUNTRY_CODES_2).optional().nullable(),
12876
13213
  frontImageUri: z$3.url("Invalid URL format").optional().nullable(),
12877
13214
  backImageUri: z$3.url("Invalid URL format").optional().nullable(),
12878
- idDocStatus: z$3.enum(IdDocStatusZod).optional().nullable()
13215
+ idDocStatus: z$3.enum(ID_DOC_STATUS).optional().nullable()
12879
13216
  });
12880
13217
 
12881
13218
  const recipientBaseInsertSchema = createInsertSchema(recipient);
@@ -12888,21 +13225,64 @@ const recipientInsertSchema = bankAccountInsertSchema;
12888
13225
  const recipientUpdateSchema = bankAccountUpdateSchema;
12889
13226
  const recipientSelectSchema = bankAccountSelectSchema;
12890
13227
 
13228
+ const productTxsConfigSchema = z$3.object({
13229
+ fee: z$3.number(),
13230
+ margin: z$3.number(),
13231
+ reportingEmail: z$3.string().optional(),
13232
+ clientType: z$3.enum(TXS_CLIENT_TYPE).optional()
13233
+ });
13234
+ const productCbsConfigSchema = z$3.object({});
13235
+ const productConfigSchema = z$3.union([
13236
+ productTxsConfigSchema,
13237
+ productCbsConfigSchema
13238
+ ]);
13239
+ const partyProductBaseInsertSchema = createInsertSchema(partyProduct, {
13240
+ config: () => productConfigSchema.nullable()
13241
+ });
13242
+ createUpdateSchema(partyProduct, {
13243
+ config: () => productConfigSchema.nullable()
13244
+ });
13245
+ createSelectSchema(partyProduct, {
13246
+ config: () => productConfigSchema.nullable()
13247
+ });
13248
+ const partyProductUpdateSchema = partyProductBaseInsertSchema.extend({
13249
+ partyId: z$3.uuid()
13250
+ });
13251
+ partyProductUpdateSchema.omit({
13252
+ id: true
13253
+ });
13254
+ const partyProductSelectSchema = partyProductUpdateSchema.required();
13255
+ z$3.array(partyProductSelectSchema);
13256
+ const productsInputSchema$2 = z$3.object({
13257
+ txs: productTxsConfigSchema.optional(),
13258
+ cbs: productCbsConfigSchema.optional()
13259
+ });
13260
+ const productTxsConfigOutputSchema = z$3.object({
13261
+ fee: z$3.number(),
13262
+ margin: z$3.number(),
13263
+ reportingEmail: z$3.string().nullable(),
13264
+ clientType: z$3.enum(TXS_CLIENT_TYPE).nullable()
13265
+ });
13266
+ const productsOutputSchema$1 = z$3.object({
13267
+ txs: productTxsConfigOutputSchema.nullable(),
13268
+ cbs: productCbsConfigSchema.nullable()
13269
+ });
13270
+
12891
13271
  createInsertSchema(party);
12892
13272
  createUpdateSchema(party);
12893
13273
  const partySchema$2 = z$3.object({
12894
- partyType: z$3.enum(PartyTypeZod),
13274
+ partyType: z$3.enum(PARTY_TYPE),
12895
13275
  language: z$3.enum(LANGUAGE_CODES),
12896
13276
  id: z$3.uuid().nullable(),
12897
13277
  note: z$3.string().optional(),
12898
13278
  countryCode: z$3.enum(COUNTRY_CODES_2).optional(),
12899
- customerStatus: z$3.enum(CustomerStatusZod).optional(),
13279
+ customerStatus: z$3.enum(CUSTOMER_STATUS).optional(),
12900
13280
  legacyId: z$3.string().optional()
12901
13281
  });
12902
13282
  const partyOutputSchema$1 = z$3.object({
12903
13283
  internalId: z$3.string().nullable(),
12904
- customerStatus: z$3.enum(CustomerStatusZod),
12905
- partyType: z$3.enum(PartyTypeZod),
13284
+ customerStatus: z$3.enum(CUSTOMER_STATUS),
13285
+ partyType: z$3.enum(PARTY_TYPE),
12906
13286
  language: z$3.enum(LANGUAGE_CODES),
12907
13287
  id: z$3.uuid(),
12908
13288
  note: z$3.string().nullable(),
@@ -12920,7 +13300,8 @@ z$3.object({
12920
13300
  recipients: z$3.array(recipientInsertSchema.omit({ partyId: true })).nullable(),
12921
13301
  disponents: z$3.array(disponentCreateSchema).nullable(),
12922
13302
  addresses: z$3.array(addressInsertSchema.omit({ partyId: true })),
12923
- aml: amlInsertSchema.omit({ partyId: true })
13303
+ aml: amlInsertSchema.omit({ partyId: true }),
13304
+ products: productsInputSchema$2.optional()
12924
13305
  });
12925
13306
  z$3.object({
12926
13307
  partyId: z$3.uuid(),
@@ -12931,7 +13312,8 @@ z$3.object({
12931
13312
  recipients: z$3.array(recipientUpsertSchema).optional(),
12932
13313
  disponents: z$3.array(disponentUpdateSchema$1).optional(),
12933
13314
  addresses: z$3.array(addressUpdateSchema).optional(),
12934
- aml: amlUpdateSchema.optional()
13315
+ aml: amlUpdateSchema.optional(),
13316
+ products: productsInputSchema$2.optional()
12935
13317
  });
12936
13318
  const partySelectOutputSchema = z$3.object({
12937
13319
  party: partyOutputSchema$1.nullable(),
@@ -12941,7 +13323,8 @@ const partySelectOutputSchema = z$3.object({
12941
13323
  bankAccounts: z$3.array(bankAccountSelectSchema).nullable(),
12942
13324
  disponents: z$3.array(disponentSelectSchema).nullable(),
12943
13325
  addresses: z$3.array(addressSelectSchema).nullable(),
12944
- recipients: z$3.array(recipientSelectSchema).nullable()
13326
+ recipients: z$3.array(recipientSelectSchema).nullable(),
13327
+ products: productsOutputSchema$1.nullable()
12945
13328
  });
12946
13329
  z$3.array(partySelectOutputSchema);
12947
13330
  const partySelectDataSchema = z$3.object({
@@ -12958,7 +13341,8 @@ const partySelectArrayDataSchema = z$3.object({
12958
13341
  });
12959
13342
  z$3.object({
12960
13343
  ...partySelectDataSchema.shape,
12961
- ...partySelectArrayDataSchema.shape
13344
+ ...partySelectArrayDataSchema.shape,
13345
+ products: productsOutputSchema$1.nullable()
12962
13346
  });
12963
13347
 
12964
13348
  createInsertSchema(partyChange);
@@ -12986,7 +13370,7 @@ createInsertSchema(partyRelationship);
12986
13370
  createUpdateSchema(partyRelationship);
12987
13371
  createSelectSchema(partyRelationship);
12988
13372
  z$3.object({
12989
- relationshipType: z$3.enum(PartyRelationshipTypeZod).optional(),
13373
+ relationshipType: z$3.enum(PARTY_RELATIONSHIP_TYPE).optional(),
12990
13374
  frompartyId: z$3.uuid().optional().nullable(),
12991
13375
  internalId: z$3.string().optional().nullable(),
12992
13376
  topartyId: z$3.uuid().optional().nullable(),
@@ -12995,7 +13379,7 @@ z$3.object({
12995
13379
  });
12996
13380
  z$3.object({
12997
13381
  id: z$3.uuid(),
12998
- relationshipType: z$3.enum(PartyRelationshipTypeZod).optional(),
13382
+ relationshipType: z$3.enum(PARTY_RELATIONSHIP_TYPE).optional(),
12999
13383
  frompartyId: z$3.uuid().optional().nullable(),
13000
13384
  internalId: z$3.string().optional().nullable(),
13001
13385
  topartyId: z$3.uuid().optional().nullable(),
@@ -13290,7 +13674,7 @@ const errorResponse = (entityName, action = "creation") => ({
13290
13674
  });
13291
13675
 
13292
13676
  const partySchema$1 = z$3.object({
13293
- partyType: z$3.enum(PartyTypeZod),
13677
+ partyType: z$3.enum(PARTY_TYPE),
13294
13678
  language: z$3.enum(LANGUAGE_CODES),
13295
13679
  id: z$3.uuid(),
13296
13680
  internalId: z$3.string().optional(),
@@ -13307,7 +13691,7 @@ const individualInsertSchema = z$3.object({
13307
13691
  birthPlace: z$3.string(),
13308
13692
  countryOfBirth: z$3.enum(COUNTRY_CODES_2).optional(),
13309
13693
  personalId: z$3.string(),
13310
- gender: z$3.enum(GenderZod),
13694
+ gender: z$3.enum(GENDER),
13311
13695
  citizenship: z$3.enum(COUNTRY_CODES_2),
13312
13696
  citizenshipOther: z$3.enum(COUNTRY_CODES_2).optional(),
13313
13697
  employer: z$3.string().optional(),
@@ -13336,7 +13720,7 @@ const createOrganizationInputSchema = z$3.object({
13336
13720
  monthlyVolumeIn: z$3.number(),
13337
13721
  monthlyVolumeOut: z$3.number(),
13338
13722
  ownedBy: z$3.string(),
13339
- companyObjects: z$3.string(),
13723
+ companyObjects: z$3.array(z$3.enum(CZ_NACE_CODES)).min(1),
13340
13724
  annualTurnover: z$3.number(),
13341
13725
  numberOfEmployees: z$3.number(),
13342
13726
  prosecuted: z$3.string().optional(),
@@ -13375,7 +13759,7 @@ const disponentSchema = z$3.discriminatedUnion("partyType", [
13375
13759
  })
13376
13760
  ]);
13377
13761
  const createAddressInputSchema = z$3.object({
13378
- addressType: z$3.enum(AddressTypeZod),
13762
+ addressType: z$3.enum(ADDRESS_TYPE),
13379
13763
  internalId: z$3.string().optional(),
13380
13764
  street: z$3.string(),
13381
13765
  orientationNumber: z$3.string().optional(),
@@ -13388,25 +13772,62 @@ const createAddressInputSchema = z$3.object({
13388
13772
  countryCode: z$3.enum(COUNTRY_CODES_2),
13389
13773
  ruianCode: z$3.string().optional()
13390
13774
  });
13775
+ const businessPartnerInputSchema$1 = z$3.object({
13776
+ name: z$3.string(),
13777
+ country: z$3.string(),
13778
+ cooperationReason: z$3.string().nullable()
13779
+ });
13780
+ const foSourceOfWealthInputSchema$1 = z$3.object({
13781
+ incomeSources: z$3.array(z$3.enum(INCOME_SOURCE)).min(1),
13782
+ monthlyIncome: z$3.enum(MONTHLY_INCOME_RANGE),
13783
+ employer: z$3.string().nullable(),
13784
+ employerCountry: z$3.string().nullable()
13785
+ });
13786
+ const businessSourceOfWealthInputSchema$1 = z$3.object({
13787
+ financialFundsSources: z$3.array(z$3.enum(FINANCIAL_FUNDS_SOURCE)).min(1),
13788
+ mainBusinessSubjects: z$3.array(z$3.enum(CZ_TRADE_LICENSE_CODES)).min(1),
13789
+ companyTurnover: z$3.enum(COMPANY_TURNOVER_RANGE),
13790
+ operatingCountries: z$3.array(z$3.enum(OPERATING_COUNTRY)).min(1),
13791
+ operatingCountriesOther: z$3.array(z$3.enum(COUNTRY_CODES_2)).nullable(),
13792
+ businessPartners: z$3.array(businessPartnerInputSchema$1).nullable(),
13793
+ businessActivitiesNote: z$3.string().nullable()
13794
+ });
13391
13795
  const createAmlInputSchema = z$3.object({
13392
13796
  internalId: z$3.string().optional(),
13393
- sourceOfWealth: z$3.string(),
13394
- yearlyIncome: z$3.string(),
13395
- tradesPurpose: z$3.string().optional(),
13396
- sourceOfIncome: z$3.string(),
13797
+ sourceOfWealth: z$3.union([
13798
+ foSourceOfWealthInputSchema$1,
13799
+ businessSourceOfWealthInputSchema$1
13800
+ ]),
13801
+ yearlyIncome: z$3.enum(YEARLY_INCOME),
13802
+ sourceOfIncome: z$3.array(z$3.enum(INCOME_SOURCE)).min(1),
13803
+ servicePurposes: z$3.array(z$3.enum(SERVICE_PURPOSE)).optional(),
13804
+ taxDomicile: z$3.enum(TAX_DOMICILE).optional(),
13805
+ taxDomicileCountry: z$3.enum(COUNTRY_CODES_2).optional(),
13397
13806
  transactionType: z$3.string().optional(),
13398
13807
  transactionTypeExpiry: z$3.date().optional(),
13399
13808
  isDistraint: z$3.boolean().default(false),
13400
- estTxsVolumeMonth: z$3.string(),
13401
- estTxsVolumeYear: z$3.string(),
13402
- tradingCountries: z$3.string(),
13403
- tradingSide: z$3.string(),
13809
+ estTxsVolumeMonth: z$3.enum(EST_TXS_VOLUME_MONTH),
13810
+ estTxsVolumeYear: z$3.enum(EST_TXS_VOLUME_YEAR),
13811
+ estTxsCountMonth: z$3.number().int().optional(),
13812
+ tradingCountries: z$3.array(z$3.enum(TARGET_COUNTRY)).min(1),
13813
+ tradingCountriesOther: z$3.array(z$3.enum(COUNTRY_CODES_2)).optional(),
13814
+ tradingSide: z$3.enum(TRADING_SIDE),
13404
13815
  acceptedAMLTermsAndConditions: z$3.boolean(),
13405
- signatureMethod: z$3.string().optional(),
13406
- existencePeriod: z$3.string().optional(),
13407
- reputation: z$3.string().optional(),
13408
- riskLevel: z$3.enum(AmlScoreTypeZod).optional(),
13409
- kycStatus: z$3.enum(KycStatusZod).optional()
13816
+ signatureMethod: z$3.enum(SIGNATURE_METHOD).optional(),
13817
+ existencePeriod: z$3.enum(EXISTENCE_PERIOD).optional(),
13818
+ reputation: z$3.enum(REPUTATION).optional(),
13819
+ riskBusinessAreas: z$3.array(z$3.enum(RISK_BUSINESS_AREA)).optional(),
13820
+ riskLevel: z$3.enum(AML_SCORE_TYPE).optional(),
13821
+ kycStatus: z$3.enum(KYC_STATUS).optional()
13822
+ });
13823
+ const productsInputSchema$1 = z$3.object({
13824
+ txs: z$3.object({
13825
+ fee: z$3.number(),
13826
+ margin: z$3.number(),
13827
+ reportingEmail: z$3.string().optional(),
13828
+ clientType: z$3.enum(TXS_CLIENT_TYPE).optional()
13829
+ }).optional(),
13830
+ cbs: z$3.object({}).optional()
13410
13831
  });
13411
13832
  const createPartyInputSchema = z$3.object({
13412
13833
  party: partySchema$1.omit({ id: true }),
@@ -13416,11 +13837,12 @@ const createPartyInputSchema = z$3.object({
13416
13837
  disponents: z$3.array(disponentSchema),
13417
13838
  addresses: z$3.array(createAddressInputSchema),
13418
13839
  aml: createAmlInputSchema,
13419
- recipients: z$3.array(bankAccountInputSchema)
13840
+ recipients: z$3.array(bankAccountInputSchema),
13841
+ products: productsInputSchema$1.optional()
13420
13842
  });
13421
13843
  const partyCreateOutputSchema = z$3.object({
13422
- customerStatus: z$3.enum(CustomerStatusZod),
13423
- partyType: z$3.enum(PartyTypeZod),
13844
+ customerStatus: z$3.enum(CUSTOMER_STATUS),
13845
+ partyType: z$3.enum(PARTY_TYPE),
13424
13846
  language: z$3.enum(LANGUAGE_CODES),
13425
13847
  id: z$3.uuid(),
13426
13848
  internalId: z$3.string().nullable(),
@@ -13484,7 +13906,7 @@ new OpenAPIHono().openapi(
13484
13906
  );
13485
13907
 
13486
13908
  const partySchema = z$3.object({
13487
- partyType: z$3.enum(PartyTypeZod),
13909
+ partyType: z$3.enum(PARTY_TYPE),
13488
13910
  language: z$3.enum(LANGUAGE_CODES),
13489
13911
  id: z$3.uuid(),
13490
13912
  internalId: z$3.string().optional(),
@@ -13503,7 +13925,7 @@ const individualUpdateSchema = z$3.object({
13503
13925
  birthPlace: z$3.string().optional(),
13504
13926
  countryOfBirth: z$3.enum(COUNTRY_CODES_2).optional(),
13505
13927
  personalId: z$3.string().optional(),
13506
- gender: z$3.enum(GenderZod).optional(),
13928
+ gender: z$3.enum(GENDER).optional(),
13507
13929
  citizenship: z$3.enum(COUNTRY_CODES_2).optional(),
13508
13930
  citizenshipOther: z$3.enum(COUNTRY_CODES_2).optional(),
13509
13931
  employer: z$3.string().optional(),
@@ -13534,7 +13956,7 @@ const organizationUpdateSchema = z$3.object({
13534
13956
  monthlyVolumeIn: z$3.number().optional(),
13535
13957
  monthlyVolumeOut: z$3.number().optional(),
13536
13958
  ownedBy: z$3.string().optional(),
13537
- companyObjects: z$3.string().optional(),
13959
+ companyObjects: z$3.array(z$3.enum(CZ_NACE_CODES)).min(1).optional(),
13538
13960
  annualTurnover: z$3.number().optional(),
13539
13961
  numberOfEmployees: z$3.number().optional(),
13540
13962
  prosecuted: z$3.string().optional(),
@@ -13571,7 +13993,7 @@ const updateAddressInputSchema = z$3.object({
13571
13993
  id: z$3.uuid(),
13572
13994
  partyId: z$3.uuid(),
13573
13995
  internalId: z$3.string().optional(),
13574
- addressType: z$3.enum(AddressTypeZod),
13996
+ addressType: z$3.enum(ADDRESS_TYPE),
13575
13997
  street: z$3.string(),
13576
13998
  orientationNumber: z$3.string().optional(),
13577
13999
  descriptiveNumber: z$3.string().optional(),
@@ -13583,27 +14005,61 @@ const updateAddressInputSchema = z$3.object({
13583
14005
  countryCode: z$3.enum(COUNTRY_CODES_2),
13584
14006
  ruianCode: z$3.string().optional()
13585
14007
  });
14008
+ const businessPartnerInputSchema = z$3.object({
14009
+ name: z$3.string(),
14010
+ country: z$3.string(),
14011
+ cooperationReason: z$3.string().nullable()
14012
+ });
14013
+ const foSourceOfWealthInputSchema = z$3.object({
14014
+ incomeSources: z$3.array(z$3.enum(INCOME_SOURCE)).min(1),
14015
+ monthlyIncome: z$3.enum(MONTHLY_INCOME_RANGE),
14016
+ employer: z$3.string().nullable(),
14017
+ employerCountry: z$3.string().nullable()
14018
+ });
14019
+ const businessSourceOfWealthInputSchema = z$3.object({
14020
+ financialFundsSources: z$3.array(z$3.enum(FINANCIAL_FUNDS_SOURCE)).min(1),
14021
+ mainBusinessSubjects: z$3.array(z$3.enum(CZ_TRADE_LICENSE_CODES)).min(1),
14022
+ companyTurnover: z$3.enum(COMPANY_TURNOVER_RANGE),
14023
+ operatingCountries: z$3.array(z$3.enum(OPERATING_COUNTRY)).min(1),
14024
+ operatingCountriesOther: z$3.array(z$3.enum(COUNTRY_CODES_2)).nullable(),
14025
+ businessPartners: z$3.array(businessPartnerInputSchema).nullable(),
14026
+ businessActivitiesNote: z$3.string().nullable()
14027
+ });
13586
14028
  const updateAmlInputSchema = z$3.object({
13587
14029
  id: z$3.uuid(),
13588
14030
  partyId: z$3.uuid().optional(),
13589
14031
  internalId: z$3.string().optional(),
13590
- sourceOfWealth: z$3.string().optional(),
13591
- yearlyIncome: z$3.string().optional(),
13592
- tradesPurpose: z$3.string().optional(),
13593
- sourceOfIncome: z$3.string().optional(),
14032
+ sourceOfWealth: z$3.union([foSourceOfWealthInputSchema, businessSourceOfWealthInputSchema]).optional(),
14033
+ yearlyIncome: z$3.enum(YEARLY_INCOME).optional(),
14034
+ sourceOfIncome: z$3.array(z$3.enum(INCOME_SOURCE)).min(1).optional(),
14035
+ servicePurposes: z$3.array(z$3.enum(SERVICE_PURPOSE)).optional(),
14036
+ taxDomicile: z$3.enum(TAX_DOMICILE).optional(),
14037
+ taxDomicileCountry: z$3.enum(COUNTRY_CODES_2).optional(),
13594
14038
  transactionType: z$3.string().optional(),
13595
14039
  transactionTypeExpiry: z$3.date().optional(),
13596
14040
  isDistraint: z$3.boolean().optional(),
13597
- estTxsVolumeMonth: z$3.string(),
13598
- estTxsVolumeYear: z$3.string(),
13599
- tradingCountries: z$3.string(),
13600
- tradingSide: z$3.string(),
14041
+ estTxsVolumeMonth: z$3.enum(EST_TXS_VOLUME_MONTH),
14042
+ estTxsVolumeYear: z$3.enum(EST_TXS_VOLUME_YEAR),
14043
+ estTxsCountMonth: z$3.number().int().optional(),
14044
+ tradingCountries: z$3.array(z$3.enum(TARGET_COUNTRY)).min(1),
14045
+ tradingCountriesOther: z$3.array(z$3.enum(COUNTRY_CODES_2)).optional(),
14046
+ tradingSide: z$3.enum(TRADING_SIDE),
13601
14047
  acceptedAMLTermsAndConditions: z$3.boolean(),
13602
- signatureMethod: z$3.string().optional(),
13603
- existencePeriod: z$3.string().optional(),
13604
- reputation: z$3.string().optional(),
13605
- riskLevel: z$3.enum(AmlScoreTypeZod).optional(),
13606
- kycStatus: z$3.enum(KycStatusZod).optional()
14048
+ signatureMethod: z$3.enum(SIGNATURE_METHOD).optional(),
14049
+ existencePeriod: z$3.enum(EXISTENCE_PERIOD).optional(),
14050
+ reputation: z$3.enum(REPUTATION).optional(),
14051
+ riskBusinessAreas: z$3.array(z$3.enum(RISK_BUSINESS_AREA)).optional(),
14052
+ riskLevel: z$3.enum(AML_SCORE_TYPE).optional(),
14053
+ kycStatus: z$3.enum(KYC_STATUS).optional()
14054
+ });
14055
+ const productsInputSchema = z$3.object({
14056
+ txs: z$3.object({
14057
+ fee: z$3.number(),
14058
+ margin: z$3.number(),
14059
+ reportingEmail: z$3.string().optional(),
14060
+ clientType: z$3.enum(TXS_CLIENT_TYPE).optional()
14061
+ }).optional(),
14062
+ cbs: z$3.object({}).optional()
13607
14063
  });
13608
14064
  const partyUpdateInputSchema = z$3.object({
13609
14065
  party: partySchema,
@@ -13613,12 +14069,13 @@ const partyUpdateInputSchema = z$3.object({
13613
14069
  disponents: z$3.array(disponentUpdateSchema).optional(),
13614
14070
  addresses: z$3.array(updateAddressInputSchema),
13615
14071
  recipients: z$3.array(updateBankAccountSchema).nullable(),
13616
- aml: updateAmlInputSchema.optional()
14072
+ aml: updateAmlInputSchema.optional(),
14073
+ products: productsInputSchema.optional()
13617
14074
  });
13618
14075
  const updatePartyOuputSchema = z$3.object({
13619
14076
  id: z$3.uuid(),
13620
- customerStatus: z$3.enum(CustomerStatusZod),
13621
- partyType: z$3.enum(PartyTypeZod),
14077
+ customerStatus: z$3.enum(CUSTOMER_STATUS),
14078
+ partyType: z$3.enum(PARTY_TYPE),
13622
14079
  language: z$3.enum(LANGUAGE_CODES),
13623
14080
  note: z$3.string().nullable(),
13624
14081
  countryCode: z$3.enum(COUNTRY_CODES_2).nullable()
@@ -13629,7 +14086,7 @@ const responseBodySchema$4 = z$3.object({
13629
14086
  });
13630
14087
  const updatePartyRoute = createRoute({
13631
14088
  method: "put",
13632
- path: "/{partyId}",
14089
+ path: "/",
13633
14090
  summary: "Update party",
13634
14091
  tags: ["Parties"],
13635
14092
  security: [
@@ -13674,7 +14131,8 @@ new OpenAPIHono().openapi(
13674
14131
  disponents: party.disponents ?? void 0,
13675
14132
  addresses: party.addresses ?? void 0,
13676
14133
  recipients: party.recipients ?? void 0,
13677
- aml: party.aml ?? void 0
14134
+ aml: party.aml ?? void 0,
14135
+ products: party.products ?? void 0
13678
14136
  });
13679
14137
  if (!updatedParty || partyError) {
13680
14138
  return context.json({ message: "Could not update a Party" }, 404);
@@ -13690,8 +14148,8 @@ new OpenAPIHono().openapi(
13690
14148
  );
13691
14149
 
13692
14150
  const partyBaseOutputSchema = z$3.object({
13693
- customerStatus: z$3.enum(CustomerStatusZod),
13694
- partyType: z$3.enum(PartyTypeZod),
14151
+ customerStatus: z$3.enum(CUSTOMER_STATUS),
14152
+ partyType: z$3.enum(PARTY_TYPE),
13695
14153
  language: z$3.enum(LANGUAGE_CODES),
13696
14154
  id: z$3.uuid(),
13697
14155
  internalId: z$3.string().nullable(),
@@ -13713,7 +14171,7 @@ const individualOutputSchema = z$3.object({
13713
14171
  birthPlace: z$3.string(),
13714
14172
  countryOfBirth: z$3.enum(COUNTRY_CODES_2).nullable(),
13715
14173
  personalId: z$3.string(),
13716
- gender: z$3.enum(GenderZod),
14174
+ gender: z$3.enum(GENDER),
13717
14175
  citizenship: z$3.enum(COUNTRY_CODES_2),
13718
14176
  citizenshipOther: z$3.enum(COUNTRY_CODES_2).nullable(),
13719
14177
  employer: z$3.string().nullable(),
@@ -13745,7 +14203,7 @@ const createOrganizationOutputSchema = z$3.object({
13745
14203
  monthlyVolumeIn: z$3.number(),
13746
14204
  monthlyVolumeOut: z$3.number(),
13747
14205
  ownedBy: z$3.string(),
13748
- companyObjects: z$3.string(),
14206
+ companyObjects: z$3.array(z$3.enum(CZ_NACE_CODES)),
13749
14207
  annualTurnover: z$3.number(),
13750
14208
  numberOfEmployees: z$3.number().nullable(),
13751
14209
  prosecuted: z$3.string().nullable(),
@@ -13792,7 +14250,7 @@ const createAddressOutputSchema = z$3.object({
13792
14250
  id: z$3.uuid(),
13793
14251
  partyId: z$3.uuid(),
13794
14252
  internalId: z$3.string().nullable(),
13795
- addressType: z$3.enum(AddressTypeZod),
14253
+ addressType: z$3.enum(ADDRESS_TYPE),
13796
14254
  street: z$3.string().nullable(),
13797
14255
  orientationNumber: z$3.string().nullable(),
13798
14256
  descriptiveNumber: z$3.string().nullable(),
@@ -13806,30 +14264,67 @@ const createAddressOutputSchema = z$3.object({
13806
14264
  createdAt: z$3.date().nullable(),
13807
14265
  updatedAt: z$3.date().nullable()
13808
14266
  });
14267
+ const businessPartnerOutputSchema = z$3.object({
14268
+ name: z$3.string(),
14269
+ country: z$3.string(),
14270
+ cooperationReason: z$3.string().nullable()
14271
+ });
14272
+ const foSourceOfWealthOutputSchema = z$3.object({
14273
+ incomeSources: z$3.array(z$3.enum(INCOME_SOURCE)),
14274
+ monthlyIncome: z$3.enum(MONTHLY_INCOME_RANGE),
14275
+ employer: z$3.string().nullable(),
14276
+ employerCountry: z$3.string().nullable()
14277
+ });
14278
+ const businessSourceOfWealthOutputSchema = z$3.object({
14279
+ financialFundsSources: z$3.array(z$3.enum(FINANCIAL_FUNDS_SOURCE)),
14280
+ mainBusinessSubjects: z$3.array(z$3.enum(CZ_TRADE_LICENSE_CODES)),
14281
+ companyTurnover: z$3.enum(COMPANY_TURNOVER_RANGE),
14282
+ operatingCountries: z$3.array(z$3.enum(OPERATING_COUNTRY)),
14283
+ operatingCountriesOther: z$3.array(z$3.enum(COUNTRY_CODES_2)).nullable(),
14284
+ businessPartners: z$3.array(businessPartnerOutputSchema).nullable(),
14285
+ businessActivitiesNote: z$3.string().nullable()
14286
+ });
13809
14287
  const createAmlOutputSchema = z$3.object({
13810
14288
  id: z$3.uuid(),
13811
14289
  partyId: z$3.uuid(),
13812
14290
  internalId: z$3.string().nullable(),
13813
- sourceOfWealth: z$3.string(),
13814
- yearlyIncome: z$3.string(),
13815
- tradesPurpose: z$3.string().nullable(),
13816
- sourceOfIncome: z$3.string(),
14291
+ sourceOfWealth: z$3.union([
14292
+ foSourceOfWealthOutputSchema,
14293
+ businessSourceOfWealthOutputSchema
14294
+ ]),
14295
+ yearlyIncome: z$3.enum(YEARLY_INCOME),
14296
+ sourceOfIncome: z$3.array(z$3.enum(INCOME_SOURCE)),
14297
+ servicePurposes: z$3.array(z$3.enum(SERVICE_PURPOSE)).nullable(),
14298
+ taxDomicile: z$3.enum(TAX_DOMICILE).nullable(),
14299
+ taxDomicileCountry: z$3.enum(COUNTRY_CODES_2).nullable(),
13817
14300
  transactionType: z$3.string().nullable(),
13818
14301
  transactionTypeExpiry: z$3.date().nullable(),
13819
14302
  isDistraint: z$3.boolean(),
13820
- estTxsVolumeMonth: z$3.string(),
13821
- estTxsVolumeYear: z$3.string(),
13822
- tradingCountries: z$3.string(),
13823
- tradingSide: z$3.string(),
14303
+ estTxsVolumeMonth: z$3.enum(EST_TXS_VOLUME_MONTH),
14304
+ estTxsVolumeYear: z$3.enum(EST_TXS_VOLUME_YEAR),
14305
+ estTxsCountMonth: z$3.number().int().nullable(),
14306
+ tradingCountries: z$3.array(z$3.enum(TARGET_COUNTRY)),
14307
+ tradingCountriesOther: z$3.array(z$3.enum(COUNTRY_CODES_2)).nullable(),
14308
+ tradingSide: z$3.enum(TRADING_SIDE),
13824
14309
  acceptedAMLTermsAndConditions: z$3.boolean(),
13825
- signatureMethod: z$3.string().nullable(),
13826
- existencePeriod: z$3.string().nullable(),
13827
- reputation: z$3.string().nullable(),
13828
- riskLevel: z$3.enum(AmlScoreTypeZod),
13829
- kycStatus: z$3.enum(KycStatusZod).nullable(),
14310
+ signatureMethod: z$3.enum(SIGNATURE_METHOD).nullable(),
14311
+ existencePeriod: z$3.enum(EXISTENCE_PERIOD).nullable(),
14312
+ reputation: z$3.enum(REPUTATION).nullable(),
14313
+ riskBusinessAreas: z$3.array(z$3.enum(RISK_BUSINESS_AREA)).nullable(),
14314
+ riskLevel: z$3.enum(AML_SCORE_TYPE),
14315
+ kycStatus: z$3.enum(KYC_STATUS).nullable(),
13830
14316
  createdAt: z$3.date().nullable(),
13831
14317
  updatedAt: z$3.date().nullable()
13832
14318
  });
14319
+ const productsOutputSchema = z$3.object({
14320
+ txs: z$3.object({
14321
+ fee: z$3.number(),
14322
+ margin: z$3.number(),
14323
+ reportingEmail: z$3.string().nullable(),
14324
+ clientType: z$3.enum(TXS_CLIENT_TYPE).nullable()
14325
+ }).nullable(),
14326
+ cbs: z$3.object({}).nullable()
14327
+ });
13833
14328
  const partyOutputSchema = z$3.object({
13834
14329
  party: partyBaseOutputSchema.nullable(),
13835
14330
  personalData: individualOutputSchema.nullable(),
@@ -13838,7 +14333,8 @@ const partyOutputSchema = z$3.object({
13838
14333
  disponents: z$3.array(disponentOutputSchema).nullable(),
13839
14334
  addresses: z$3.array(createAddressOutputSchema).nullable(),
13840
14335
  aml: createAmlOutputSchema.nullable(),
13841
- recipients: z$3.array(bankAccountOutputSchema).nullable()
14336
+ recipients: z$3.array(bankAccountOutputSchema).nullable(),
14337
+ products: productsOutputSchema.nullable()
13842
14338
  });
13843
14339
  const responseBodySchema$3 = z$3.object({
13844
14340
  message: z$3.string(),
@@ -13846,7 +14342,7 @@ const responseBodySchema$3 = z$3.object({
13846
14342
  });
13847
14343
  const getPartyByPartyIdRoute = createRoute({
13848
14344
  method: "get",
13849
- path: "/{partyId}",
14345
+ path: "/",
13850
14346
  summary: "Get party",
13851
14347
  tags: ["Parties"],
13852
14348
  request: {
@@ -13978,14 +14474,14 @@ const paramsSchema$2 = z$3.object({
13978
14474
  });
13979
14475
  const idDocumentCreateInputSchema = z$3.object({
13980
14476
  partyId: z$3.uuid(),
13981
- idDocType: z$3.enum(IdDocTypeZod),
14477
+ idDocType: z$3.enum(ID_DOC_TYPE),
13982
14478
  idDocNumber: z$3.string(),
13983
14479
  idDocHolderName: z$3.string(),
13984
14480
  issueDate: z$3.coerce.date().optional(),
13985
14481
  expirationDate: z$3.coerce.date().optional(),
13986
14482
  issuer: z$3.string().optional(),
13987
14483
  countryOfIssue: z$3.enum(COUNTRY_CODES_2).optional(),
13988
- idDocStatus: z$3.enum(IdDocStatusZod).optional()
14484
+ idDocStatus: z$3.enum(ID_DOC_STATUS).optional()
13989
14485
  });
13990
14486
  const idDocumentMultipartSchema = z$3.object({
13991
14487
  idDocument: z$3.string(),
@@ -14008,7 +14504,7 @@ const idDocumentOutputSchema = z$3.object({
14008
14504
  updatedAt: z$3.iso.datetime().nullable(),
14009
14505
  deletedAt: z$3.iso.datetime().nullable(),
14010
14506
  partyId: z$3.uuid(),
14011
- idDocType: z$3.enum(IdDocTypeZod),
14507
+ idDocType: z$3.enum(ID_DOC_TYPE),
14012
14508
  idDocNumber: z$3.string(),
14013
14509
  idDocHolderName: z$3.string(),
14014
14510
  issueDate: z$3.iso.datetime().nullable(),
@@ -14017,7 +14513,7 @@ const idDocumentOutputSchema = z$3.object({
14017
14513
  countryOfIssue: z$3.enum(COUNTRY_CODES_2).nullable(),
14018
14514
  frontImageUri: z$3.string().nullable(),
14019
14515
  backImageUri: z$3.string().nullable(),
14020
- idDocStatus: z$3.enum(IdDocStatusZod).nullable()
14516
+ idDocStatus: z$3.enum(ID_DOC_STATUS).nullable()
14021
14517
  });
14022
14518
  const responseBodySchema$2 = z$3.object({
14023
14519
  message: z$3.string(),
@@ -14025,7 +14521,7 @@ const responseBodySchema$2 = z$3.object({
14025
14521
  });
14026
14522
  const createDocumentRoute = createRoute({
14027
14523
  method: "post",
14028
- path: "/{partyId}/id-documents",
14524
+ path: "/",
14029
14525
  summary: "Create ID document and upload file",
14030
14526
  tags: ["Documents"],
14031
14527
  // middleware: [jwt, signature(), idempotency()],
@@ -14077,7 +14573,7 @@ new OpenAPIHono().openapi(
14077
14573
  createDocumentRoute,
14078
14574
  async (context) => {
14079
14575
  const rawBody = await context.req.parseBody();
14080
- const { partyId } = await context.req.param();
14576
+ const { partyId } = context.req.valid("param");
14081
14577
  const idDocumentRaw = rawBody.idDocument;
14082
14578
  const documentSide = rawBody.documentSide;
14083
14579
  const file = rawBody.file;
@@ -14177,7 +14673,7 @@ const responseBodySchema$1 = z$3.object({
14177
14673
  });
14178
14674
  const getIdDocumentsListRoute = createRoute({
14179
14675
  method: "get",
14180
- path: "/{partyId}/id-documents",
14676
+ path: "/",
14181
14677
  summary: "List party ID documents",
14182
14678
  tags: ["Documents"],
14183
14679
  request: {
@@ -14438,7 +14934,7 @@ const paramsSchema = z$3.object({
14438
14934
  });
14439
14935
  const idDocumentUpdateInputSchema = z$3.object({
14440
14936
  partyId: z$3.uuid().optional(),
14441
- idDocType: z$3.enum(IdDocTypeZod).optional(),
14937
+ idDocType: z$3.enum(ID_DOC_TYPE).optional(),
14442
14938
  idDocNumber: z$3.string().optional(),
14443
14939
  idDocHolderName: z$3.string().optional(),
14444
14940
  issueDate: z$3.coerce.date().optional(),
@@ -14447,7 +14943,7 @@ const idDocumentUpdateInputSchema = z$3.object({
14447
14943
  countryOfIssue: z$3.enum(COUNTRY_CODES_2).optional(),
14448
14944
  frontImageUri: z$3.string().optional(),
14449
14945
  backImageUri: z$3.string().optional(),
14450
- idDocStatus: z$3.enum(IdDocStatusZod).optional()
14946
+ idDocStatus: z$3.enum(ID_DOC_STATUS).optional()
14451
14947
  });
14452
14948
  const responseBodySchema = z$3.object({
14453
14949
  message: z$3.string(),
@@ -14455,7 +14951,7 @@ const responseBodySchema = z$3.object({
14455
14951
  });
14456
14952
  const updateIdDocumentRoute = createRoute({
14457
14953
  method: "put",
14458
- path: "/{partyId}/id-documents/{id}",
14954
+ path: "/",
14459
14955
  summary: "Update party document",
14460
14956
  tags: ["Documents"],
14461
14957
  middleware: [jwt, signature(), idempotency()],
@@ -14537,4 +15033,4 @@ const messageResponseSchema = z$3.object({
14537
15033
  message: z$3.string()
14538
15034
  });
14539
15035
 
14540
- export { AddressTypeZod$1 as AddressTypeZod, AmlScoreTypeZod$1 as AmlScoreTypeZod, ClientStatusActionZod, ContactTypeZod$1 as ContactTypeZod, CustomerStatusZod$1 as CustomerStatusZod, DOCUMENT_SIDE, GenderZod$1 as GenderZod, IdDocStatusZod$1 as IdDocStatusZod, IdDocTypeZod$1 as IdDocTypeZod, IdentificationTypeZod, KycStatusZod$1 as KycStatusZod, PartyRelationshipTypeZod$1 as PartyRelationshipTypeZod, PartyTypeZod$1 as PartyTypeZod, TRADER_TYPE$1 as TRADER_TYPE, createMdmClient, createPartyInputSchema, idDocumentCreateInputSchema, idDocumentMultipartSchema, idDocumentOutputSchema, idDocumentUpdateInputSchema, idDocumentsListOutputSchema, messageResponseSchema, partiesOutputDataSchema, partyCreateOutputSchema, partyOutputSchema, partySchema$1 as partySchema, partyUpdateInputSchema, updatePartyOuputSchema };
15036
+ export { ADDRESS_TYPE$1 as ADDRESS_TYPE, AML_SCORE_TYPE$1 as AML_SCORE_TYPE, CLIENT_STATUS_ACTION, COMPANY_TURNOVER_RANGE$1 as COMPANY_TURNOVER_RANGE, CONTACT_TYPE$1 as CONTACT_TYPE, CUSTOMER_STATUS$1 as CUSTOMER_STATUS, DOCUMENT_SIDE, EST_TXS_VOLUME_MONTH$1 as EST_TXS_VOLUME_MONTH, EST_TXS_VOLUME_YEAR$1 as EST_TXS_VOLUME_YEAR, EXISTENCE_PERIOD$1 as EXISTENCE_PERIOD, FINANCIAL_FUNDS_SOURCE$1 as FINANCIAL_FUNDS_SOURCE, GENDER$1 as GENDER, IDENTIFICATION_TYPE, ID_DOC_STATUS$1 as ID_DOC_STATUS, ID_DOC_TYPE$1 as ID_DOC_TYPE, INCOME_SOURCE$1 as INCOME_SOURCE, KYC_STATUS$1 as KYC_STATUS, MONTHLY_INCOME_RANGE$1 as MONTHLY_INCOME_RANGE, OPERATING_COUNTRY$1 as OPERATING_COUNTRY, PARTY_RELATIONSHIP_TYPE$1 as PARTY_RELATIONSHIP_TYPE, PARTY_TYPE$1 as PARTY_TYPE, PRODUCT_TYPE$1 as PRODUCT_TYPE, REPUTATION$1 as REPUTATION, RISK_BUSINESS_AREA$1 as RISK_BUSINESS_AREA, SERVICE_PURPOSE$1 as SERVICE_PURPOSE, SERVICE_PURPOSE_COMPANY$1 as SERVICE_PURPOSE_COMPANY, SERVICE_PURPOSE_FO$1 as SERVICE_PURPOSE_FO, SIGNATURE_METHOD$1 as SIGNATURE_METHOD, TARGET_COUNTRY$1 as TARGET_COUNTRY, TAX_DOMICILE$1 as TAX_DOMICILE, TRADER_TYPE$1 as TRADER_TYPE, TRADING_SIDE$1 as TRADING_SIDE, TXS_CLIENT_TYPE$1 as TXS_CLIENT_TYPE, YEARLY_INCOME$1 as YEARLY_INCOME, YES_NO_UNKNOWN, createMdmClient, createPartyInputSchema, idDocumentCreateInputSchema, idDocumentMultipartSchema, idDocumentOutputSchema, idDocumentUpdateInputSchema, idDocumentsListOutputSchema, messageResponseSchema, partiesOutputDataSchema, partyCreateOutputSchema, partyOutputSchema, partySchema$1 as partySchema, partyUpdateInputSchema, productsInputSchema$1 as productsInputSchema, productsOutputSchema, updatePartyOuputSchema };