@devizovaburza/mdm-sdk 1.2.0 → 1.2.1

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,11 +1,7 @@
1
1
  import { hc } from 'hono/client';
2
- import { z as z$1, createRoute, OpenAPIHono } from '@hono/zod-openapi';
3
- import { COUNTRY_CODES_2, LANGUAGE_CODES, CZ_TRADE_LICENSE_CODES, CZ_NACE_CODES, CURRENCY_CODES, BANK_CODES } from '@develit-io/general-codes';
4
- import { z } from 'zod';
5
- import { base, bankAccount as bankAccount$1, bankAccountMetadataSchema } from '@develit-io/backend-sdk';
6
- import { sqliteTable, text, integer, real, foreignKey, uniqueIndex } from 'drizzle-orm/sqlite-core';
7
- import { createInsertSchema, createUpdateSchema, createSelectSchema } from 'drizzle-zod';
8
- import 'drizzle-orm';
2
+ import { z, createRoute, OpenAPIHono } from '@hono/zod-openapi';
3
+ import { COUNTRY_CODES_2, LANGUAGE_CODES, CZ_NACE_CODES, CURRENCY_CODES, BANK_CODES, CZ_TRADE_LICENSE_CODES } from '@develit-io/general-codes';
4
+ import { bankAccountMetadataSchema } from '@develit-io/backend-sdk';
9
5
  import { jwt, signature, idempotency } from '@develit-io/backend-sdk/middlewares';
10
6
 
11
7
  const createMdmClient = (baseUrl, options) => {
@@ -17,7 +13,7 @@ const ADDRESS_TYPE$1 = [
17
13
  "REGISTERED_OFFICE",
18
14
  "CONTACT_ADDRESS"
19
15
  ];
20
- const CONTACT_TYPE$1 = [
16
+ const CONTACT_TYPE = [
21
17
  "EMAIL",
22
18
  "PHONE_AUTH",
23
19
  "PHONE_CONTACT",
@@ -30,7 +26,7 @@ const ID_DOC_STATUS$1 = [
30
26
  "EXPIRE_SOON",
31
27
  "REVOKED"
32
28
  ];
33
- const PARTY_RELATIONSHIP_TYPE$1 = [
29
+ const PARTY_RELATIONSHIP_TYPE = [
34
30
  "AUTHORIZED_SIGNATORY",
35
31
  "POA_HOLDER",
36
32
  "BOARD_MEMBER",
@@ -77,8 +73,8 @@ const KYC_STATUS$1 = [
77
73
  "UNVERIFIED",
78
74
  "REJECTED"
79
75
  ];
80
- const TRADER_TYPE$1 = ["PERSON", "COMPANY", "OSVC"];
81
- const PRODUCT_TYPE$1 = ["TXS", "CBS"];
76
+ const TRADER_TYPE = ["PERSON", "COMPANY", "OSVC"];
77
+ const PRODUCT_TYPE = ["TXS", "CBS"];
82
78
  const TXS_CLIENT_TYPE$1 = ["CLIENT", "PROVIDER"];
83
79
  const TRADING_SIDE$1 = ["SELL", "BUY", "BOTH"];
84
80
  const EST_TXS_VOLUME_MONTH$1 = ["UP_TO_1M", "1M_TO_5M", "OVER_5M"];
@@ -119,1486 +115,199 @@ const FINANCIAL_FUNDS_SOURCE$1 = [
119
115
  "INVESTMENTS",
120
116
  "LOAN",
121
117
  "OTHER"
122
- ];
123
- const SERVICE_PURPOSE_FO$1 = [
124
- "PURCHASE_OF_GOODS_AND_SERVICES",
125
- "INVESTMENTS",
126
- "OTHER"
127
- ];
128
- const SERVICE_PURPOSE_COMPANY$1 = [
129
- "PAYMENTS_TO_CUSTOMERS",
130
- "PAYMENTS_TO_SUPPLIERS",
131
- "FOREIGN_INVESTMENTS",
132
- "OTHER"
133
- ];
134
- const SERVICE_PURPOSE$1 = [
135
- ...SERVICE_PURPOSE_FO$1,
136
- ...SERVICE_PURPOSE_COMPANY$1
137
- ];
138
- const OPERATING_COUNTRY$1 = ["CZ", "EU", "OUTSIDE_EU"];
139
- const YES_NO_UNKNOWN$1 = ["YES", "NO", "UNKNOWN"];
140
- const SIGNATURE_METHOD$1 = [
141
- "IN_PERSON",
142
- "REMOTE",
143
- "COURIER",
144
- "POWER_OF_ATTORNEY"
145
- ];
146
- const EXISTENCE_PERIOD$1 = [
147
- "OVER_24_MONTHS",
148
- "OVER_16_MONTHS",
149
- "LESS_THAN_12_MONTHS",
150
- "LESS_THAN_6_MONTHS"
151
- ];
152
- const REPUTATION$1 = [
153
- "NO_NEGATIVE_RECORDS",
154
- "BUSINESS_INCREASES_RISK",
155
- "NEGATIVE_RECORDS",
156
- "SANCTIONS_LIST_HIT"
157
- ];
158
- const RISK_BUSINESS_AREA$1 = [
159
- "PAWN_SHOPS",
160
- "USED_CAR_DEALERS",
161
- "CASINOS",
162
- "REAL_ESTATE_AGENCIES",
163
- "PRECIOUS_METALS_AND_GEMS",
164
- "WEAPONS_AND_AMMUNITION",
165
- "NON_BANK_CREDIT_INSTITUTIONS",
166
- "CURRENCY_EXCHANGE",
167
- "VIRTUAL_ASSET_SERVICES"
168
- ];
169
-
170
- const ADDRESS_TYPE = [
171
- "PERMANENT_ADDRESS",
172
- "REGISTERED_OFFICE",
173
- "CONTACT_ADDRESS"
174
- ];
175
- const CONTACT_TYPE = [
176
- "EMAIL",
177
- "PHONE_AUTH",
178
- "PHONE_CONTACT",
179
- "PHONE_WORK"
180
- ];
181
- const ID_DOC_TYPE = ["PASSPORT", "ID", "DRIVING_LICENSE"];
182
- const ID_DOC_STATUS = [
183
- "ACTIVE",
184
- "EXPIRED",
185
- "EXPIRE_SOON",
186
- "REVOKED"
187
- ];
188
- const PARTY_RELATIONSHIP_TYPE = [
189
- "AUTHORIZED_SIGNATORY",
190
- "POA_HOLDER",
191
- "BOARD_MEMBER",
192
- "UBO"
193
- ];
194
- const CUSTOMER_STATUS = [
195
- // 'LEAD',
196
- "NEW",
197
- "ACTIVE",
198
- "CLOSED",
199
- "BLOCKED"
200
- // 'FORMER',
201
- // 'DECEASED',
202
- ];
203
- const PARTY_TYPE = [
204
- "INDIVIDUAL",
205
- "SELF_EMPLOYED",
206
- "ORGANIZATION"
207
- ];
208
- const AML_SCORE_TYPE = [
209
- "LOW",
210
- "MEDIUM",
211
- "HIGH",
212
- "UNACCEPTABLE",
213
- "UNVERIFIED",
214
- "UNCLASSIFIED"
215
- ];
216
- const GENDER = ["M", "F", "OTHER"];
217
- const KYC_STATUS = [
218
- "NOT_APPROVED",
219
- "VERIFIED",
220
- "UNVERIFIED",
221
- "REJECTED"
222
- ];
223
- const TRADER_TYPE = ["PERSON", "COMPANY", "OSVC"];
224
- const PRODUCT_TYPE = ["TXS", "CBS"];
225
- const TRADING_SIDE = ["SELL", "BUY", "BOTH"];
226
- const EST_TXS_VOLUME_MONTH = ["UP_TO_1M", "1M_TO_5M", "OVER_5M"];
227
- const EST_TXS_VOLUME_YEAR = [
228
- "LESS_THAN_12M",
229
- "12M_TO_50M",
230
- "OVER_50M"
231
- ];
232
- const TARGET_COUNTRY = ["CZ", "EU", "OUTSIDE_EU"];
233
- const TAX_DOMICILE = ["CZ", "EU", "US", "OTHER"];
234
- const MONTHLY_INCOME_RANGE = [
235
- "UP_TO_40K",
236
- "40K_TO_80K",
237
- "OVER_80K"
238
- ];
239
- const COMPANY_TURNOVER_RANGE = [
240
- "LESS_THAN_50M",
241
- "50M_TO_100M",
242
- "OVER_100M"
243
- ];
244
- const YEARLY_INCOME = [
245
- ...MONTHLY_INCOME_RANGE,
246
- ...COMPANY_TURNOVER_RANGE
247
- ];
248
- const INCOME_SOURCE = [
249
- "EMPLOYMENT",
250
- "PENSION",
251
- "SAVINGS",
252
- "INHERITANCE",
253
- "INVESTMENTS",
254
- "HOUSE_SALE",
255
- "CAR_SALE",
256
- "AUCTION_SALE",
257
- "OTHER"
258
- ];
259
- const FINANCIAL_FUNDS_SOURCE = [
260
- "BUSINESS_REVENUE",
261
- "INVESTMENTS",
262
- "LOAN",
263
- "OTHER"
264
- ];
265
- const SERVICE_PURPOSE_FO = [
266
- "PURCHASE_OF_GOODS_AND_SERVICES",
267
- "INVESTMENTS",
268
- "OTHER"
269
- ];
270
- const SERVICE_PURPOSE_COMPANY = [
271
- "PAYMENTS_TO_CUSTOMERS",
272
- "PAYMENTS_TO_SUPPLIERS",
273
- "FOREIGN_INVESTMENTS",
274
- "OTHER"
275
- ];
276
- const SERVICE_PURPOSE = [
277
- ...SERVICE_PURPOSE_FO,
278
- ...SERVICE_PURPOSE_COMPANY
279
- ];
280
- const OPERATING_COUNTRY = ["CZ", "EU", "OUTSIDE_EU"];
281
- const YES_NO_UNKNOWN = ["YES", "NO", "UNKNOWN"];
282
- const PERSON_ROLE = [
283
- "PERMANENT_RESIDENT",
284
- "STATUTORY_BODY",
285
- "BENEFICIAL_OWNER"
286
- ];
287
- const SIGNATURE_METHOD = [
288
- "IN_PERSON",
289
- "REMOTE",
290
- "COURIER",
291
- "POWER_OF_ATTORNEY"
292
- ];
293
- const EXISTENCE_PERIOD = [
294
- "OVER_24_MONTHS",
295
- "OVER_16_MONTHS",
296
- "LESS_THAN_12_MONTHS",
297
- "LESS_THAN_6_MONTHS"
298
- ];
299
- const REPUTATION = [
300
- "NO_NEGATIVE_RECORDS",
301
- "BUSINESS_INCREASES_RISK",
302
- "NEGATIVE_RECORDS",
303
- "SANCTIONS_LIST_HIT"
304
- ];
305
- const COURT = [
306
- "MUNICIPAL_COURT_PRAGUE",
307
- "REGIONAL_COURT_PRAGUE",
308
- "REGIONAL_COURT_CESKE_BUDEJOVICE",
309
- "REGIONAL_COURT_PLZEN",
310
- "REGIONAL_COURT_USTI_NAD_LABEM",
311
- "REGIONAL_COURT_HRADEC_KRALOVE",
312
- "REGIONAL_COURT_BRNO",
313
- "REGIONAL_COURT_OSTRAVA"
314
- ];
315
- const RISK_BUSINESS_AREA = [
316
- "PAWN_SHOPS",
317
- "USED_CAR_DEALERS",
318
- "CASINOS",
319
- "REAL_ESTATE_AGENCIES",
320
- "PRECIOUS_METALS_AND_GEMS",
321
- "WEAPONS_AND_AMMUNITION",
322
- "NON_BANK_CREDIT_INSTITUTIONS",
323
- "CURRENCY_EXCHANGE",
324
- "VIRTUAL_ASSET_SERVICES"
325
- ];
326
-
327
- const baseMdmSqlite = {
328
- ...base
329
- };
330
-
331
- const party = sqliteTable("party", {
332
- ...base,
333
- internalId: text("internal_id"),
334
- note: text("note"),
335
- customerStatus: text("customer_status", {
336
- enum: CUSTOMER_STATUS
337
- }).notNull(),
338
- partyType: text("party_type", { enum: PARTY_TYPE }).notNull(),
339
- language: text("language", { enum: LANGUAGE_CODES }).notNull(),
340
- countryCode: text("country_code", { enum: COUNTRY_CODES_2 }),
341
- isRoot: integer("is_root", { mode: "boolean" }).notNull().default(false),
342
- legacyId: text("legacy_id")
343
- });
344
-
345
- const address = sqliteTable("address", {
346
- ...base,
347
- internalId: text("internal_id"),
348
- partyId: text("party_id").notNull().references(() => party.id),
349
- ruianCode: text("ruian_code"),
350
- addressType: text("address_type", { enum: ADDRESS_TYPE }).notNull(),
351
- street: text("street"),
352
- orientationNumber: text("orientation_number"),
353
- descriptiveNumber: text("descriptive_number"),
354
- municipality: text("municipality").notNull(),
355
- municipalityPart: text("municipality_part"),
356
- zipCode: text("zip_code").notNull(),
357
- district: text("district"),
358
- region: text("region"),
359
- countryCode: text("state", { enum: COUNTRY_CODES_2 }).notNull()
360
- });
361
-
362
- const contact = sqliteTable("contact", {
363
- ...base,
364
- internalId: text("internal_id"),
365
- partyId: text("party_id").notNull().references(() => party.id),
366
- contactType: text("contact_type", { enum: CONTACT_TYPE }),
367
- email: text("email").notNull(),
368
- phoneNumber: text("phone_number").notNull()
369
- });
370
-
371
- const idDocument = sqliteTable("id_document", {
372
- ...base,
373
- internalId: text("internal_id"),
374
- partyId: text("party_id").notNull().references(() => party.id),
375
- idDocType: text("id_doc_type", { enum: ID_DOC_TYPE }).notNull(),
376
- idDocNumber: text("id_doc_number").notNull(),
377
- idDocHolderName: text("id_doc_holder_name").notNull(),
378
- issueDate: integer("issue_date", { mode: "timestamp_ms" }),
379
- expirationDate: integer("expiration_date", { mode: "timestamp_ms" }),
380
- issuer: text("issuer"),
381
- countryOfIssue: text("country_of_issue", { enum: COUNTRY_CODES_2 }),
382
- frontImageUri: text("front_image_uri"),
383
- backImageUri: text("back_image_uri"),
384
- idDocStatus: text("id_doc_status", { enum: ID_DOC_STATUS })
385
- });
386
-
387
- const individual = sqliteTable("individual", {
388
- ...base,
389
- internalId: text("internal_id"),
390
- partyId: text("party_id").notNull().unique().references(() => party.id),
391
- name: text("name").notNull(),
392
- email: text("email").notNull(),
393
- phone: text("phone"),
394
- surname: text("surname").notNull(),
395
- birthDate: text("birth_date").notNull(),
396
- birthPlace: text("birth_place"),
397
- countryOfBirth: text("country_of_birth", { enum: COUNTRY_CODES_2 }),
398
- personalId: text("personal_id").notNull(),
399
- gender: text("gender", { enum: GENDER }).notNull(),
400
- citizenship: text("citizenship", { enum: COUNTRY_CODES_2 }).notNull(),
401
- citizenshipOther: text("citizenship_other", { enum: COUNTRY_CODES_2 }),
402
- employer: text("employer"),
403
- employerCountry: text("employer_country", { enum: COUNTRY_CODES_2 }),
404
- registeredNumber: text("registered_number"),
405
- isPep: integer("is_pep", { mode: "boolean" }).notNull(),
406
- titleBefore: text("title_before"),
407
- titleAfter: text("title_after"),
408
- birthSurname: text("birth_surname"),
409
- vocativeTitle: text("vocative_title"),
410
- deathDate: integer("death_date", { mode: "timestamp_ms" }),
411
- deathNotification: integer("death_notification", { mode: "timestamp_ms" }),
412
- pin: text("pin"),
413
- stayAbroad: integer("stay_abroad", { mode: "boolean" }),
414
- stayAbroadCountries: text("stay_abroad_countries", {
415
- enum: COUNTRY_CODES_2
416
- })
417
- });
418
-
419
- const organization = sqliteTable("organization", {
420
- ...base,
421
- internalId: text("internal_id"),
422
- partyId: text("party_id").notNull().unique().references(() => party.id),
423
- businessName: text("business_name").notNull(),
424
- email: text("email"),
425
- phone: text("phone"),
426
- registeredNumber: text("registered_number").notNull(),
427
- registeredIn: text("registered_in", { enum: COUNTRY_CODES_2 }).notNull(),
428
- operatesIn: text("operates_in", { enum: COUNTRY_CODES_2 }).notNull(),
429
- presentIn: text("present_in", { enum: COUNTRY_CODES_2 }).notNull(),
430
- monthlyVolumeIn: integer("monthly_volume_in").notNull(),
431
- monthlyVolumeOut: integer("monthly_volume_out").notNull(),
432
- ownedBy: text("owned_by").notNull(),
433
- // UBO, skutecny majitel, podle Marianovy tabulky by toto mela byt mozna relace na party
434
- companyObjects: text("company_objects", { mode: "json" }).$type().notNull(),
435
- companyObjectsDescription: text("company_objects_description").notNull(),
436
- turnover3years: integer("turnover_3_years").notNull(),
437
- operationCountries: text("operation_countries").notNull(),
438
- annualTurnover: integer("annual_turnover").notNull(),
439
- riskyBusinessType: text("risky_business_type"),
440
- numberOfEmployees: integer("number_of_employees"),
441
- prosecuted: text("prosecuted"),
442
- // vedeno u soudu
443
- location: text("location"),
444
- // v lokalite
445
- fileNumber: text("file_number"),
446
- // spisova znacka
447
- websiteUrl: text("website_url"),
448
- vatPayer: integer("vat_payer", { mode: "boolean" }).notNull(),
449
- stayAbroad: integer("stay_abroad", { mode: "boolean" }),
450
- stayAbroadCountries: text("stay_abroad_countries", {
451
- enum: COUNTRY_CODES_2
452
- }),
453
- vatId: text("vat_id"),
454
- court: text("court", { enum: COURT }),
455
- registerUri: text("register_uri")
456
- });
457
-
458
- const partyRelationship = sqliteTable("party_relationship", {
459
- ...base,
460
- internalId: text("internal_id"),
461
- relationshipType: text("relationship_type", {
462
- enum: PARTY_RELATIONSHIP_TYPE
463
- }).notNull(),
464
- fromPartyId: text("from_party_id").references(() => party.id),
465
- toPartyId: text("to_party_id").references(() => party.id),
466
- fromDate: integer("from_date", { mode: "timestamp_ms" }),
467
- // FIXME: Treba se doptat https://develitio.slack.com/archives/C09VAF0G70E/p1769766644943189
468
- // viz
469
- // - Celé pole `owner[]`
470
- // - `titleBefore`, `firstName`, `lastName`, `titleAfter`
471
- // - `dateOfBirth`, `idNumber`, `address`
472
- // - `sharePercentage`
473
- // - `dateOfEstablishmentOfShare`
474
- // - `pep`
475
- sharePercentage: integer("share_percentage")
476
- });
477
-
478
- const taxResidence = sqliteTable("tax_residence", {
479
- ...base,
480
- internalId: text("internal_id"),
481
- partyId: text("party_id").notNull().unique().references(() => party.id),
482
- country: text("country", { enum: COUNTRY_CODES_2 }).notNull(),
483
- taxIdentificationNumber: text("tax_identification_number").notNull()
484
- });
485
-
486
- const partyChange = sqliteTable("party_change", {
487
- ...base,
488
- internalId: text("internal_id"),
489
- partyId: text("party_id").notNull().references(() => party.id),
490
- operation: text("operation").notNull(),
491
- diff: text("diff", { mode: "json" }).notNull(),
492
- snapshotBefore: text("snapshot_before", { mode: "json" }).notNull(),
493
- snapshotAfter: text("snapshot_after", { mode: "json" }).notNull()
494
- });
495
-
496
- const bankAccount = sqliteTable("bank_account", {
497
- ...base,
498
- internalId: text("internal_id"),
499
- ...bankAccount$1,
500
- partyId: text("party_id").notNull().references(() => party.id),
501
- statementUri: text("statement_uri")
502
- });
503
-
504
- const aml = sqliteTable("aml", {
505
- ...base,
506
- internalId: text("internal_id"),
507
- partyId: text("party_id").notNull().unique().references(() => party.id),
508
- sourceOfWealth: text("source_of_wealth", { mode: "json" }).$type().notNull(),
509
- yearlyIncome: text("yearly_income", { enum: YEARLY_INCOME }).notNull(),
510
- sourceOfIncome: text("source_of_income", { mode: "json" }).$type().notNull(),
511
- incomeSourceOther: text("income_source_other"),
512
- servicePurposes: text("service_purposes", { mode: "json" }).$type(),
513
- servicePurposesOther: text("service_purposes_other"),
514
- taxDomicile: text("tax_domicile", { enum: TAX_DOMICILE }),
515
- taxDomicileCountry: text("tax_domicile_country", { enum: COUNTRY_CODES_2 }),
516
- transactionType: text("transaction_type"),
517
- transactionTypeExpiry: integer("transaction_type_expiry", {
518
- mode: "timestamp_ms"
519
- }),
520
- estTxsVolumeMonth: text("est_txs_volume_month", {
521
- enum: EST_TXS_VOLUME_MONTH
522
- }).notNull(),
523
- estTxsVolumeYear: text("est_txs_volume_year", {
524
- enum: EST_TXS_VOLUME_YEAR
525
- }).notNull(),
526
- estTxsCountMonth: integer("est_txs_count_month"),
527
- tradingCountries: text("trading_countries", { mode: "json" }).$type().notNull(),
528
- tradingCountriesOther: text("trading_countries_other", {
529
- mode: "json"
530
- }).$type(),
531
- tradingSide: text("trading_side", { enum: TRADING_SIDE }).notNull(),
532
- acceptedAMLTermsAndConditions: integer("accepted_aml_terms_and_conditions", {
533
- mode: "boolean"
534
- }).notNull(),
535
- signatureMethod: text("signature_method", { enum: SIGNATURE_METHOD }),
536
- existencePeriod: text("existence_period", { enum: EXISTENCE_PERIOD }),
537
- reputation: text("reputation", { enum: REPUTATION }),
538
- riskBusinessAreas: text("risk_business_areas", { mode: "json" }).$type(),
539
- isDistraint: integer("is_distraint", { mode: "boolean" }).notNull().default(false),
540
- riskLevel: text("risk_level", { enum: AML_SCORE_TYPE }).notNull(),
541
- kycStatus: text("kyc_status", { enum: KYC_STATUS }),
542
- residencyAnswers: text("residency_answers", { mode: "json" }).$type()
543
- });
544
-
545
- const recipient = sqliteTable("recipient", {
546
- ...base,
547
- internalId: text("internal_id"),
548
- ...bankAccount$1,
549
- partyId: text("party_id").notNull().references(() => party.id)
550
- });
551
-
552
- const trader = sqliteTable(
553
- "trader",
554
- {
555
- ...base,
556
- internalId: text("internal_id"),
557
- type: text("trader", { length: 50, enum: TRADER_TYPE }).$type().notNull(),
558
- firstName: text("first_name", { length: 255 }),
559
- lastName: text("last_name", { length: 255 }),
560
- companyName: text("company_name", { length: 255 }),
561
- ico: text("ico", { length: 255 }),
562
- dic: text("dic", { length: 255 }),
563
- commission: real("commission").notNull(),
564
- legacyId: text("legacy_id"),
565
- parentTraderId: text("parent_trader_id")
566
- },
567
- (table) => [
568
- foreignKey({ columns: [table.parentTraderId], foreignColumns: [table.id] })
569
- ]
570
- );
571
-
572
- sqliteTable("trader_client", {
573
- ...base,
574
- clientId: text("client_id").references(() => party.id),
575
- traderId: text("trader_id").references(() => trader.id),
576
- internalId: text("internal_id"),
577
- legacyId: text("legacy_id")
578
- });
579
-
580
- const partyProduct = sqliteTable(
581
- "party_product",
582
- {
583
- ...base,
584
- partyId: text("party_id").notNull().references(() => party.id),
585
- product: text("product", { enum: PRODUCT_TYPE }).notNull(),
586
- config: text("config", { mode: "json" }).$type()
587
- },
588
- (table) => [
589
- uniqueIndex("party_product_party_id_product_unique").on(
590
- table.partyId,
591
- table.product
592
- )
593
- ]
594
- );
595
-
596
- sqliteTable("base", baseMdmSqlite);
597
-
598
- const TXS_CLIENT_TYPE = ["CLIENT", "PROVIDER"];
599
-
600
- createInsertSchema(address);
601
- createUpdateSchema(address);
602
- createSelectSchema(address);
603
- const addressInsertSchema = z.object({
604
- id: z.uuid().optional(),
605
- partyId: z.uuid(),
606
- internalId: z.string().optional().nullable(),
607
- ruianCode: z.string().optional().nullable(),
608
- addressType: z.enum(ADDRESS_TYPE),
609
- street: z.string().optional().nullable(),
610
- orientationNumber: z.string().optional().nullable(),
611
- descriptiveNumber: z.string().optional().nullable(),
612
- municipality: z.string(),
613
- municipalityPart: z.string().optional().nullable(),
614
- zipCode: z.string(),
615
- district: z.string().optional().nullable(),
616
- region: z.string().optional().nullable(),
617
- countryCode: z.enum(COUNTRY_CODES_2)
618
- });
619
- const addressUpdateSchema = z.object({
620
- id: z.uuid(),
621
- partyId: z.uuid().optional(),
622
- internalId: z.string().optional().nullable(),
623
- ruianCode: z.string().optional().nullable(),
624
- addressType: z.enum(ADDRESS_TYPE).optional(),
625
- street: z.string().optional().nullable(),
626
- orientationNumber: z.string().optional().nullable(),
627
- descriptiveNumber: z.string().optional().nullable(),
628
- municipality: z.string().optional(),
629
- municipalityPart: z.string().optional().nullable(),
630
- zipCode: z.string().optional(),
631
- district: z.string().optional().nullable(),
632
- region: z.string().optional().nullable(),
633
- countryCode: z.enum(COUNTRY_CODES_2).optional(),
634
- createdAt: z.coerce.date().nullable().optional()
635
- });
636
- const addressSelectSchema = z.object({
637
- id: z.uuid(),
638
- partyId: z.uuid(),
639
- internalId: z.string().nullable(),
640
- ruianCode: z.string().nullable(),
641
- addressType: z.enum(ADDRESS_TYPE),
642
- street: z.string().nullable(),
643
- orientationNumber: z.string().nullable(),
644
- descriptiveNumber: z.string().nullable(),
645
- municipality: z.string(),
646
- municipalityPart: z.string().nullable(),
647
- zipCode: z.string(),
648
- district: z.string().nullable(),
649
- region: z.string().nullable(),
650
- countryCode: z.enum(COUNTRY_CODES_2),
651
- createdAt: z.coerce.date().nullable(),
652
- updatedAt: z.coerce.date().nullable()
653
- });
654
-
655
- createInsertSchema(aml);
656
- createUpdateSchema(aml);
657
- createSelectSchema(aml);
658
- const residencyAnswerSchema = z.object({
659
- personName: z.string(),
660
- personRole: z.enum(PERSON_ROLE),
661
- answer: z.enum(YES_NO_UNKNOWN),
662
- country: z.enum(COUNTRY_CODES_2).nullable()
663
- });
664
- const businessPartnerSchema = z.object({
665
- name: z.string(),
666
- country: z.string(),
667
- cooperationReason: z.string().nullable()
668
- });
669
- const foSourceOfWealthSchema = z.object({
670
- incomeSources: z.array(z.enum(INCOME_SOURCE)).min(1),
671
- incomeSourceOther: z.string().nullable(),
672
- monthlyIncome: z.enum(MONTHLY_INCOME_RANGE),
673
- employer: z.string().nullable(),
674
- employerCountry: z.string().nullable()
675
- });
676
- const businessSourceOfWealthSchema = z.object({
677
- financialFundsSources: z.array(z.enum(FINANCIAL_FUNDS_SOURCE)).min(1),
678
- financialFundsSourceOther: z.string().nullable(),
679
- mainBusinessSubjects: z.array(z.enum(CZ_TRADE_LICENSE_CODES)).min(1),
680
- companyTurnover: z.enum(COMPANY_TURNOVER_RANGE),
681
- operatingCountries: z.array(z.enum(OPERATING_COUNTRY)).min(1),
682
- operatingCountriesOther: z.array(z.enum(COUNTRY_CODES_2)).nullable(),
683
- businessPartners: z.array(businessPartnerSchema).nullable(),
684
- businessActivitiesNote: z.string().nullable()
685
- });
686
- const sourceOfWealthSchema = z.union([
687
- foSourceOfWealthSchema,
688
- businessSourceOfWealthSchema
689
- ]);
690
- const businessPartnerOutputSchema$1 = z.object({
691
- name: z.string(),
692
- country: z.string(),
693
- cooperationReason: z.string().nullable()
694
- });
695
- const foSourceOfWealthOutputSchema$1 = z.object({
696
- incomeSources: z.array(z.enum(INCOME_SOURCE)),
697
- incomeSourceOther: z.string().nullable(),
698
- monthlyIncome: z.enum(MONTHLY_INCOME_RANGE),
699
- employer: z.string().nullable(),
700
- employerCountry: z.string().nullable()
701
- });
702
- const businessSourceOfWealthOutputSchema$1 = z.object({
703
- financialFundsSources: z.array(z.enum(FINANCIAL_FUNDS_SOURCE)),
704
- financialFundsSourceOther: z.string().nullable(),
705
- mainBusinessSubjects: z.array(z.enum(CZ_TRADE_LICENSE_CODES)),
706
- companyTurnover: z.enum(COMPANY_TURNOVER_RANGE),
707
- operatingCountries: z.array(z.enum(OPERATING_COUNTRY)),
708
- operatingCountriesOther: z.array(z.enum(COUNTRY_CODES_2)).nullable(),
709
- businessPartners: z.array(businessPartnerOutputSchema$1).nullable(),
710
- businessActivitiesNote: z.string().nullable()
711
- });
712
- const sourceOfWealthOutputSchema = z.union([
713
- foSourceOfWealthOutputSchema$1,
714
- businessSourceOfWealthOutputSchema$1
715
- ]);
716
- const amlInsertSchema = z.object({
717
- partyId: z.uuid(),
718
- internalId: z.string().optional(),
719
- sourceOfWealth: sourceOfWealthSchema,
720
- yearlyIncome: z.enum(YEARLY_INCOME),
721
- sourceOfIncome: z.array(z.enum(INCOME_SOURCE)).min(1),
722
- incomeSourceOther: z.string().optional(),
723
- servicePurposes: z.array(z.enum(SERVICE_PURPOSE)).optional(),
724
- servicePurposesOther: z.string().optional(),
725
- taxDomicile: z.enum(TAX_DOMICILE).optional(),
726
- taxDomicileCountry: z.enum(COUNTRY_CODES_2).optional(),
727
- transactionType: z.string().optional(),
728
- transactionTypeExpiry: z.date().optional(),
729
- isDistraint: z.boolean().default(false),
730
- estTxsVolumeMonth: z.enum(EST_TXS_VOLUME_MONTH),
731
- estTxsVolumeYear: z.enum(EST_TXS_VOLUME_YEAR),
732
- estTxsCountMonth: z.number().int().optional(),
733
- tradingCountries: z.array(z.enum(TARGET_COUNTRY)).min(1),
734
- tradingCountriesOther: z.array(z.enum(COUNTRY_CODES_2)).optional(),
735
- tradingSide: z.enum(TRADING_SIDE),
736
- acceptedAMLTermsAndConditions: z.boolean(),
737
- signatureMethod: z.enum(SIGNATURE_METHOD).optional(),
738
- existencePeriod: z.enum(EXISTENCE_PERIOD).optional(),
739
- reputation: z.enum(REPUTATION).optional(),
740
- riskBusinessAreas: z.array(z.enum(RISK_BUSINESS_AREA)).optional(),
741
- riskLevel: z.enum(AML_SCORE_TYPE).optional(),
742
- kycStatus: z.enum(KYC_STATUS).optional(),
743
- residencyAnswers: z.array(residencyAnswerSchema).optional().nullable()
744
- });
745
- const amlUpdateSchema = z.object({
746
- id: z.uuid(),
747
- partyId: z.uuid().optional(),
748
- internalId: z.string().optional(),
749
- sourceOfWealth: sourceOfWealthSchema.optional(),
750
- yearlyIncome: z.enum(YEARLY_INCOME).optional(),
751
- sourceOfIncome: z.array(z.enum(INCOME_SOURCE)).min(1).optional(),
752
- incomeSourceOther: z.string().optional(),
753
- servicePurposes: z.array(z.enum(SERVICE_PURPOSE)).optional(),
754
- servicePurposesOther: z.string().optional(),
755
- taxDomicile: z.enum(TAX_DOMICILE).optional(),
756
- taxDomicileCountry: z.enum(COUNTRY_CODES_2).optional(),
757
- transactionType: z.string().optional(),
758
- transactionTypeExpiry: z.date().optional(),
759
- isDistraint: z.boolean().optional(),
760
- estTxsVolumeMonth: z.enum(EST_TXS_VOLUME_MONTH).optional(),
761
- estTxsVolumeYear: z.enum(EST_TXS_VOLUME_YEAR).optional(),
762
- estTxsCountMonth: z.number().int().optional(),
763
- tradingCountries: z.array(z.enum(TARGET_COUNTRY)).min(1).optional(),
764
- tradingCountriesOther: z.array(z.enum(COUNTRY_CODES_2)).optional(),
765
- tradingSide: z.enum(TRADING_SIDE).optional(),
766
- acceptedAMLTermsAndConditions: z.boolean().optional(),
767
- signatureMethod: z.enum(SIGNATURE_METHOD).optional(),
768
- existencePeriod: z.enum(EXISTENCE_PERIOD).optional(),
769
- reputation: z.enum(REPUTATION).optional(),
770
- riskBusinessAreas: z.array(z.enum(RISK_BUSINESS_AREA)).optional(),
771
- riskLevel: z.enum(AML_SCORE_TYPE).optional(),
772
- kycStatus: z.enum(KYC_STATUS).optional(),
773
- residencyAnswers: z.array(residencyAnswerSchema).optional().nullable()
774
- });
775
- const amlSelectSchema = z.object({
776
- id: z.string(),
777
- partyId: z.string(),
778
- internalId: z.string().nullable(),
779
- sourceOfWealth: sourceOfWealthOutputSchema,
780
- yearlyIncome: z.enum(YEARLY_INCOME),
781
- sourceOfIncome: z.array(z.enum(INCOME_SOURCE)),
782
- incomeSourceOther: z.string().nullable(),
783
- servicePurposes: z.array(z.enum(SERVICE_PURPOSE)).nullable(),
784
- servicePurposesOther: z.string().nullable(),
785
- taxDomicile: z.enum(TAX_DOMICILE).nullable(),
786
- taxDomicileCountry: z.enum(COUNTRY_CODES_2).nullable(),
787
- transactionType: z.string().nullable(),
788
- transactionTypeExpiry: z.date().nullable(),
789
- isDistraint: z.boolean(),
790
- estTxsVolumeMonth: z.enum(EST_TXS_VOLUME_MONTH),
791
- estTxsVolumeYear: z.enum(EST_TXS_VOLUME_YEAR),
792
- estTxsCountMonth: z.number().int().nullable(),
793
- tradingCountries: z.array(z.enum(TARGET_COUNTRY)),
794
- tradingCountriesOther: z.array(z.enum(COUNTRY_CODES_2)).nullable(),
795
- tradingSide: z.enum(TRADING_SIDE),
796
- acceptedAMLTermsAndConditions: z.boolean(),
797
- signatureMethod: z.enum(SIGNATURE_METHOD).nullable(),
798
- existencePeriod: z.enum(EXISTENCE_PERIOD).nullable(),
799
- reputation: z.enum(REPUTATION).nullable(),
800
- riskBusinessAreas: z.array(z.enum(RISK_BUSINESS_AREA)).nullable(),
801
- riskLevel: z.enum(AML_SCORE_TYPE),
802
- kycStatus: z.enum(KYC_STATUS).nullable(),
803
- residencyAnswers: z.array(residencyAnswerSchema).nullable(),
804
- createdAt: z.date().nullable(),
805
- updatedAt: z.date().nullable(),
806
- deletedAt: z.date().nullable()
807
- });
808
-
809
- const bankAccountBaseInsertSchema = createInsertSchema(bankAccount);
810
- createUpdateSchema(bankAccount);
811
- createSelectSchema(bankAccount);
812
- const bankAccountUpdateSchema = bankAccountBaseInsertSchema.extend({ partyId: z.uuid(), bankCode: z.string().nullable().optional() }).omit({});
813
- const bankAccountInsertSchema = bankAccountUpdateSchema.omit({
814
- id: true
815
- });
816
- const bankAccountUpsertSchema = bankAccountBaseInsertSchema.required({
817
- id: true
818
- });
819
- const bankAccountSelectSchema = bankAccountUpdateSchema.required().extend({
820
- bankCode: z.string().nullable(),
821
- statementUri: z.string().nullable()
822
- });
823
- z.array(bankAccountSelectSchema);
824
-
825
- createInsertSchema(contact);
826
- createUpdateSchema(contact);
827
- createSelectSchema(contact);
828
- const contactInsertSchema = z.object({
829
- partyId: z.uuid(),
830
- internalId: z.string().optional().nullable(),
831
- contactType: z.enum(CONTACT_TYPE).optional(),
832
- email: z.email("Invalid email format"),
833
- phoneNumber: z.string()
834
- });
835
- const contactUpdateSchema = z.object({
836
- id: z.uuid(),
837
- partyId: z.uuid().optional(),
838
- internalId: z.string().optional().nullable(),
839
- contactType: z.enum(CONTACT_TYPE).optional(),
840
- email: z.email("Invalid email format").optional(),
841
- phoneNumber: z.string().optional()
842
- });
843
-
844
- const insertOverrides = {
845
- id: z.uuid(),
846
- partyId: z.uuid(),
847
- email: z.email("Invalid email format")
848
- };
849
- const selectOverrides = {
850
- id: z.uuid(),
851
- partyId: z.uuid(),
852
- deathDate: z.coerce.date().nullable(),
853
- deathNotification: z.coerce.date().nullable(),
854
- createdAt: z.coerce.date().nullable(),
855
- updatedAt: z.coerce.date().nullable()
856
- };
857
- const individualBaseInsertSchema = createInsertSchema(
858
- individual,
859
- insertOverrides
860
- );
861
- createUpdateSchema(individual, {
862
- id: z.uuid(),
863
- partyId: z.uuid(),
864
- email: z.email("Invalid email format").optional()
865
- });
866
- const individualBaseSelectSchema = createSelectSchema(
867
- individual,
868
- selectOverrides
869
- );
870
- const individualInsertSchema$1 = individualBaseInsertSchema.omit({
871
- id: true,
872
- internalId: true,
873
- createdAt: true,
874
- updatedAt: true
875
- });
876
- const individualUpdateSchema$1 = individualInsertSchema$1.partial().extend({
877
- partyId: z.uuid(),
878
- id: z.uuid()
879
- });
880
- const individualSelectSchema = individualBaseSelectSchema;
881
-
882
- createInsertSchema(organization);
883
- createUpdateSchema(organization);
884
- createSelectSchema(organization);
885
- const organizationInsertSchema = z.object({
886
- partyId: z.uuid(),
887
- businessName: z.string(),
888
- email: z.email("Invalid email format").optional().nullable(),
889
- phone: z.string().optional().nullable(),
890
- registeredNumber: z.string(),
891
- registeredIn: z.enum(COUNTRY_CODES_2),
892
- operatesIn: z.enum(COUNTRY_CODES_2),
893
- presentIn: z.enum(COUNTRY_CODES_2),
894
- monthlyVolumeIn: z.number(),
895
- monthlyVolumeOut: z.number(),
896
- ownedBy: z.string(),
897
- companyObjects: z.array(z.enum(CZ_NACE_CODES)).min(1),
898
- annualTurnover: z.number(),
899
- numberOfEmployees: z.number().optional().nullable(),
900
- prosecuted: z.string().optional().nullable(),
901
- location: z.string().optional().nullable(),
902
- fileNumber: z.string().optional().nullable(),
903
- websiteUrl: z.url("Invalid website URL").optional().nullable(),
904
- vatPayer: z.boolean(),
905
- companyObjectsDescription: z.string(),
906
- turnover3years: z.number(),
907
- operationCountries: z.string(),
908
- riskyBusinessType: z.string().optional().nullable(),
909
- vatId: z.string().optional().nullable(),
910
- court: z.enum(COURT).optional().nullable(),
911
- registerUri: z.string().optional().nullable()
912
- });
913
- const organizationUpdateSchema$1 = z.object({
914
- partyId: z.uuid().optional(),
915
- id: z.uuid(),
916
- businessName: z.string().optional(),
917
- email: z.email("Invalid email format").optional().nullable(),
918
- phone: z.string().optional().nullable(),
919
- registeredNumber: z.string().optional(),
920
- registeredIn: z.enum(COUNTRY_CODES_2).optional(),
921
- operatesIn: z.enum(COUNTRY_CODES_2).optional(),
922
- presentIn: z.enum(COUNTRY_CODES_2).optional(),
923
- monthlyVolumeIn: z.number().optional(),
924
- monthlyVolumeOut: z.number().optional(),
925
- ownedBy: z.string().optional(),
926
- companyObjects: z.array(z.enum(CZ_NACE_CODES)).min(1).optional(),
927
- annualTurnover: z.number().optional(),
928
- numberOfEmployees: z.number().optional().nullable(),
929
- prosecuted: z.string().optional().nullable(),
930
- location: z.string().optional().nullable(),
931
- fileNumber: z.string().optional().nullable(),
932
- websiteUrl: z.url("Invalid website URL").optional().nullable(),
933
- vatPayer: z.boolean().optional(),
934
- companyObjectsDescription: z.string(),
935
- turnover3years: z.number(),
936
- operationCountries: z.string(),
937
- riskyBusinessType: z.string().optional().nullable(),
938
- vatId: z.string().optional().nullable(),
939
- court: z.enum(COURT).optional().nullable(),
940
- registerUri: z.string().optional().nullable()
941
- });
942
- const organizationOutputSchema = z.object({
943
- id: z.uuid(),
944
- partyId: z.uuid(),
945
- internalId: z.string().nullable(),
946
- businessName: z.string(),
947
- email: z.string().nullable(),
948
- phone: z.string().nullable(),
949
- registeredNumber: z.string(),
950
- registeredIn: z.enum(COUNTRY_CODES_2),
951
- operatesIn: z.enum(COUNTRY_CODES_2),
952
- presentIn: z.enum(COUNTRY_CODES_2),
953
- monthlyVolumeIn: z.number(),
954
- monthlyVolumeOut: z.number(),
955
- ownedBy: z.string(),
956
- companyObjects: z.array(z.enum(CZ_NACE_CODES)),
957
- annualTurnover: z.number(),
958
- numberOfEmployees: z.number().nullable(),
959
- prosecuted: z.string().nullable(),
960
- location: z.string().nullable(),
961
- fileNumber: z.string().nullable(),
962
- websiteUrl: z.string().nullable(),
963
- vatPayer: z.boolean(),
964
- companyObjectsDescription: z.string(),
965
- turnover3years: z.number(),
966
- operationCountries: z.string(),
967
- riskyBusinessType: z.string().nullable(),
968
- stayAbroad: z.boolean().nullable(),
969
- stayAbroadCountries: z.enum(COUNTRY_CODES_2).nullable(),
970
- vatId: z.string().nullable(),
971
- court: z.enum(COURT).nullable(),
972
- registerUri: z.string().nullable(),
973
- createdAt: z.coerce.date().nullable(),
974
- updatedAt: z.coerce.date().nullable()
975
- });
976
- const organizationSelectSchema = organizationOutputSchema;
977
- z.array(organizationOutputSchema);
978
-
979
- createInsertSchema(idDocument);
980
- createUpdateSchema(idDocument);
981
- const idDocumentBaseSelectSchema = createSelectSchema(idDocument);
982
- const idDocumentInsertSchema = z.object({
983
- partyId: z.uuid(),
984
- internalId: z.string().optional().nullable(),
985
- idDocType: z.enum(ID_DOC_TYPE),
986
- idDocNumber: z.string(),
987
- idDocHolderName: z.string(),
988
- issueDate: z.date().optional().nullable(),
989
- expirationDate: z.date().optional().nullable(),
990
- issuer: z.string().optional().nullable(),
991
- countryOfIssue: z.enum(COUNTRY_CODES_2).optional().nullable(),
992
- frontImageUri: z.url().optional().nullable(),
993
- backImageUri: z.url().optional().nullable(),
994
- idDocStatus: z.enum(ID_DOC_STATUS).optional().nullable()
995
- });
996
- const idDocumentUpdateSchema = z.object({
997
- id: z.uuid(),
998
- partyId: z.uuid().optional(),
999
- internalId: z.string().optional().nullable(),
1000
- idDocType: z.enum(ID_DOC_TYPE).optional(),
1001
- idDocNumber: z.string().optional(),
1002
- idDocHolderName: z.string().optional(),
1003
- issueDate: z.date().optional().nullable(),
1004
- expirationDate: z.date().optional().nullable(),
1005
- issuer: z.string().optional().nullable(),
1006
- countryOfIssue: z.enum(COUNTRY_CODES_2).optional().nullable(),
1007
- frontImageUri: z.url("Invalid URL format").optional().nullable(),
1008
- backImageUri: z.url("Invalid URL format").optional().nullable(),
1009
- idDocStatus: z.enum(ID_DOC_STATUS).optional().nullable()
1010
- });
1011
- const idDocumentSelectSchema = idDocumentBaseSelectSchema;
1012
- const idDocumentSyncSchema = idDocumentInsertSchema.omit({ partyId: true }).extend({ id: z.uuid().optional(), idDocHolderName: z.string().optional() });
1013
-
1014
- z.discriminatedUnion("partyType", [
1015
- z.object({
1016
- partyType: z.literal("INDIVIDUAL"),
1017
- data: individualInsertSchema$1
1018
- }),
1019
- z.object({
1020
- partyType: z.literal("ORGANIZATION"),
1021
- data: organizationInsertSchema
1022
- })
1023
- ]);
1024
- const disponentCreateSchema = z.discriminatedUnion("partyType", [
1025
- z.object({
1026
- partyType: z.literal("INDIVIDUAL"),
1027
- relationshipType: z.enum(PARTY_RELATIONSHIP_TYPE).optional(),
1028
- data: individualInsertSchema$1.omit({ partyId: true }).extend({
1029
- identityDocuments: z.array(idDocumentSyncSchema).nullable().optional()
1030
- })
1031
- }),
1032
- z.object({
1033
- partyType: z.literal("ORGANIZATION"),
1034
- relationshipType: z.enum(PARTY_RELATIONSHIP_TYPE).optional(),
1035
- data: organizationInsertSchema.omit({ partyId: true })
1036
- })
1037
- ]);
1038
- const disponentUpdateSchema = z.discriminatedUnion("partyType", [
1039
- z.object({
1040
- partyType: z.literal("INDIVIDUAL"),
1041
- data: individualUpdateSchema$1
1042
- }),
1043
- z.object({
1044
- partyType: z.literal("ORGANIZATION"),
1045
- data: organizationUpdateSchema$1
1046
- })
1047
- ]);
1048
- const disponentSyncSchema$1 = z.discriminatedUnion("partyType", [
1049
- z.object({
1050
- partyType: z.literal("INDIVIDUAL"),
1051
- relationshipType: z.enum(PARTY_RELATIONSHIP_TYPE).optional(),
1052
- data: individualInsertSchema$1.omit({ partyId: true }).extend({
1053
- id: z.uuid().optional(),
1054
- identityDocuments: z.array(idDocumentSyncSchema).nullable().optional()
1055
- })
1056
- }),
1057
- z.object({
1058
- partyType: z.literal("ORGANIZATION"),
1059
- relationshipType: z.enum(PARTY_RELATIONSHIP_TYPE).optional(),
1060
- data: organizationInsertSchema.omit({ partyId: true }).extend({ id: z.uuid().optional() })
1061
- })
1062
- ]);
1063
- const disponentSelectSchema = z.discriminatedUnion("partyType", [
1064
- z.object({
1065
- partyType: z.literal("INDIVIDUAL"),
1066
- data: individualSelectSchema.extend({
1067
- identityDocuments: z.array(idDocumentSelectSchema).nullable()
1068
- })
1069
- }),
1070
- z.object({
1071
- partyType: z.literal("ORGANIZATION"),
1072
- data: organizationSelectSchema
1073
- })
1074
- ]);
1075
- const disponentsSelectSchema = z.array(disponentSelectSchema).optional();
1076
- z.array(disponentUpdateSchema).optional();
1077
-
1078
- const recipientBaseInsertSchema = createInsertSchema(recipient);
1079
- const recipientBaseUpdateSchema = createUpdateSchema(recipient);
1080
- createSelectSchema(recipient);
1081
- const recipientUpsertSchema = recipientBaseInsertSchema.required({
1082
- id: true
1083
- });
1084
- const recipientInsertSchema = bankAccountInsertSchema;
1085
- const recipientUpdateSchema = recipientBaseUpdateSchema.required({
1086
- id: true
1087
- });
1088
- const recipientSelectSchema = bankAccountSelectSchema.omit({
1089
- statementUri: true
1090
- });
1091
-
1092
- const productTxsConfigSchema = z.object({
1093
- fee: z.number(),
1094
- margin: z.number(),
1095
- reportingEmail: z.string().optional(),
1096
- clientType: z.enum(TXS_CLIENT_TYPE).optional()
1097
- });
1098
- const productCbsConfigSchema = z.object({});
1099
- const productConfigSchema = z.union([
1100
- productTxsConfigSchema,
1101
- productCbsConfigSchema
1102
- ]);
1103
- const partyProductBaseInsertSchema = createInsertSchema(partyProduct, {
1104
- config: () => productConfigSchema.nullable()
1105
- });
1106
- createUpdateSchema(partyProduct, {
1107
- config: () => productConfigSchema.nullable()
1108
- });
1109
- createSelectSchema(partyProduct, {
1110
- config: () => productConfigSchema.nullable()
1111
- });
1112
- const partyProductUpdateSchema = partyProductBaseInsertSchema.extend({
1113
- partyId: z.uuid()
1114
- });
1115
- partyProductUpdateSchema.omit({
1116
- id: true
1117
- });
1118
- const partyProductSelectSchema = partyProductUpdateSchema.required();
1119
- z.array(partyProductSelectSchema);
1120
- const productsInputSchema$2 = z.object({
1121
- txs: productTxsConfigSchema.optional(),
1122
- cbs: productCbsConfigSchema.optional()
1123
- });
1124
- const productTxsConfigOutputSchema = z.object({
1125
- fee: z.number(),
1126
- margin: z.number(),
1127
- reportingEmail: z.string().nullable(),
1128
- clientType: z.enum(TXS_CLIENT_TYPE).nullable()
1129
- });
1130
- const productsOutputSchema$1 = z.object({
1131
- txs: productTxsConfigOutputSchema.nullable(),
1132
- cbs: productCbsConfigSchema.nullable()
1133
- });
1134
-
1135
- const legalRepresentativeSyncSchema$1 = individualInsertSchema$1.omit({ partyId: true }).extend({
1136
- id: z.uuid().optional(),
1137
- dateOfEstablishment: z.string(),
1138
- address: addressInsertSchema.omit({ partyId: true }).nullable().optional(),
1139
- identityDocuments: z.array(idDocumentSyncSchema).nullable().optional()
1140
- });
1141
- const ownerSyncSchema$1 = individualInsertSchema$1.omit({ partyId: true }).extend({
1142
- id: z.uuid().optional(),
1143
- sharePercentage: z.number().min(0).max(100),
1144
- shareEstablishedAt: z.string(),
1145
- address: addressInsertSchema.omit({ partyId: true }).nullable().optional()
1146
- });
1147
- const legalRepresentativeSelectSchema = individualSelectSchema.extend({
1148
- dateOfEstablishment: z.string().nullable(),
1149
- address: addressSelectSchema.nullable(),
1150
- identityDocuments: z.array(idDocumentSelectSchema).nullable()
1151
- });
1152
- const ownerSelectSchema = individualSelectSchema.extend({
1153
- sharePercentage: z.number().nullable(),
1154
- shareEstablishedAt: z.string().nullable(),
1155
- address: addressSelectSchema.nullable()
1156
- });
1157
- const partyInsertSchema = createInsertSchema(party);
1158
- createUpdateSchema(party);
1159
- const partySchema$2 = z.object({
1160
- partyType: z.enum(PARTY_TYPE),
1161
- language: z.enum(LANGUAGE_CODES),
1162
- id: z.uuid().nullable(),
1163
- note: z.string().optional(),
1164
- countryCode: z.enum(COUNTRY_CODES_2).optional(),
1165
- customerStatus: z.enum(CUSTOMER_STATUS).optional(),
1166
- isRoot: z.boolean().optional(),
1167
- legacyId: z.string().optional()
1168
- });
1169
- const partyOutputSchema$1 = z.object({
1170
- internalId: z.string().nullable(),
1171
- customerStatus: z.enum(CUSTOMER_STATUS),
1172
- partyType: z.enum(PARTY_TYPE),
1173
- language: z.enum(LANGUAGE_CODES),
1174
- id: z.uuid(),
1175
- note: z.string().nullable(),
1176
- countryCode: z.enum(COUNTRY_CODES_2).nullable(),
1177
- isRoot: z.boolean(),
1178
- createdAt: z.date().nullable(),
1179
- updatedAt: z.date().nullable()
1180
- });
1181
- const createPartySchema = partySchema$2.omit({ id: true });
1182
- z.object({
1183
- party: createPartySchema,
1184
- personalData: individualInsertSchema$1.omit({ partyId: true }).extend({
1185
- identityDocuments: z.array(idDocumentSyncSchema).nullable().optional()
1186
- }).nullable(),
1187
- organizationData: organizationInsertSchema.omit({ partyId: true }).nullable(),
1188
- bankAccounts: z.array(bankAccountInsertSchema.omit({ partyId: true })).nullable(),
1189
- recipients: z.array(recipientInsertSchema.omit({ partyId: true })).nullable(),
1190
- disponents: z.array(disponentCreateSchema).nullable(),
1191
- addresses: z.array(addressInsertSchema.omit({ partyId: true })),
1192
- aml: amlInsertSchema.omit({ partyId: true }).optional().nullable(),
1193
- products: productsInputSchema$2.optional(),
1194
- traderIds: z.array(z.uuid()).optional()
1195
- });
1196
- z.object({
1197
- partyId: z.uuid(),
1198
- party: partySchema$2,
1199
- personalData: individualUpdateSchema$1.extend({
1200
- identityDocuments: z.array(idDocumentSyncSchema).nullable().optional()
1201
- }).optional(),
1202
- organizationData: organizationUpdateSchema$1.optional(),
1203
- bankAccounts: z.array(bankAccountUpsertSchema.partial({ id: true })).optional(),
1204
- recipients: z.array(recipientUpsertSchema.partial({ id: true })).optional(),
1205
- disponents: z.array(disponentSyncSchema$1).optional(),
1206
- addresses: z.array(addressInsertSchema).optional(),
1207
- aml: amlUpdateSchema.optional(),
1208
- products: productsInputSchema$2.optional(),
1209
- traderIds: z.array(z.uuid()).optional(),
1210
- legalRepresentatives: z.array(legalRepresentativeSyncSchema$1).optional(),
1211
- owners: z.array(ownerSyncSchema$1).optional()
1212
- });
1213
- const partySelectOutputSchema = z.object({
1214
- party: partyOutputSchema$1.nullable(),
1215
- personalData: individualSelectSchema.extend({
1216
- identityDocuments: z.array(idDocumentSelectSchema).nullable()
1217
- }).nullable(),
1218
- organizationData: organizationSelectSchema.nullable(),
1219
- aml: amlSelectSchema.nullable(),
1220
- bankAccounts: z.array(bankAccountSelectSchema).nullable(),
1221
- disponents: z.array(disponentSelectSchema).nullable(),
1222
- addresses: z.array(addressSelectSchema).nullable(),
1223
- recipients: z.array(recipientSelectSchema).nullable(),
1224
- products: productsOutputSchema$1.nullable(),
1225
- traderIds: z.array(z.uuid()).nullable(),
1226
- legalRepresentatives: z.array(legalRepresentativeSelectSchema).nullable(),
1227
- owners: z.array(ownerSelectSchema).nullable()
1228
- });
1229
- z.array(partySelectOutputSchema);
1230
- const partySelectDataSchema = z.object({
1231
- party: partyOutputSchema$1.nullable(),
1232
- personalData: individualSelectSchema.extend({
1233
- identityDocuments: z.array(idDocumentSelectSchema).nullable()
1234
- }).nullable(),
1235
- organizationData: organizationSelectSchema.nullable(),
1236
- aml: amlSelectSchema.nullable()
1237
- });
1238
- const partySelectArrayDataSchema = z.object({
1239
- bankAccounts: z.array(bankAccountSelectSchema).nullable(),
1240
- addresses: z.array(addressSelectSchema).nullable(),
1241
- disponents: z.array(disponentSelectSchema).nullable(),
1242
- recipients: z.array(recipientSelectSchema).nullable(),
1243
- legalRepresentatives: z.array(legalRepresentativeSelectSchema).nullable(),
1244
- owners: z.array(ownerSelectSchema).nullable()
1245
- });
1246
- z.object({
1247
- ...partySelectDataSchema.shape,
1248
- ...partySelectArrayDataSchema.shape,
1249
- products: productsOutputSchema$1.nullable(),
1250
- traderIds: z.array(z.uuid()).nullable()
1251
- });
1252
-
1253
- createInsertSchema(partyChange);
1254
- createUpdateSchema(partyChange);
1255
- createSelectSchema(partyChange);
1256
- z.object({
1257
- partyId: z.uuid().optional().nullable(),
1258
- internalId: z.string().optional().nullable(),
1259
- operation: z.string(),
1260
- diff: z.json(),
1261
- snapshotBefore: z.json(),
1262
- snapshotAfter: z.json()
1263
- });
1264
- z.object({
1265
- id: z.uuid(),
1266
- partyId: z.uuid().optional().nullable(),
1267
- internalId: z.string().optional().nullable(),
1268
- operation: z.string().optional(),
1269
- diff: z.json().optional(),
1270
- snapshotBefore: z.json().optional(),
1271
- snapshotAfter: z.json().optional()
1272
- });
1273
-
1274
- createInsertSchema(partyRelationship);
1275
- createUpdateSchema(partyRelationship);
1276
- createSelectSchema(partyRelationship);
1277
- z.object({
1278
- relationshipType: z.enum(PARTY_RELATIONSHIP_TYPE).optional(),
1279
- frompartyId: z.uuid().optional().nullable(),
1280
- internalId: z.string().optional().nullable(),
1281
- topartyId: z.uuid().optional().nullable(),
1282
- fromDate: z.date().optional().nullable(),
1283
- sharePercentage: z.number().max(100).optional().nullable()
1284
- });
1285
- z.object({
1286
- id: z.uuid(),
1287
- relationshipType: z.enum(PARTY_RELATIONSHIP_TYPE).optional(),
1288
- frompartyId: z.uuid().optional().nullable(),
1289
- internalId: z.string().optional().nullable(),
1290
- topartyId: z.uuid().optional().nullable(),
1291
- fromDate: z.date().optional().nullable(),
1292
- sharePercentage: z.number().max(100).optional().nullable()
1293
- });
1294
-
1295
- createInsertSchema(taxResidence);
1296
- createUpdateSchema(taxResidence);
1297
- createSelectSchema(taxResidence);
1298
- z.object({
1299
- partyId: z.uuid(),
1300
- country: z.enum(COUNTRY_CODES_2),
1301
- taxIdentificationNumber: z.string()
1302
- });
1303
- z.object({
1304
- id: z.uuid(),
1305
- partyId: z.uuid().optional(),
1306
- country: z.enum(COUNTRY_CODES_2).optional(),
1307
- taxIdentificationNumber: z.string().optional()
1308
- });
1309
-
1310
- createInsertSchema(trader);
1311
- createUpdateSchema(trader);
1312
- createSelectSchema(trader);
1313
- const traderInsertSchema = z.object({
1314
- type: z.enum(TRADER_TYPE),
1315
- commission: z.number(),
1316
- firstName: z.string().optional(),
1317
- lastName: z.string().optional(),
1318
- companyName: z.string().optional(),
1319
- ico: z.string().optional(),
1320
- dic: z.string().optional(),
1321
- legacyId: z.string().optional(),
1322
- parentTraderId: z.uuid().optional()
1323
- });
1324
- const traderUpdateSchema = z.object({
1325
- id: z.uuid(),
1326
- type: z.enum(TRADER_TYPE).optional(),
1327
- commission: z.number().optional(),
1328
- internalId: z.string().optional(),
1329
- firstName: z.string().optional(),
1330
- lastName: z.string().optional(),
1331
- companyName: z.string().optional(),
1332
- ico: z.string().optional(),
1333
- dic: z.string().optional(),
1334
- legacyId: z.string().optional(),
1335
- parentTraderId: z.uuid().optional()
1336
- });
1337
- z.object({
1338
- id: z.uuid(),
1339
- createdAt: z.coerce.date().nullable(),
1340
- updatedAt: z.coerce.date().nullable(),
1341
- deletedAt: z.coerce.date().nullable(),
1342
- type: z.enum(TRADER_TYPE),
1343
- commission: z.number(),
1344
- internalId: z.string().nullable(),
1345
- firstName: z.string().nullable(),
1346
- lastName: z.string().nullable(),
1347
- companyName: z.string().nullable(),
1348
- ico: z.string().nullable(),
1349
- dic: z.string().nullable(),
1350
- legacyId: z.string().nullable(),
1351
- parentTraderId: z.uuid().nullable()
1352
- });
1353
-
1354
- const paginationSchema = z.object({
1355
- offset: z.number().default(1),
1356
- limit: z.number().default(10)
1357
- });
1358
- const paginationAndSearchSchema = z.object({
1359
- page: z.coerce.number().positive().default(1),
1360
- limit: z.coerce.number().positive().default(20),
1361
- column: z.string(),
1362
- direction: z.enum(["asc", "desc"]),
1363
- search: z.string().optional(),
1364
- ids: z.string().array().optional()
1365
- });
1366
- paginationSchema.extend({
1367
- partyId: z.uuid()
1368
- });
1369
- paginationSchema.extend({
1370
- id: z.uuid()
1371
- });
1372
- z.object({ partyId: z.uuid() });
1373
-
1374
- z.object({
1375
- trader: traderInsertSchema
1376
- });
1377
-
1378
- z.object({
1379
- trader: traderUpdateSchema
1380
- });
1381
-
1382
- z.object({
1383
- id: z.uuid()
1384
- });
1385
-
1386
- z.object({
1387
- page: z.number().positive(),
1388
- limit: z.number().positive(),
1389
- sort: z.object({
1390
- column: z.string(),
1391
- direction: z.enum(["asc", "desc"])
1392
- }),
1393
- search: z.string().optional(),
1394
- ids: z.array(z.uuid()).optional(),
1395
- parentTraderId: z.uuid().optional().or(z.literal("null"))
1396
- });
1397
-
1398
- z.object({
1399
- id: z.uuid()
1400
- });
1401
-
1402
- z.object({
1403
- traderId: z.uuid(),
1404
- clientId: z.uuid()
1405
- });
1406
- z.object({
1407
- id: z.uuid()
1408
- });
1409
-
1410
- z.object({
1411
- recipient: recipientInsertSchema,
1412
- partyId: z.string().uuid()
1413
- });
1414
-
1415
- z.object({
1416
- recipient: recipientUpdateSchema
1417
- });
1418
-
1419
- z.object({
1420
- id: z.uuid()
1421
- });
1422
-
1423
- const ALLOWED_RECIPIENTS_FILTERS = {
1424
- NAME: "filterRecipientName",
1425
- BANK_CODE: "filterRecipientBankCode",
1426
- CURRENCY: "filterRecipientCurrency"
1427
- };
1428
- z.object({
1429
- page: z.number().positive(),
1430
- limit: z.number().positive(),
1431
- sort: z.object({
1432
- column: z.string(),
1433
- direction: z.enum(["asc", "desc"])
1434
- }),
1435
- [ALLOWED_RECIPIENTS_FILTERS.NAME]: z.union([z.string(), z.string().array()]).optional(),
1436
- [ALLOWED_RECIPIENTS_FILTERS.BANK_CODE]: z.union([z.enum(BANK_CODES), z.enum(BANK_CODES).array()]).optional(),
1437
- [ALLOWED_RECIPIENTS_FILTERS.CURRENCY]: z.union([z.enum(CURRENCY_CODES), z.enum(CURRENCY_CODES).array()]).optional(),
1438
- search: z.string().optional()
1439
- });
1440
-
1441
- z.object({
1442
- id: z.uuid()
1443
- });
1444
-
1445
- z.object({
1446
- bankAccount: bankAccountInsertSchema,
1447
- partyId: z.string().uuid()
1448
- });
1449
-
1450
- z.object({
1451
- bankAccount: bankAccountUpsertSchema
1452
- });
1453
-
1454
- z.object({
1455
- id: z.uuid()
1456
- });
1457
-
1458
- z.object({
1459
- id: z.uuid()
1460
- });
1461
-
1462
- z.object({
1463
- address: addressInsertSchema,
1464
- partyId: z.uuid()
1465
- });
1466
-
1467
- z.object({
1468
- address: addressUpdateSchema
1469
- });
1470
-
1471
- z.object({
1472
- id: z.uuid()
1473
- });
1474
-
1475
- z.object({
1476
- id: z.uuid()
1477
- });
1478
-
1479
- z.object({
1480
- contact: contactInsertSchema,
1481
- partyId: z.string().uuid()
1482
- });
1483
-
1484
- z.object({
1485
- contact: contactUpdateSchema
1486
- });
1487
-
1488
- z.object({
1489
- idDocument: idDocumentInsertSchema,
1490
- partyId: z.string()
1491
- });
1492
-
1493
- z.object({
1494
- idDocument: idDocumentUpdateSchema
1495
- });
1496
-
1497
- z.object({
1498
- id: z.uuid()
1499
- });
1500
-
1501
- const ALLOWED_ID_DOCUMENTS_FILTERS$1 = {
1502
- PARTY_ID: "filterIdDocumentPartyId",
1503
- ISSUER: "filterIdDocumentIssuer"
1504
- };
1505
- z.object({
1506
- pagination: z.object({
1507
- page: z.number().positive(),
1508
- limit: z.number().positive(),
1509
- sort: z.object({
1510
- column: z.string(),
1511
- direction: z.enum(["asc", "desc"])
1512
- }),
1513
- [ALLOWED_ID_DOCUMENTS_FILTERS$1.PARTY_ID]: z.union([z.uuid(), z.uuid().array()]).optional(),
1514
- [ALLOWED_ID_DOCUMENTS_FILTERS$1.ISSUER]: z.union([z.string(), z.string().array()]).optional(),
1515
- search: z.string().optional()
1516
- })
1517
- });
1518
-
1519
- z.object({
1520
- id: z.uuid()
1521
- });
1522
-
1523
- z.object({
1524
- individual: individualInsertSchema$1
1525
- });
1526
-
1527
- z.object({
1528
- individual: individualInsertSchema$1
1529
- });
1530
-
1531
- z.object({
1532
- id: z.uuid()
1533
- });
1534
-
1535
- z.object({
1536
- id: z.uuid()
1537
- });
1538
-
1539
- z.object({
1540
- id: z.uuid()
1541
- });
1542
-
1543
- z.object({
1544
- id: z.uuid()
1545
- });
1546
-
1547
- z.object({
1548
- id: z.uuid()
1549
- });
1550
-
1551
- z.object({
1552
- id: z.uuid()
1553
- });
1554
-
1555
- z.object({
1556
- id: z.uuid()
1557
- });
1558
- z.object({
1559
- disponents: disponentsSelectSchema
1560
- });
1561
-
1562
- z.object({
1563
- party: partyInsertSchema
1564
- });
1565
-
1566
- z.object({
1567
- party: partyInsertSchema
1568
- });
1569
-
1570
- z.object({
1571
- id: z.uuid()
1572
- });
118
+ ];
119
+ const SERVICE_PURPOSE_FO = [
120
+ "PURCHASE_OF_GOODS_AND_SERVICES",
121
+ "INVESTMENTS",
122
+ "OTHER"
123
+ ];
124
+ const SERVICE_PURPOSE_COMPANY = [
125
+ "PAYMENTS_TO_CUSTOMERS",
126
+ "PAYMENTS_TO_SUPPLIERS",
127
+ "FOREIGN_INVESTMENTS",
128
+ "OTHER"
129
+ ];
130
+ const SERVICE_PURPOSE$1 = [
131
+ ...SERVICE_PURPOSE_FO,
132
+ ...SERVICE_PURPOSE_COMPANY
133
+ ];
134
+ const OPERATING_COUNTRY$1 = ["CZ", "EU", "OUTSIDE_EU"];
135
+ const YES_NO_UNKNOWN$1 = ["YES", "NO", "UNKNOWN"];
136
+ const SIGNATURE_METHOD$1 = [
137
+ "IN_PERSON",
138
+ "REMOTE",
139
+ "COURIER",
140
+ "POWER_OF_ATTORNEY"
141
+ ];
142
+ const EXISTENCE_PERIOD$1 = [
143
+ "OVER_24_MONTHS",
144
+ "OVER_16_MONTHS",
145
+ "LESS_THAN_12_MONTHS",
146
+ "LESS_THAN_6_MONTHS"
147
+ ];
148
+ const REPUTATION$1 = [
149
+ "NO_NEGATIVE_RECORDS",
150
+ "BUSINESS_INCREASES_RISK",
151
+ "NEGATIVE_RECORDS",
152
+ "SANCTIONS_LIST_HIT"
153
+ ];
154
+ const RISK_BUSINESS_AREA$1 = [
155
+ "PAWN_SHOPS",
156
+ "USED_CAR_DEALERS",
157
+ "CASINOS",
158
+ "REAL_ESTATE_AGENCIES",
159
+ "PRECIOUS_METALS_AND_GEMS",
160
+ "WEAPONS_AND_AMMUNITION",
161
+ "NON_BANK_CREDIT_INSTITUTIONS",
162
+ "CURRENCY_EXCHANGE",
163
+ "VIRTUAL_ASSET_SERVICES"
164
+ ];
1573
165
 
1574
- z.object({
1575
- id: z.uuid()
1576
- });
166
+ const ADDRESS_TYPE = [
167
+ "PERMANENT_ADDRESS",
168
+ "REGISTERED_OFFICE",
169
+ "CONTACT_ADDRESS"
170
+ ];
171
+ const ID_DOC_TYPE = ["PASSPORT", "ID", "DRIVING_LICENSE"];
172
+ const ID_DOC_STATUS = [
173
+ "ACTIVE",
174
+ "EXPIRED",
175
+ "EXPIRE_SOON",
176
+ "REVOKED"
177
+ ];
178
+ const CUSTOMER_STATUS = ["NEW", "ACTIVE", "CLOSED", "BLOCKED"];
179
+ const PARTY_TYPE = [
180
+ "INDIVIDUAL",
181
+ "SELF_EMPLOYED",
182
+ "ORGANIZATION"
183
+ ];
184
+ const AML_SCORE_TYPE = [
185
+ "LOW",
186
+ "MEDIUM",
187
+ "HIGH",
188
+ "UNACCEPTABLE",
189
+ "UNVERIFIED",
190
+ "UNCLASSIFIED"
191
+ ];
192
+ const GENDER = ["M", "F", "OTHER"];
193
+ const KYC_STATUS = [
194
+ "NOT_APPROVED",
195
+ "VERIFIED",
196
+ "UNVERIFIED",
197
+ "REJECTED"
198
+ ];
199
+ const TXS_CLIENT_TYPE = ["CLIENT", "PROVIDER"];
200
+ const TRADING_SIDE = ["SELL", "BUY", "BOTH"];
201
+ const EST_TXS_VOLUME_MONTH = ["UP_TO_1M", "1M_TO_5M", "OVER_5M"];
202
+ const EST_TXS_VOLUME_YEAR = [
203
+ "LESS_THAN_12M",
204
+ "12M_TO_50M",
205
+ "OVER_50M"
206
+ ];
207
+ const TARGET_COUNTRY = ["CZ", "EU", "OUTSIDE_EU"];
208
+ const TAX_DOMICILE = ["CZ", "EU", "US", "OTHER"];
209
+ const MONTHLY_INCOME_RANGE = [
210
+ "UP_TO_40K",
211
+ "40K_TO_80K",
212
+ "OVER_80K"
213
+ ];
214
+ const COMPANY_TURNOVER_RANGE = [
215
+ "LESS_THAN_50M",
216
+ "50M_TO_100M",
217
+ "OVER_100M"
218
+ ];
219
+ const YEARLY_INCOME = [
220
+ ...MONTHLY_INCOME_RANGE,
221
+ ...COMPANY_TURNOVER_RANGE
222
+ ];
223
+ const INCOME_SOURCE = [
224
+ "EMPLOYMENT",
225
+ "PENSION",
226
+ "SAVINGS",
227
+ "INHERITANCE",
228
+ "INVESTMENTS",
229
+ "HOUSE_SALE",
230
+ "CAR_SALE",
231
+ "AUCTION_SALE",
232
+ "OTHER"
233
+ ];
234
+ const FINANCIAL_FUNDS_SOURCE = [
235
+ "BUSINESS_REVENUE",
236
+ "INVESTMENTS",
237
+ "LOAN",
238
+ "OTHER"
239
+ ];
240
+ const SERVICE_PURPOSE = [
241
+ "PURCHASE_OF_GOODS_AND_SERVICES",
242
+ "INVESTMENTS",
243
+ "OTHER",
244
+ "PAYMENTS_TO_CUSTOMERS",
245
+ "PAYMENTS_TO_SUPPLIERS",
246
+ "FOREIGN_INVESTMENTS"
247
+ ];
248
+ const OPERATING_COUNTRY = ["CZ", "EU", "OUTSIDE_EU"];
249
+ const YES_NO_UNKNOWN = ["YES", "NO", "UNKNOWN"];
250
+ const PERSON_ROLE = [
251
+ "PERMANENT_RESIDENT",
252
+ "STATUTORY_BODY",
253
+ "BENEFICIAL_OWNER"
254
+ ];
255
+ const SIGNATURE_METHOD = [
256
+ "IN_PERSON",
257
+ "REMOTE",
258
+ "COURIER",
259
+ "POWER_OF_ATTORNEY"
260
+ ];
261
+ const EXISTENCE_PERIOD = [
262
+ "OVER_24_MONTHS",
263
+ "OVER_16_MONTHS",
264
+ "LESS_THAN_12_MONTHS",
265
+ "LESS_THAN_6_MONTHS"
266
+ ];
267
+ const REPUTATION = [
268
+ "NO_NEGATIVE_RECORDS",
269
+ "BUSINESS_INCREASES_RISK",
270
+ "NEGATIVE_RECORDS",
271
+ "SANCTIONS_LIST_HIT"
272
+ ];
273
+ const COURT = [
274
+ "MUNICIPAL_COURT_PRAGUE",
275
+ "REGIONAL_COURT_PRAGUE",
276
+ "REGIONAL_COURT_CESKE_BUDEJOVICE",
277
+ "REGIONAL_COURT_PLZEN",
278
+ "REGIONAL_COURT_USTI_NAD_LABEM",
279
+ "REGIONAL_COURT_HRADEC_KRALOVE",
280
+ "REGIONAL_COURT_BRNO",
281
+ "REGIONAL_COURT_OSTRAVA"
282
+ ];
283
+ const RISK_BUSINESS_AREA = [
284
+ "PAWN_SHOPS",
285
+ "USED_CAR_DEALERS",
286
+ "CASINOS",
287
+ "REAL_ESTATE_AGENCIES",
288
+ "PRECIOUS_METALS_AND_GEMS",
289
+ "WEAPONS_AND_AMMUNITION",
290
+ "NON_BANK_CREDIT_INSTITUTIONS",
291
+ "CURRENCY_EXCHANGE",
292
+ "VIRTUAL_ASSET_SERVICES"
293
+ ];
1577
294
 
1578
295
  z.object({
1579
- fromPartyId: z.uuid(),
1580
- toPartyId: z.uuid(),
1581
- relationshipType: z.enum(PARTY_RELATIONSHIP_TYPE),
1582
- fromDate: z.date().optional(),
1583
- sharePercentage: z.number().max(100).optional()
1584
- });
1585
-
1586
- const routeError = z$1.object({
1587
- message: z$1.string(),
1588
- data: z$1.null(),
1589
- errorDetail: z$1.object({
1590
- message: z$1.string(),
1591
- code: z$1.number()
296
+ message: z.string(),
297
+ data: z.null(),
298
+ errorDetail: z.object({
299
+ message: z.string(),
300
+ code: z.number()
1592
301
  }).optional(),
1593
- error: z$1.boolean()
302
+ error: z.boolean()
1594
303
  });
1595
304
  const errorResponse = (entityName, action = "creation") => ({
1596
305
  404: {
1597
306
  content: {
1598
307
  "application/json": {
1599
- schema: z$1.object({
1600
- message: z$1.string(),
1601
- stackTrace: z$1.string().optional()
308
+ schema: z.object({
309
+ message: z.string(),
310
+ stackTrace: z.string().optional()
1602
311
  })
1603
312
  }
1604
313
  },
@@ -1607,9 +316,9 @@ const errorResponse = (entityName, action = "creation") => ({
1607
316
  500: {
1608
317
  content: {
1609
318
  "application/json": {
1610
- schema: z$1.object({
1611
- message: z$1.string(),
1612
- stackTrace: z$1.string().optional()
319
+ schema: z.object({
320
+ message: z.string(),
321
+ stackTrace: z.string().optional()
1613
322
  })
1614
323
  }
1615
324
  },
@@ -1617,265 +326,265 @@ const errorResponse = (entityName, action = "creation") => ({
1617
326
  }
1618
327
  });
1619
328
 
1620
- const partySchema$1 = z$1.object({
1621
- partyType: z$1.enum(PARTY_TYPE),
1622
- language: z$1.enum(LANGUAGE_CODES),
1623
- id: z$1.uuid(),
1624
- internalId: z$1.string().optional(),
1625
- note: z$1.string().optional(),
1626
- countryCode: z$1.enum(COUNTRY_CODES_2).optional()
1627
- });
1628
- const idDocumentInputSchema$1 = z$1.object({
1629
- idDocType: z$1.enum(ID_DOC_TYPE),
1630
- idDocNumber: z$1.string(),
1631
- issueDate: z$1.coerce.date().optional(),
1632
- expirationDate: z$1.coerce.date().optional(),
1633
- issuer: z$1.string().optional(),
1634
- frontImageUri: z$1.string().optional(),
1635
- backImageUri: z$1.string().optional()
1636
- });
1637
- const individualInsertSchema = z$1.object({
1638
- internalId: z$1.string().optional(),
1639
- name: z$1.string().min(1, "Jm\xE9no je povinn\xE9"),
1640
- surname: z$1.string().min(1, "P\u0159\xEDjmen\xED je povinn\xE9"),
1641
- email: z$1.email("E-mail je povinn\xFD"),
1642
- phone: z$1.string().optional(),
1643
- birthDate: z$1.string().min(1, "Datum narozen\xED je povinn\xE9"),
1644
- birthPlace: z$1.string().optional(),
1645
- countryOfBirth: z$1.enum(COUNTRY_CODES_2).optional(),
1646
- personalId: z$1.string().min(1, "\u010C\xEDslo identifika\u010Dn\xEDho dokumentu je povinn\xE9"),
1647
- gender: z$1.enum(GENDER, "Pohlav\xED je povinn\xE9"),
1648
- citizenship: z$1.enum(COUNTRY_CODES_2, "St\xE1t je povinn\xFD"),
1649
- citizenshipOther: z$1.enum(COUNTRY_CODES_2).optional(),
1650
- employer: z$1.string().optional(),
1651
- employerCountry: z$1.enum(COUNTRY_CODES_2).optional(),
1652
- registeredNumber: z$1.string().optional(),
1653
- isPep: z$1.boolean({ error: "Politicky exponovan\xE1 osoba je povinn\xE1" }),
1654
- titleBefore: z$1.string().optional(),
1655
- titleAfter: z$1.string().optional(),
1656
- birthSurname: z$1.string().optional(),
1657
- vocativeTitle: z$1.string().optional(),
1658
- deathDate: z$1.coerce.date().optional(),
1659
- deathNotification: z$1.coerce.date().optional(),
1660
- pin: z$1.string().optional(),
1661
- stayAbroad: z$1.boolean().optional(),
1662
- stayAbroadCountries: z$1.enum(COUNTRY_CODES_2).optional(),
1663
- identityDocuments: z$1.array(idDocumentInputSchema$1).optional()
1664
- });
1665
- const createOrganizationInputSchema = z$1.object({
1666
- internalId: z$1.string().optional(),
1667
- businessName: z$1.string(),
1668
- email: z$1.string().optional(),
1669
- phone: z$1.string().optional(),
1670
- registeredNumber: z$1.string(),
1671
- registeredIn: z$1.enum(COUNTRY_CODES_2),
1672
- operatesIn: z$1.enum(COUNTRY_CODES_2),
1673
- presentIn: z$1.enum(COUNTRY_CODES_2),
1674
- monthlyVolumeIn: z$1.number(),
1675
- monthlyVolumeOut: z$1.number(),
1676
- ownedBy: z$1.string(),
1677
- companyObjects: z$1.array(z$1.enum(CZ_NACE_CODES)).min(1),
1678
- annualTurnover: z$1.number(),
1679
- numberOfEmployees: z$1.number(),
1680
- prosecuted: z$1.string().optional(),
1681
- location: z$1.string().optional(),
1682
- fileNumber: z$1.string().optional(),
1683
- websiteUrl: z$1.string().optional(),
1684
- vatPayer: z$1.boolean(),
1685
- companyObjectsDescription: z$1.string(),
1686
- turnover3years: z$1.number(),
1687
- operationCountries: z$1.string(),
1688
- riskyBusinessType: z$1.string().optional(),
1689
- vatId: z$1.string().optional(),
1690
- court: z$1.enum(COURT).optional(),
1691
- registerUri: z$1.string().optional()
1692
- });
1693
- const updateBankAccountSchema = z$1.object({
329
+ const partySchema$1 = z.object({
330
+ partyType: z.enum(PARTY_TYPE),
331
+ language: z.enum(LANGUAGE_CODES),
332
+ id: z.uuid(),
333
+ internalId: z.string().optional(),
334
+ note: z.string().optional(),
335
+ countryCode: z.enum(COUNTRY_CODES_2).optional()
336
+ });
337
+ const idDocumentInputSchema$1 = z.object({
338
+ idDocType: z.enum(ID_DOC_TYPE),
339
+ idDocNumber: z.string(),
340
+ issueDate: z.coerce.date().optional(),
341
+ expirationDate: z.coerce.date().optional(),
342
+ issuer: z.string().optional(),
343
+ frontImageUri: z.string().optional(),
344
+ backImageUri: z.string().optional()
345
+ });
346
+ const individualInsertSchema = z.object({
347
+ internalId: z.string().optional(),
348
+ name: z.string().min(1, "Jm\xE9no je povinn\xE9"),
349
+ surname: z.string().min(1, "P\u0159\xEDjmen\xED je povinn\xE9"),
350
+ email: z.email("E-mail je povinn\xFD"),
351
+ phone: z.string().optional(),
352
+ birthDate: z.string().min(1, "Datum narozen\xED je povinn\xE9"),
353
+ birthPlace: z.string().optional(),
354
+ countryOfBirth: z.enum(COUNTRY_CODES_2).optional(),
355
+ personalId: z.string().min(1, "\u010C\xEDslo identifika\u010Dn\xEDho dokumentu je povinn\xE9"),
356
+ gender: z.enum(GENDER, "Pohlav\xED je povinn\xE9"),
357
+ citizenship: z.enum(COUNTRY_CODES_2, "St\xE1t je povinn\xFD"),
358
+ citizenshipOther: z.enum(COUNTRY_CODES_2).optional(),
359
+ employer: z.string().optional(),
360
+ employerCountry: z.enum(COUNTRY_CODES_2).optional(),
361
+ registeredNumber: z.string().optional(),
362
+ isPep: z.boolean({ error: "Politicky exponovan\xE1 osoba je povinn\xE1" }),
363
+ titleBefore: z.string().optional(),
364
+ titleAfter: z.string().optional(),
365
+ birthSurname: z.string().optional(),
366
+ vocativeTitle: z.string().optional(),
367
+ deathDate: z.coerce.date().optional(),
368
+ deathNotification: z.coerce.date().optional(),
369
+ pin: z.string().optional(),
370
+ stayAbroad: z.boolean().optional(),
371
+ stayAbroadCountries: z.enum(COUNTRY_CODES_2).optional(),
372
+ identityDocuments: z.array(idDocumentInputSchema$1).optional()
373
+ });
374
+ const createOrganizationInputSchema = z.object({
375
+ internalId: z.string().optional(),
376
+ businessName: z.string(),
377
+ email: z.string().optional(),
378
+ phone: z.string().optional(),
379
+ registeredNumber: z.string(),
380
+ registeredIn: z.enum(COUNTRY_CODES_2),
381
+ operatesIn: z.enum(COUNTRY_CODES_2),
382
+ presentIn: z.enum(COUNTRY_CODES_2),
383
+ monthlyVolumeIn: z.number(),
384
+ monthlyVolumeOut: z.number(),
385
+ ownedBy: z.string(),
386
+ companyObjects: z.array(z.enum(CZ_NACE_CODES)).min(1),
387
+ annualTurnover: z.number(),
388
+ numberOfEmployees: z.number(),
389
+ prosecuted: z.string().optional(),
390
+ location: z.string().optional(),
391
+ fileNumber: z.string().optional(),
392
+ websiteUrl: z.string().optional(),
393
+ vatPayer: z.boolean(),
394
+ companyObjectsDescription: z.string(),
395
+ turnover3years: z.number(),
396
+ operationCountries: z.string(),
397
+ riskyBusinessType: z.string().optional(),
398
+ vatId: z.string().optional(),
399
+ court: z.enum(COURT).optional(),
400
+ registerUri: z.string().optional()
401
+ });
402
+ const updateBankAccountSchema = z.object({
1694
403
  ...bankAccountMetadataSchema.shape,
1695
- bankCode: z$1.enum(BANK_CODES, "K\xF3d banky je povinn\xFD").optional(),
1696
- iban: z$1.string().min(1, "IBAN je povinn\xFD").regex(/^[A-Z]{2}[0-9]{2}[A-Z0-9]{11,30}$/, "Neplatn\xFD form\xE1t IBAN").optional(),
1697
- swiftBic: z$1.string().min(1, "BIC/SWIFT je povinn\xFD").regex(/^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$/, "Neplatn\xFD form\xE1t BIC/SWIFT").optional(),
1698
- partyId: z$1.uuid(),
1699
- internalId: z$1.string().optional(),
1700
- holderName: z$1.string(),
1701
- number: z$1.string().min(1, "\u010C\xEDslo \xFA\u010Dtu je povinn\xE9").optional(),
1702
- currency: z$1.enum(CURRENCY_CODES, "M\u011Bna je povinn\xE1"),
404
+ bankCode: z.enum(BANK_CODES, "K\xF3d banky je povinn\xFD").optional(),
405
+ iban: z.string().min(1, "IBAN je povinn\xFD").regex(/^[A-Z]{2}[0-9]{2}[A-Z0-9]{11,30}$/, "Neplatn\xFD form\xE1t IBAN").optional(),
406
+ swiftBic: z.string().min(1, "BIC/SWIFT je povinn\xFD").regex(/^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$/, "Neplatn\xFD form\xE1t BIC/SWIFT").optional(),
407
+ partyId: z.uuid(),
408
+ internalId: z.string().optional(),
409
+ holderName: z.string(),
410
+ number: z.string().min(1, "\u010C\xEDslo \xFA\u010Dtu je povinn\xE9").optional(),
411
+ currency: z.enum(CURRENCY_CODES, "M\u011Bna je povinn\xE1"),
1703
412
  countryCode: bankAccountMetadataSchema.shape.countryCode.nonoptional(),
1704
413
  id: bankAccountMetadataSchema.shape.id.nonoptional(),
1705
- statementUri: z$1.string().optional()
414
+ statementUri: z.string().optional()
1706
415
  });
1707
416
  const bankAccountInputSchema = updateBankAccountSchema.required({
1708
417
  holderName: true,
1709
418
  currency: true,
1710
419
  countryCode: true
1711
420
  }).omit({ id: true, partyId: true });
1712
- const disponentSchema = z$1.discriminatedUnion("partyType", [
1713
- z$1.object({
1714
- partyType: z$1.literal("INDIVIDUAL"),
421
+ const disponentSchema = z.discriminatedUnion("partyType", [
422
+ z.object({
423
+ partyType: z.literal("INDIVIDUAL"),
1715
424
  data: individualInsertSchema
1716
425
  }),
1717
- z$1.object({
1718
- partyType: z$1.literal("ORGANIZATION"),
426
+ z.object({
427
+ partyType: z.literal("ORGANIZATION"),
1719
428
  data: createOrganizationInputSchema
1720
429
  })
1721
430
  ]);
1722
431
  const zipCodeRegex = /^\d{3}\s?\d{2}$/;
1723
- const createAddressInputSchema = z$1.object({
1724
- addressType: z$1.enum(ADDRESS_TYPE),
1725
- internalId: z$1.string().optional(),
1726
- street: z$1.string().min(1, "Adresa je povinn\xE1"),
1727
- orientationNumber: z$1.string().max(20, "\u010C\xEDslo orienta\u010Dn\xED je mimo povolen\xFD rozsah").optional(),
1728
- descriptiveNumber: z$1.string().max(20, "\u010C\xEDslo popisn\xE9 je mimo povolen\xFD rozsah").optional(),
1729
- municipality: z$1.string().min(1, "M\u011Bsto je povinn\xE9").max(255),
1730
- municipalityPart: z$1.string().optional(),
1731
- zipCode: z$1.string().min(1, "PS\u010C je povinn\xE9").max(20).regex(zipCodeRegex, "PS\u010C je v nespr\xE1vn\xE9m form\xE1tu"),
1732
- district: z$1.string().max(255),
1733
- region: z$1.string().max(255),
1734
- countryCode: z$1.enum(COUNTRY_CODES_2, "St\xE1t je povinn\xFD"),
1735
- ruianCode: z$1.string().optional()
1736
- });
1737
- const businessPartnerInputSchema$1 = z$1.object({
1738
- name: z$1.string().min(1, "N\xE1zev partnera je povinn\xFD"),
1739
- country: z$1.enum(COUNTRY_CODES_2, "St\xE1t partnera je povinn\xFD"),
1740
- cooperationReason: z$1.string().nullable()
1741
- });
1742
- const foSourceOfWealthInputSchema$1 = z$1.object({
1743
- incomeSources: z$1.array(z$1.enum(INCOME_SOURCE)).min(1, "Hlavn\xED zdroj p\u0159\xEDjm\u016F je povinn\xFD"),
1744
- incomeSourceOther: z$1.string().nullable(),
1745
- monthlyIncome: z$1.enum(MONTHLY_INCOME_RANGE, "M\u011Bs\xED\u010Dn\xED p\u0159\xEDjem je povinn\xFD"),
1746
- employer: z$1.string().min(1, "N\xE1zev zam\u011Bstnavatele je povinn\xFD").nullable(),
1747
- employerCountry: z$1.enum(COUNTRY_CODES_2, "St\xE1t zam\u011Bstnavatele je povinn\xFD").nullable()
1748
- });
1749
- const businessSourceOfWealthInputSchema$1 = z$1.object({
1750
- financialFundsSources: z$1.array(z$1.enum(FINANCIAL_FUNDS_SOURCE)).min(1, "Zdroj finan\u010Dn\xEDch prost\u0159edk\u016F je povinn\xFD"),
1751
- financialFundsSourceOther: z$1.string().nullable(),
1752
- mainBusinessSubjects: z$1.array(z$1.enum(CZ_TRADE_LICENSE_CODES)).min(1, "Hlavn\xED p\u0159edm\u011Bt podnik\xE1n\xED je povinn\xFD"),
1753
- companyTurnover: z$1.enum(
432
+ const createAddressInputSchema = z.object({
433
+ addressType: z.enum(ADDRESS_TYPE),
434
+ internalId: z.string().optional(),
435
+ street: z.string().min(1, "Adresa je povinn\xE1"),
436
+ orientationNumber: z.string().max(20, "\u010C\xEDslo orienta\u010Dn\xED je mimo povolen\xFD rozsah").optional(),
437
+ descriptiveNumber: z.string().max(20, "\u010C\xEDslo popisn\xE9 je mimo povolen\xFD rozsah").optional(),
438
+ municipality: z.string().min(1, "M\u011Bsto je povinn\xE9").max(255),
439
+ municipalityPart: z.string().optional(),
440
+ zipCode: z.string().min(1, "PS\u010C je povinn\xE9").max(20).regex(zipCodeRegex, "PS\u010C je v nespr\xE1vn\xE9m form\xE1tu"),
441
+ district: z.string().max(255),
442
+ region: z.string().max(255),
443
+ countryCode: z.enum(COUNTRY_CODES_2, "St\xE1t je povinn\xFD"),
444
+ ruianCode: z.string().optional()
445
+ });
446
+ const businessPartnerInputSchema$1 = z.object({
447
+ name: z.string().min(1, "N\xE1zev partnera je povinn\xFD"),
448
+ country: z.enum(COUNTRY_CODES_2, "St\xE1t partnera je povinn\xFD"),
449
+ cooperationReason: z.string().nullable()
450
+ });
451
+ const foSourceOfWealthInputSchema$1 = z.object({
452
+ incomeSources: z.array(z.enum(INCOME_SOURCE)).min(1, "Hlavn\xED zdroj p\u0159\xEDjm\u016F je povinn\xFD"),
453
+ incomeSourceOther: z.string().nullable(),
454
+ monthlyIncome: z.enum(MONTHLY_INCOME_RANGE, "M\u011Bs\xED\u010Dn\xED p\u0159\xEDjem je povinn\xFD"),
455
+ employer: z.string().min(1, "N\xE1zev zam\u011Bstnavatele je povinn\xFD").nullable(),
456
+ employerCountry: z.enum(COUNTRY_CODES_2, "St\xE1t zam\u011Bstnavatele je povinn\xFD").nullable()
457
+ });
458
+ const businessSourceOfWealthInputSchema$1 = z.object({
459
+ financialFundsSources: z.array(z.enum(FINANCIAL_FUNDS_SOURCE)).min(1, "Zdroj finan\u010Dn\xEDch prost\u0159edk\u016F je povinn\xFD"),
460
+ financialFundsSourceOther: z.string().nullable(),
461
+ mainBusinessSubjects: z.array(z.enum(CZ_TRADE_LICENSE_CODES)).min(1, "Hlavn\xED p\u0159edm\u011Bt podnik\xE1n\xED je povinn\xFD"),
462
+ companyTurnover: z.enum(
1754
463
  COMPANY_TURNOVER_RANGE,
1755
464
  "Obrat za posledn\xED 3 roky je povinn\xFD"
1756
465
  ),
1757
- operatingCountries: z$1.array(z$1.enum(OPERATING_COUNTRY)).min(1, "Zem\u011B p\u016Fsoben\xED je povinn\xE1"),
1758
- operatingCountriesOther: z$1.array(z$1.enum(COUNTRY_CODES_2)).nullable(),
1759
- businessPartners: z$1.array(businessPartnerInputSchema$1).min(1, "Alespo\u0148 jeden partner je povinn\xFD").nullable(),
1760
- businessActivitiesNote: z$1.string().min(1, "Detailn\xED popis v\u0161ech podnikatelsk\xFDch \u010Dinnost\xED je povinn\xFD").nullable()
1761
- });
1762
- const createAmlInputSchema = z$1.object({
1763
- internalId: z$1.string().optional(),
1764
- sourceOfWealth: z$1.union([
466
+ operatingCountries: z.array(z.enum(OPERATING_COUNTRY)).min(1, "Zem\u011B p\u016Fsoben\xED je povinn\xE1"),
467
+ operatingCountriesOther: z.array(z.enum(COUNTRY_CODES_2)).nullable(),
468
+ businessPartners: z.array(businessPartnerInputSchema$1).min(1, "Alespo\u0148 jeden partner je povinn\xFD").nullable(),
469
+ businessActivitiesNote: z.string().min(1, "Detailn\xED popis v\u0161ech podnikatelsk\xFDch \u010Dinnost\xED je povinn\xFD").nullable()
470
+ });
471
+ const createAmlInputSchema = z.object({
472
+ internalId: z.string().optional(),
473
+ sourceOfWealth: z.union([
1765
474
  foSourceOfWealthInputSchema$1,
1766
475
  businessSourceOfWealthInputSchema$1
1767
476
  ]),
1768
- yearlyIncome: z$1.enum(YEARLY_INCOME),
1769
- sourceOfIncome: z$1.array(z$1.enum(INCOME_SOURCE)).min(1, "Zdroj p\u0159\xEDjm\u016F je povinn\xFD"),
1770
- incomeSourceOther: z$1.string().optional(),
1771
- servicePurposes: z$1.array(z$1.enum(SERVICE_PURPOSE)).min(1, "\xDA\u010Del vyu\u017E\xEDv\xE1n\xED na\u0161ich slu\u017Eeb je povinn\xFD").optional(),
1772
- servicePurposesOther: z$1.string().optional(),
1773
- taxDomicile: z$1.enum(TAX_DOMICILE, { message: "Da\u0148ov\xE1 rezidence je povinn\xE1" }).optional(),
1774
- taxDomicileCountry: z$1.enum(COUNTRY_CODES_2).optional(),
1775
- transactionType: z$1.string().optional(),
1776
- transactionTypeExpiry: z$1.coerce.date().optional(),
1777
- isDistraint: z$1.boolean().default(false),
1778
- estTxsVolumeMonth: z$1.enum(
477
+ yearlyIncome: z.enum(YEARLY_INCOME),
478
+ sourceOfIncome: z.array(z.enum(INCOME_SOURCE)).min(1, "Zdroj p\u0159\xEDjm\u016F je povinn\xFD"),
479
+ incomeSourceOther: z.string().optional(),
480
+ servicePurposes: z.array(z.enum(SERVICE_PURPOSE)).min(1, "\xDA\u010Del vyu\u017E\xEDv\xE1n\xED na\u0161ich slu\u017Eeb je povinn\xFD").optional(),
481
+ servicePurposesOther: z.string().optional(),
482
+ taxDomicile: z.enum(TAX_DOMICILE, { message: "Da\u0148ov\xE1 rezidence je povinn\xE1" }).optional(),
483
+ taxDomicileCountry: z.enum(COUNTRY_CODES_2).optional(),
484
+ transactionType: z.string().optional(),
485
+ transactionTypeExpiry: z.coerce.date().optional(),
486
+ isDistraint: z.boolean().default(false),
487
+ estTxsVolumeMonth: z.enum(
1779
488
  EST_TXS_VOLUME_MONTH,
1780
489
  "Odhadovan\xFD m\u011Bs\xED\u010Dn\xED objem transakc\xED je povinn\xFD"
1781
490
  ),
1782
- estTxsVolumeYear: z$1.enum(
491
+ estTxsVolumeYear: z.enum(
1783
492
  EST_TXS_VOLUME_YEAR,
1784
493
  "Odhadovan\xFD ro\u010Dn\xED objem transakc\xED je povinn\xFD"
1785
494
  ),
1786
- estTxsCountMonth: z$1.number().int().optional(),
1787
- tradingCountries: z$1.array(z$1.enum(TARGET_COUNTRY)).min(1, "Vyberte alespo\u0148 jednu c\xEDlovou zemi"),
1788
- tradingCountriesOther: z$1.array(z$1.enum(COUNTRY_CODES_2)).optional(),
1789
- tradingSide: z$1.enum(TRADING_SIDE, "Strana obchodov\xE1n\xED je povinn\xE1"),
1790
- acceptedAMLTermsAndConditions: z$1.boolean().refine((v) => v === true, {
495
+ estTxsCountMonth: z.number().int().optional(),
496
+ tradingCountries: z.array(z.enum(TARGET_COUNTRY)).min(1, "Vyberte alespo\u0148 jednu c\xEDlovou zemi"),
497
+ tradingCountriesOther: z.array(z.enum(COUNTRY_CODES_2)).optional(),
498
+ tradingSide: z.enum(TRADING_SIDE, "Strana obchodov\xE1n\xED je povinn\xE1"),
499
+ acceptedAMLTermsAndConditions: z.boolean().refine((v) => v === true, {
1791
500
  message: "Mus\xEDte potvrdit souhlas s prohl\xE1\u0161en\xEDm",
1792
501
  path: ["acceptedAMLTermsAndConditions"]
1793
502
  }),
1794
- signatureMethod: z$1.enum(SIGNATURE_METHOD, "Zp\u016Fsob nav\xE1z\xE1n\xED vztahu je povinn\xFD").optional(),
1795
- existencePeriod: z$1.enum(EXISTENCE_PERIOD, "Historie klienta je povinn\xE1").optional(),
1796
- reputation: z$1.enum(REPUTATION).optional(),
1797
- riskBusinessAreas: z$1.array(z$1.enum(RISK_BUSINESS_AREA)).optional(),
1798
- riskLevel: z$1.enum(AML_SCORE_TYPE, "Rizikovost je povinn\xE1").optional(),
1799
- kycStatus: z$1.enum(KYC_STATUS, "Stav kyc je povinn\xFD").optional(),
1800
- residencyAnswers: z$1.array(
1801
- z$1.object({
1802
- personName: z$1.string(),
1803
- personRole: z$1.enum(PERSON_ROLE),
1804
- answer: z$1.enum(YES_NO_UNKNOWN),
1805
- country: z$1.enum(COUNTRY_CODES_2).nullable()
503
+ signatureMethod: z.enum(SIGNATURE_METHOD, "Zp\u016Fsob nav\xE1z\xE1n\xED vztahu je povinn\xFD").optional(),
504
+ existencePeriod: z.enum(EXISTENCE_PERIOD, "Historie klienta je povinn\xE1").optional(),
505
+ reputation: z.enum(REPUTATION).optional(),
506
+ riskBusinessAreas: z.array(z.enum(RISK_BUSINESS_AREA)).optional(),
507
+ riskLevel: z.enum(AML_SCORE_TYPE, "Rizikovost je povinn\xE1").optional(),
508
+ kycStatus: z.enum(KYC_STATUS, "Stav kyc je povinn\xFD").optional(),
509
+ residencyAnswers: z.array(
510
+ z.object({
511
+ personName: z.string(),
512
+ personRole: z.enum(PERSON_ROLE),
513
+ answer: z.enum(YES_NO_UNKNOWN),
514
+ country: z.enum(COUNTRY_CODES_2).nullable()
1806
515
  })
1807
- ).optional().nullable()
1808
- });
1809
- const productsInputSchema$1 = z$1.object({
1810
- txs: z$1.object({
1811
- fee: z$1.number(),
1812
- margin: z$1.number(),
1813
- reportingEmail: z$1.string().optional(),
1814
- clientType: z$1.enum(TXS_CLIENT_TYPE).optional()
516
+ ).optional()
517
+ });
518
+ const productsInputSchema$1 = z.object({
519
+ txs: z.object({
520
+ fee: z.number(),
521
+ margin: z.number(),
522
+ reportingEmail: z.string().optional(),
523
+ clientType: z.enum(TXS_CLIENT_TYPE).optional()
1815
524
  }).optional(),
1816
- cbs: z$1.object({}).optional()
1817
- });
1818
- const ownerInputSchema = z$1.object({
1819
- titleBefore: z$1.string().optional(),
1820
- name: z$1.string().min(1, "Jm\xE9no je povinn\xE9"),
1821
- surname: z$1.string().min(1, "P\u0159\xEDjmen\xED je povinn\xE9"),
1822
- titleAfter: z$1.string().optional(),
1823
- email: z$1.email("E-mail je povinn\xFD"),
1824
- birthDate: z$1.string().min(1, "Datum narozen\xED je povinn\xE9"),
1825
- birthPlace: z$1.string().optional(),
1826
- personalId: z$1.string().min(1, "Rodn\xE9 \u010D\xEDslo je povinn\xE9"),
1827
- gender: z$1.enum(GENDER, "Pohlav\xED je povinn\xE9"),
1828
- citizenship: z$1.enum(COUNTRY_CODES_2, "St\xE1tn\xED p\u0159\xEDslu\u0161nost je povinn\xE1"),
1829
- isPep: z$1.boolean({ error: "Politicky exponovan\xE1 osoba je povinn\xE1" }),
525
+ cbs: z.object({}).optional()
526
+ });
527
+ const ownerInputSchema = z.object({
528
+ titleBefore: z.string().optional(),
529
+ name: z.string().min(1, "Jm\xE9no je povinn\xE9"),
530
+ surname: z.string().min(1, "P\u0159\xEDjmen\xED je povinn\xE9"),
531
+ titleAfter: z.string().optional(),
532
+ email: z.email("E-mail je povinn\xFD"),
533
+ birthDate: z.string().min(1, "Datum narozen\xED je povinn\xE9"),
534
+ birthPlace: z.string().optional(),
535
+ personalId: z.string().min(1, "Rodn\xE9 \u010D\xEDslo je povinn\xE9"),
536
+ gender: z.enum(GENDER, "Pohlav\xED je povinn\xE9"),
537
+ citizenship: z.enum(COUNTRY_CODES_2, "St\xE1tn\xED p\u0159\xEDslu\u0161nost je povinn\xE1"),
538
+ isPep: z.boolean({ error: "Politicky exponovan\xE1 osoba je povinn\xE1" }),
1830
539
  address: createAddressInputSchema,
1831
- sharePercentage: z$1.number({ error: "Pod\xEDl na spole\u010Dnosti je povinn\xFD" }).min(1, "Pod\xEDl na spole\u010Dnosti je povinn\xFD").max(100),
1832
- shareEstablishedAt: z$1.string().min(1, "Datum vzniku pod\xEDlu je povinn\xFD")
1833
- });
1834
- const legalRepresentativeInputSchema = z$1.object({
1835
- titleBefore: z$1.string().optional(),
1836
- name: z$1.string().min(1, "Jm\xE9no je povinn\xE9"),
1837
- surname: z$1.string().min(1, "P\u0159\xEDjmen\xED je povinn\xE9"),
1838
- titleAfter: z$1.string().optional(),
1839
- email: z$1.email("E-mail je povinn\xFD"),
1840
- birthDate: z$1.string().min(1, "Datum narozen\xED je povinn\xE9"),
1841
- birthPlace: z$1.string().optional(),
1842
- personalId: z$1.string().min(1, "Rodn\xE9 \u010D\xEDslo je povinn\xE9"),
1843
- gender: z$1.enum(GENDER, "Pohlav\xED je povinn\xE9"),
1844
- citizenship: z$1.enum(COUNTRY_CODES_2, "St\xE1tn\xED p\u0159\xEDslu\u0161nost je povinn\xE1"),
1845
- isPep: z$1.boolean({ error: "Politicky exponovan\xE1 osoba je povinn\xE1" }),
1846
- phone: z$1.string().optional(),
1847
- pin: z$1.string().optional(),
1848
- identityDocuments: z$1.array(idDocumentInputSchema$1).optional(),
540
+ sharePercentage: z.number({ error: "Pod\xEDl na spole\u010Dnosti je povinn\xFD" }).min(1, "Pod\xEDl na spole\u010Dnosti je povinn\xFD").max(100),
541
+ shareEstablishedAt: z.string().min(1, "Datum vzniku pod\xEDlu je povinn\xFD")
542
+ });
543
+ const legalRepresentativeInputSchema = z.object({
544
+ titleBefore: z.string().optional(),
545
+ name: z.string().min(1, "Jm\xE9no je povinn\xE9"),
546
+ surname: z.string().min(1, "P\u0159\xEDjmen\xED je povinn\xE9"),
547
+ titleAfter: z.string().optional(),
548
+ email: z.email("E-mail je povinn\xFD"),
549
+ birthDate: z.string().min(1, "Datum narozen\xED je povinn\xE9"),
550
+ birthPlace: z.string().optional(),
551
+ personalId: z.string().min(1, "Rodn\xE9 \u010D\xEDslo je povinn\xE9"),
552
+ gender: z.enum(GENDER, "Pohlav\xED je povinn\xE9"),
553
+ citizenship: z.enum(COUNTRY_CODES_2, "St\xE1tn\xED p\u0159\xEDslu\u0161nost je povinn\xE1"),
554
+ isPep: z.boolean({ error: "Politicky exponovan\xE1 osoba je povinn\xE1" }),
555
+ phone: z.string().optional(),
556
+ pin: z.string().optional(),
557
+ identityDocuments: z.array(idDocumentInputSchema$1).optional(),
1849
558
  address: createAddressInputSchema,
1850
- dateOfEstablishment: z$1.string().min(1, "Datum vzniku funkce je povinn\xFD")
559
+ dateOfEstablishment: z.string().min(1, "Datum vzniku funkce je povinn\xFD")
1851
560
  });
1852
- const createPartyInputSchema = z$1.object({
561
+ const createPartyInputSchema = z.object({
1853
562
  party: partySchema$1.omit({ id: true }),
1854
563
  personalData: individualInsertSchema.nullable(),
1855
564
  organizationData: createOrganizationInputSchema.nullable(),
1856
- bankAccounts: z$1.array(bankAccountInputSchema),
1857
- disponents: z$1.array(disponentSchema),
1858
- addresses: z$1.array(createAddressInputSchema),
1859
- owners: z$1.array(ownerInputSchema).optional(),
1860
- legalRepresentatives: z$1.array(legalRepresentativeInputSchema).optional(),
565
+ bankAccounts: z.array(bankAccountInputSchema),
566
+ disponents: z.array(disponentSchema),
567
+ addresses: z.array(createAddressInputSchema),
568
+ owners: z.array(ownerInputSchema).optional(),
569
+ legalRepresentatives: z.array(legalRepresentativeInputSchema).optional(),
1861
570
  aml: createAmlInputSchema,
1862
- recipients: z$1.array(bankAccountInputSchema),
571
+ recipients: z.array(bankAccountInputSchema),
1863
572
  products: productsInputSchema$1.optional(),
1864
- traderIds: z$1.array(z$1.uuid()).optional()
1865
- });
1866
- const partyCreateOutputSchema = z$1.object({
1867
- customerStatus: z$1.enum(CUSTOMER_STATUS),
1868
- partyType: z$1.enum(PARTY_TYPE),
1869
- language: z$1.enum(LANGUAGE_CODES),
1870
- id: z$1.uuid(),
1871
- internalId: z$1.string().nullable(),
1872
- note: z$1.string().nullable(),
1873
- countryCode: z$1.enum(COUNTRY_CODES_2).nullable(),
1874
- createdAt: z$1.date().nullable(),
1875
- updatedAt: z$1.date().nullable()
1876
- });
1877
- const responseBodySchema$5 = z$1.object({
1878
- message: z$1.string(),
573
+ traderIds: z.array(z.uuid()).optional()
574
+ });
575
+ const partyCreateOutputSchema = z.object({
576
+ customerStatus: z.enum(CUSTOMER_STATUS),
577
+ partyType: z.enum(PARTY_TYPE),
578
+ language: z.enum(LANGUAGE_CODES),
579
+ id: z.uuid(),
580
+ internalId: z.string().nullable(),
581
+ note: z.string().nullable(),
582
+ countryCode: z.enum(COUNTRY_CODES_2).nullable(),
583
+ createdAt: z.iso.datetime().nullable(),
584
+ updatedAt: z.iso.datetime().nullable()
585
+ });
586
+ const responseBodySchema$5 = z.object({
587
+ message: z.string(),
1879
588
  party: partyCreateOutputSchema
1880
589
  });
1881
590
  const createPartyRoute = createRoute({
@@ -2144,306 +853,306 @@ new OpenAPIHono().openapi(
2144
853
  }
2145
854
  );
2146
855
 
2147
- const partySchema = z$1.object({
2148
- partyType: z$1.enum(PARTY_TYPE),
2149
- language: z$1.enum(LANGUAGE_CODES),
2150
- id: z$1.uuid(),
2151
- internalId: z$1.string().optional(),
2152
- note: z$1.string().optional(),
2153
- countryCode: z$1.enum(COUNTRY_CODES_2).optional()
2154
- });
2155
- const idDocumentInputSchema = z$1.object({
2156
- id: z$1.uuid().optional(),
2157
- idDocType: z$1.enum(ID_DOC_TYPE),
2158
- idDocNumber: z$1.string(),
2159
- issueDate: z$1.coerce.date().optional(),
2160
- expirationDate: z$1.coerce.date().optional(),
2161
- issuer: z$1.string().optional(),
2162
- frontImageUri: z$1.string().optional(),
2163
- backImageUri: z$1.string().optional()
2164
- });
2165
- const individualUpdateSchema = z$1.object({
2166
- id: z$1.uuid(),
2167
- partyId: z$1.uuid(),
2168
- internalId: z$1.string().optional(),
2169
- name: z$1.string().optional(),
2170
- surname: z$1.string().optional(),
2171
- email: z$1.email("E-mail je povinn\xFD"),
2172
- phone: z$1.string().optional(),
2173
- birthDate: z$1.string().min(1, "Datum narozen\xED je povinn\xE9"),
2174
- birthPlace: z$1.string().optional(),
2175
- countryOfBirth: z$1.enum(COUNTRY_CODES_2).optional(),
2176
- personalId: z$1.string().optional(),
2177
- gender: z$1.enum(GENDER).optional(),
2178
- citizenship: z$1.enum(COUNTRY_CODES_2).optional(),
2179
- citizenshipOther: z$1.enum(COUNTRY_CODES_2).optional(),
2180
- employer: z$1.string().optional(),
2181
- employerCountry: z$1.enum(COUNTRY_CODES_2).optional(),
2182
- registeredNumber: z$1.string().optional(),
2183
- isPep: z$1.boolean().optional(),
2184
- titleBefore: z$1.string().optional(),
2185
- titleAfter: z$1.string().optional(),
2186
- birthSurname: z$1.string().optional(),
2187
- vocativeTitle: z$1.string().optional(),
2188
- deathDate: z$1.coerce.date().optional(),
2189
- deathNotification: z$1.coerce.date().optional(),
2190
- pin: z$1.string().optional(),
2191
- stayAbroad: z$1.boolean().optional(),
2192
- stayAbroadCountries: z$1.enum(COUNTRY_CODES_2).optional(),
2193
- identityDocuments: z$1.array(idDocumentInputSchema).optional()
2194
- });
2195
- const organizationUpdateSchema = z$1.object({
2196
- id: z$1.uuid(),
2197
- partyId: z$1.uuid().optional(),
2198
- internalId: z$1.string().optional(),
2199
- businessName: z$1.string().optional(),
2200
- email: z$1.email("Invalid email format").optional(),
2201
- phone: z$1.string().optional(),
2202
- registeredNumber: z$1.string().optional(),
2203
- registeredIn: z$1.enum(COUNTRY_CODES_2).optional(),
2204
- operatesIn: z$1.enum(COUNTRY_CODES_2).optional(),
2205
- presentIn: z$1.enum(COUNTRY_CODES_2).optional(),
2206
- monthlyVolumeIn: z$1.number().optional(),
2207
- monthlyVolumeOut: z$1.number().optional(),
2208
- ownedBy: z$1.string().optional(),
2209
- companyObjects: z$1.array(z$1.enum(CZ_NACE_CODES)).min(1).optional(),
2210
- annualTurnover: z$1.number().optional(),
2211
- numberOfEmployees: z$1.number().optional(),
2212
- prosecuted: z$1.string().optional(),
2213
- location: z$1.string().optional(),
2214
- fileNumber: z$1.string().optional(),
2215
- websiteUrl: z$1.url("Invalid website URL").optional(),
2216
- vatPayer: z$1.boolean().optional(),
2217
- companyObjectsDescription: z$1.string(),
2218
- turnover3years: z$1.number(),
2219
- operationCountries: z$1.string(),
2220
- riskyBusinessType: z$1.string().optional(),
2221
- vatId: z$1.string().nullable().optional(),
2222
- court: z$1.enum(COURT).nullable().optional(),
2223
- registerUri: z$1.string().optional()
2224
- });
2225
- const syncBankAccountSchema = z$1.object({
856
+ const partySchema = z.object({
857
+ partyType: z.enum(PARTY_TYPE),
858
+ language: z.enum(LANGUAGE_CODES),
859
+ id: z.uuid(),
860
+ internalId: z.string().optional(),
861
+ note: z.string().optional(),
862
+ countryCode: z.enum(COUNTRY_CODES_2).optional()
863
+ });
864
+ const idDocumentInputSchema = z.object({
865
+ id: z.uuid().optional(),
866
+ idDocType: z.enum(ID_DOC_TYPE),
867
+ idDocNumber: z.string(),
868
+ issueDate: z.coerce.date().optional(),
869
+ expirationDate: z.coerce.date().optional(),
870
+ issuer: z.string().optional(),
871
+ frontImageUri: z.string().optional(),
872
+ backImageUri: z.string().optional()
873
+ });
874
+ const individualUpdateSchema = z.object({
875
+ id: z.uuid(),
876
+ partyId: z.uuid(),
877
+ internalId: z.string().optional(),
878
+ name: z.string().optional(),
879
+ surname: z.string().optional(),
880
+ email: z.email("E-mail je povinn\xFD"),
881
+ phone: z.string().optional(),
882
+ birthDate: z.string().min(1, "Datum narozen\xED je povinn\xE9"),
883
+ birthPlace: z.string().optional(),
884
+ countryOfBirth: z.enum(COUNTRY_CODES_2).optional(),
885
+ personalId: z.string().optional(),
886
+ gender: z.enum(GENDER).optional(),
887
+ citizenship: z.enum(COUNTRY_CODES_2).optional(),
888
+ citizenshipOther: z.enum(COUNTRY_CODES_2).optional(),
889
+ employer: z.string().optional(),
890
+ employerCountry: z.enum(COUNTRY_CODES_2).optional(),
891
+ registeredNumber: z.string().optional(),
892
+ isPep: z.boolean().optional(),
893
+ titleBefore: z.string().optional(),
894
+ titleAfter: z.string().optional(),
895
+ birthSurname: z.string().optional(),
896
+ vocativeTitle: z.string().optional(),
897
+ deathDate: z.coerce.date().optional(),
898
+ deathNotification: z.coerce.date().optional(),
899
+ pin: z.string().optional(),
900
+ stayAbroad: z.boolean().optional(),
901
+ stayAbroadCountries: z.enum(COUNTRY_CODES_2).optional(),
902
+ identityDocuments: z.array(idDocumentInputSchema).optional()
903
+ });
904
+ const organizationUpdateSchema = z.object({
905
+ id: z.uuid(),
906
+ partyId: z.uuid().optional(),
907
+ internalId: z.string().optional(),
908
+ businessName: z.string().optional(),
909
+ email: z.email("Invalid email format").optional(),
910
+ phone: z.string().optional(),
911
+ registeredNumber: z.string().optional(),
912
+ registeredIn: z.enum(COUNTRY_CODES_2).optional(),
913
+ operatesIn: z.enum(COUNTRY_CODES_2).optional(),
914
+ presentIn: z.enum(COUNTRY_CODES_2).optional(),
915
+ monthlyVolumeIn: z.number().optional(),
916
+ monthlyVolumeOut: z.number().optional(),
917
+ ownedBy: z.string().optional(),
918
+ companyObjects: z.array(z.enum(CZ_NACE_CODES)).min(1).optional(),
919
+ annualTurnover: z.number().optional(),
920
+ numberOfEmployees: z.number().optional(),
921
+ prosecuted: z.string().optional(),
922
+ location: z.string().optional(),
923
+ fileNumber: z.string().optional(),
924
+ websiteUrl: z.url("Invalid website URL").optional(),
925
+ vatPayer: z.boolean().optional(),
926
+ companyObjectsDescription: z.string(),
927
+ turnover3years: z.number(),
928
+ operationCountries: z.string(),
929
+ riskyBusinessType: z.string().optional(),
930
+ vatId: z.string().optional(),
931
+ court: z.enum(COURT).optional(),
932
+ registerUri: z.string().optional()
933
+ });
934
+ const syncBankAccountSchema = z.object({
2226
935
  ...bankAccountMetadataSchema.shape,
2227
- partyId: z$1.uuid(),
2228
- internalId: z$1.string().optional(),
2229
- holderName: z$1.string(),
2230
- number: z$1.string().optional(),
936
+ partyId: z.uuid(),
937
+ internalId: z.string().optional(),
938
+ holderName: z.string(),
939
+ number: z.string().optional(),
2231
940
  currency: bankAccountMetadataSchema.shape.currency.nonoptional(),
2232
941
  countryCode: bankAccountMetadataSchema.shape.countryCode.nonoptional(),
2233
- id: z$1.uuid().optional(),
2234
- statementUri: z$1.string().optional()
2235
- });
2236
- const disponentIndividualSyncDataSchema = z$1.object({
2237
- id: z$1.uuid().optional(),
2238
- name: z$1.string(),
2239
- surname: z$1.string(),
2240
- email: z$1.email("E-mail je povinn\xFD"),
2241
- phone: z$1.string().optional(),
2242
- birthDate: z$1.string().min(1, "Datum narozen\xED je povinn\xE9"),
2243
- birthPlace: z$1.string().optional(),
2244
- countryOfBirth: z$1.enum(COUNTRY_CODES_2).optional(),
2245
- personalId: z$1.string(),
2246
- gender: z$1.enum(GENDER),
2247
- citizenship: z$1.enum(COUNTRY_CODES_2),
2248
- citizenshipOther: z$1.enum(COUNTRY_CODES_2).optional(),
2249
- employer: z$1.string().optional(),
2250
- employerCountry: z$1.enum(COUNTRY_CODES_2).optional(),
2251
- registeredNumber: z$1.string().optional(),
2252
- isPep: z$1.boolean(),
2253
- titleBefore: z$1.string().optional(),
2254
- titleAfter: z$1.string().optional(),
2255
- birthSurname: z$1.string().optional(),
2256
- vocativeTitle: z$1.string().optional(),
2257
- deathDate: z$1.coerce.date().optional(),
2258
- deathNotification: z$1.coerce.date().optional(),
2259
- pin: z$1.string().optional(),
2260
- stayAbroad: z$1.boolean().optional(),
2261
- stayAbroadCountries: z$1.enum(COUNTRY_CODES_2).optional(),
2262
- identityDocuments: z$1.array(idDocumentInputSchema).optional()
2263
- });
2264
- const disponentOrganizationSyncDataSchema = z$1.object({
2265
- id: z$1.uuid().optional(),
2266
- businessName: z$1.string(),
2267
- email: z$1.email("Invalid email format").optional(),
2268
- phone: z$1.string().optional(),
2269
- registeredNumber: z$1.string(),
2270
- registeredIn: z$1.enum(COUNTRY_CODES_2),
2271
- operatesIn: z$1.enum(COUNTRY_CODES_2),
2272
- presentIn: z$1.enum(COUNTRY_CODES_2),
2273
- monthlyVolumeIn: z$1.number(),
2274
- monthlyVolumeOut: z$1.number(),
2275
- ownedBy: z$1.string(),
2276
- companyObjects: z$1.array(z$1.enum(CZ_NACE_CODES)).min(1),
2277
- annualTurnover: z$1.number(),
2278
- numberOfEmployees: z$1.number().optional(),
2279
- prosecuted: z$1.string().optional(),
2280
- location: z$1.string().optional(),
2281
- fileNumber: z$1.string().optional(),
2282
- websiteUrl: z$1.url("Invalid website URL").optional(),
2283
- vatPayer: z$1.boolean(),
2284
- companyObjectsDescription: z$1.string(),
2285
- turnover3years: z$1.number(),
2286
- operationCountries: z$1.string(),
2287
- riskyBusinessType: z$1.string().optional(),
2288
- registerUri: z$1.string().optional()
2289
- });
2290
- const disponentSyncSchema = z$1.discriminatedUnion("partyType", [
2291
- z$1.object({
2292
- partyType: z$1.literal("INDIVIDUAL"),
942
+ id: z.uuid().optional(),
943
+ statementUri: z.string().optional()
944
+ });
945
+ const disponentIndividualSyncDataSchema = z.object({
946
+ id: z.uuid().optional(),
947
+ name: z.string(),
948
+ surname: z.string(),
949
+ email: z.email("E-mail je povinn\xFD"),
950
+ phone: z.string().optional(),
951
+ birthDate: z.string().min(1, "Datum narozen\xED je povinn\xE9"),
952
+ birthPlace: z.string().optional(),
953
+ countryOfBirth: z.enum(COUNTRY_CODES_2).optional(),
954
+ personalId: z.string(),
955
+ gender: z.enum(GENDER),
956
+ citizenship: z.enum(COUNTRY_CODES_2),
957
+ citizenshipOther: z.enum(COUNTRY_CODES_2).optional(),
958
+ employer: z.string().optional(),
959
+ employerCountry: z.enum(COUNTRY_CODES_2).optional(),
960
+ registeredNumber: z.string().optional(),
961
+ isPep: z.boolean(),
962
+ titleBefore: z.string().optional(),
963
+ titleAfter: z.string().optional(),
964
+ birthSurname: z.string().optional(),
965
+ vocativeTitle: z.string().optional(),
966
+ deathDate: z.coerce.date().optional(),
967
+ deathNotification: z.coerce.date().optional(),
968
+ pin: z.string().optional(),
969
+ stayAbroad: z.boolean().optional(),
970
+ stayAbroadCountries: z.enum(COUNTRY_CODES_2).optional(),
971
+ identityDocuments: z.array(idDocumentInputSchema).optional()
972
+ });
973
+ const disponentOrganizationSyncDataSchema = z.object({
974
+ id: z.uuid().optional(),
975
+ businessName: z.string(),
976
+ email: z.email("Invalid email format").optional(),
977
+ phone: z.string().optional(),
978
+ registeredNumber: z.string(),
979
+ registeredIn: z.enum(COUNTRY_CODES_2),
980
+ operatesIn: z.enum(COUNTRY_CODES_2),
981
+ presentIn: z.enum(COUNTRY_CODES_2),
982
+ monthlyVolumeIn: z.number(),
983
+ monthlyVolumeOut: z.number(),
984
+ ownedBy: z.string(),
985
+ companyObjects: z.array(z.enum(CZ_NACE_CODES)).min(1),
986
+ annualTurnover: z.number(),
987
+ numberOfEmployees: z.number().optional(),
988
+ prosecuted: z.string().optional(),
989
+ location: z.string().optional(),
990
+ fileNumber: z.string().optional(),
991
+ websiteUrl: z.url("Invalid website URL").optional(),
992
+ vatPayer: z.boolean(),
993
+ companyObjectsDescription: z.string(),
994
+ turnover3years: z.number(),
995
+ operationCountries: z.string(),
996
+ riskyBusinessType: z.string().optional(),
997
+ registerUri: z.string().optional()
998
+ });
999
+ const disponentSyncSchema = z.discriminatedUnion("partyType", [
1000
+ z.object({
1001
+ partyType: z.literal("INDIVIDUAL"),
2293
1002
  data: disponentIndividualSyncDataSchema
2294
1003
  }),
2295
- z$1.object({
2296
- partyType: z$1.literal("ORGANIZATION"),
1004
+ z.object({
1005
+ partyType: z.literal("ORGANIZATION"),
2297
1006
  data: disponentOrganizationSyncDataSchema
2298
1007
  })
2299
1008
  ]);
2300
- const syncAddressInputSchema = z$1.object({
2301
- id: z$1.uuid().optional(),
2302
- partyId: z$1.uuid(),
2303
- internalId: z$1.string().optional(),
2304
- addressType: z$1.enum(ADDRESS_TYPE),
2305
- street: z$1.string(),
2306
- orientationNumber: z$1.string().optional(),
2307
- descriptiveNumber: z$1.string().optional(),
2308
- municipality: z$1.string().max(255),
2309
- municipalityPart: z$1.string().optional(),
2310
- zipCode: z$1.string().max(20),
2311
- district: z$1.string().max(255),
2312
- region: z$1.string().max(255),
2313
- countryCode: z$1.enum(COUNTRY_CODES_2),
2314
- ruianCode: z$1.string().optional()
2315
- });
2316
- const businessPartnerInputSchema = z$1.object({
2317
- name: z$1.string().min(1, "N\xE1zev partnera je povinn\xFD"),
2318
- country: z$1.enum(COUNTRY_CODES_2, "St\xE1t partnera je povinn\xFD"),
2319
- cooperationReason: z$1.string().nullable()
2320
- });
2321
- const foSourceOfWealthInputSchema = z$1.object({
2322
- incomeSources: z$1.array(z$1.enum(INCOME_SOURCE)).min(1, "Hlavn\xED zdroj p\u0159\xEDjm\u016F je povinn\xFD"),
2323
- incomeSourceOther: z$1.string().nullable(),
2324
- monthlyIncome: z$1.enum(MONTHLY_INCOME_RANGE, "M\u011Bs\xED\u010Dn\xED p\u0159\xEDjem je povinn\xFD"),
2325
- employer: z$1.string().min(1, "N\xE1zev zam\u011Bstnavatele je povinn\xFD").nullable(),
2326
- employerCountry: z$1.enum(COUNTRY_CODES_2, "St\xE1t zam\u011Bstnavatele je povinn\xFD").nullable()
2327
- });
2328
- const businessSourceOfWealthInputSchema = z$1.object({
2329
- financialFundsSources: z$1.array(z$1.enum(FINANCIAL_FUNDS_SOURCE)).min(1, "Zdroj finan\u010Dn\xEDch prost\u0159edk\u016F je povinn\xFD"),
2330
- financialFundsSourceOther: z$1.string().nullable(),
2331
- mainBusinessSubjects: z$1.array(z$1.enum(CZ_TRADE_LICENSE_CODES)).min(1, "Hlavn\xED p\u0159edm\u011Bt podnik\xE1n\xED je povinn\xFD"),
2332
- companyTurnover: z$1.enum(
1009
+ const syncAddressInputSchema = z.object({
1010
+ id: z.uuid().optional(),
1011
+ partyId: z.uuid(),
1012
+ internalId: z.string().optional(),
1013
+ addressType: z.enum(ADDRESS_TYPE),
1014
+ street: z.string(),
1015
+ orientationNumber: z.string().optional(),
1016
+ descriptiveNumber: z.string().optional(),
1017
+ municipality: z.string().max(255),
1018
+ municipalityPart: z.string().optional(),
1019
+ zipCode: z.string().max(20),
1020
+ district: z.string().max(255),
1021
+ region: z.string().max(255),
1022
+ countryCode: z.enum(COUNTRY_CODES_2),
1023
+ ruianCode: z.string().optional()
1024
+ });
1025
+ const businessPartnerInputSchema = z.object({
1026
+ name: z.string().min(1, "N\xE1zev partnera je povinn\xFD"),
1027
+ country: z.enum(COUNTRY_CODES_2, "St\xE1t partnera je povinn\xFD"),
1028
+ cooperationReason: z.string().nullable()
1029
+ });
1030
+ const foSourceOfWealthInputSchema = z.object({
1031
+ incomeSources: z.array(z.enum(INCOME_SOURCE)).min(1, "Hlavn\xED zdroj p\u0159\xEDjm\u016F je povinn\xFD"),
1032
+ incomeSourceOther: z.string().nullable(),
1033
+ monthlyIncome: z.enum(MONTHLY_INCOME_RANGE, "M\u011Bs\xED\u010Dn\xED p\u0159\xEDjem je povinn\xFD"),
1034
+ employer: z.string().min(1, "N\xE1zev zam\u011Bstnavatele je povinn\xFD").nullable(),
1035
+ employerCountry: z.enum(COUNTRY_CODES_2, "St\xE1t zam\u011Bstnavatele je povinn\xFD").nullable()
1036
+ });
1037
+ const businessSourceOfWealthInputSchema = z.object({
1038
+ financialFundsSources: z.array(z.enum(FINANCIAL_FUNDS_SOURCE)).min(1, "Zdroj finan\u010Dn\xEDch prost\u0159edk\u016F je povinn\xFD"),
1039
+ financialFundsSourceOther: z.string().nullable(),
1040
+ mainBusinessSubjects: z.array(z.enum(CZ_TRADE_LICENSE_CODES)).min(1, "Hlavn\xED p\u0159edm\u011Bt podnik\xE1n\xED je povinn\xFD"),
1041
+ companyTurnover: z.enum(
2333
1042
  COMPANY_TURNOVER_RANGE,
2334
1043
  "Obrat za posledn\xED 3 roky je povinn\xFD"
2335
1044
  ),
2336
- operatingCountries: z$1.array(z$1.enum(OPERATING_COUNTRY)).min(1, "Zem\u011B p\u016Fsoben\xED je povinn\xE1"),
2337
- operatingCountriesOther: z$1.array(z$1.enum(COUNTRY_CODES_2)).nullable(),
2338
- businessPartners: z$1.array(businessPartnerInputSchema).min(1, "Alespo\u0148 jeden partner je povinn\xFD").nullable(),
2339
- businessActivitiesNote: z$1.string().min(1, "Detailn\xED popis v\u0161ech podnikatelsk\xFDch \u010Dinnost\xED je povinn\xFD").nullable()
2340
- });
2341
- const updateAmlInputSchema = z$1.object({
2342
- id: z$1.uuid(),
2343
- partyId: z$1.uuid().optional(),
2344
- internalId: z$1.string().optional(),
2345
- sourceOfWealth: z$1.union([foSourceOfWealthInputSchema, businessSourceOfWealthInputSchema]).optional(),
2346
- yearlyIncome: z$1.enum(YEARLY_INCOME).optional(),
2347
- sourceOfIncome: z$1.array(z$1.enum(INCOME_SOURCE)).min(1).optional(),
2348
- incomeSourceOther: z$1.string().optional(),
2349
- servicePurposes: z$1.array(z$1.enum(SERVICE_PURPOSE)).optional(),
2350
- servicePurposesOther: z$1.string().optional(),
2351
- taxDomicile: z$1.enum(TAX_DOMICILE).optional(),
2352
- taxDomicileCountry: z$1.enum(COUNTRY_CODES_2).optional(),
2353
- transactionType: z$1.string().optional(),
2354
- transactionTypeExpiry: z$1.coerce.date().optional(),
2355
- isDistraint: z$1.boolean().optional(),
2356
- estTxsVolumeMonth: z$1.enum(EST_TXS_VOLUME_MONTH),
2357
- estTxsVolumeYear: z$1.enum(EST_TXS_VOLUME_YEAR),
2358
- estTxsCountMonth: z$1.number().int().optional(),
2359
- tradingCountries: z$1.array(z$1.enum(TARGET_COUNTRY)).min(1),
2360
- tradingCountriesOther: z$1.array(z$1.enum(COUNTRY_CODES_2)).optional(),
2361
- tradingSide: z$1.enum(TRADING_SIDE),
2362
- acceptedAMLTermsAndConditions: z$1.boolean(),
2363
- signatureMethod: z$1.enum(SIGNATURE_METHOD).optional(),
2364
- existencePeriod: z$1.enum(EXISTENCE_PERIOD).optional(),
2365
- reputation: z$1.enum(REPUTATION).optional(),
2366
- riskBusinessAreas: z$1.array(z$1.enum(RISK_BUSINESS_AREA)).optional(),
2367
- riskLevel: z$1.enum(AML_SCORE_TYPE).optional(),
2368
- kycStatus: z$1.enum(KYC_STATUS).optional(),
2369
- residencyAnswers: z$1.array(
2370
- z$1.object({
2371
- personName: z$1.string(),
2372
- personRole: z$1.enum(PERSON_ROLE),
2373
- answer: z$1.enum(YES_NO_UNKNOWN),
2374
- country: z$1.enum(COUNTRY_CODES_2).nullable()
1045
+ operatingCountries: z.array(z.enum(OPERATING_COUNTRY)).min(1, "Zem\u011B p\u016Fsoben\xED je povinn\xE1"),
1046
+ operatingCountriesOther: z.array(z.enum(COUNTRY_CODES_2)).nullable(),
1047
+ businessPartners: z.array(businessPartnerInputSchema).min(1, "Alespo\u0148 jeden partner je povinn\xFD").nullable(),
1048
+ businessActivitiesNote: z.string().min(1, "Detailn\xED popis v\u0161ech podnikatelsk\xFDch \u010Dinnost\xED je povinn\xFD").nullable()
1049
+ });
1050
+ const updateAmlInputSchema = z.object({
1051
+ id: z.uuid(),
1052
+ partyId: z.uuid().optional(),
1053
+ internalId: z.string().optional(),
1054
+ sourceOfWealth: z.union([foSourceOfWealthInputSchema, businessSourceOfWealthInputSchema]).optional(),
1055
+ yearlyIncome: z.enum(YEARLY_INCOME).optional(),
1056
+ sourceOfIncome: z.array(z.enum(INCOME_SOURCE)).min(1).optional(),
1057
+ incomeSourceOther: z.string().optional(),
1058
+ servicePurposes: z.array(z.enum(SERVICE_PURPOSE)).optional(),
1059
+ servicePurposesOther: z.string().optional(),
1060
+ taxDomicile: z.enum(TAX_DOMICILE).optional(),
1061
+ taxDomicileCountry: z.enum(COUNTRY_CODES_2).optional(),
1062
+ transactionType: z.string().optional(),
1063
+ transactionTypeExpiry: z.coerce.date().optional(),
1064
+ isDistraint: z.boolean().optional(),
1065
+ estTxsVolumeMonth: z.enum(EST_TXS_VOLUME_MONTH),
1066
+ estTxsVolumeYear: z.enum(EST_TXS_VOLUME_YEAR),
1067
+ estTxsCountMonth: z.number().int().optional(),
1068
+ tradingCountries: z.array(z.enum(TARGET_COUNTRY)).min(1),
1069
+ tradingCountriesOther: z.array(z.enum(COUNTRY_CODES_2)).optional(),
1070
+ tradingSide: z.enum(TRADING_SIDE),
1071
+ acceptedAMLTermsAndConditions: z.boolean(),
1072
+ signatureMethod: z.enum(SIGNATURE_METHOD).optional(),
1073
+ existencePeriod: z.enum(EXISTENCE_PERIOD).optional(),
1074
+ reputation: z.enum(REPUTATION).optional(),
1075
+ riskBusinessAreas: z.array(z.enum(RISK_BUSINESS_AREA)).optional(),
1076
+ riskLevel: z.enum(AML_SCORE_TYPE).optional(),
1077
+ kycStatus: z.enum(KYC_STATUS).optional(),
1078
+ residencyAnswers: z.array(
1079
+ z.object({
1080
+ personName: z.string(),
1081
+ personRole: z.enum(PERSON_ROLE),
1082
+ answer: z.enum(YES_NO_UNKNOWN),
1083
+ country: z.enum(COUNTRY_CODES_2).nullable()
2375
1084
  })
2376
- ).optional().nullable()
2377
- });
2378
- const productsInputSchema = z$1.object({
2379
- txs: z$1.object({
2380
- fee: z$1.number(),
2381
- margin: z$1.number(),
2382
- reportingEmail: z$1.string().optional(),
2383
- clientType: z$1.enum(TXS_CLIENT_TYPE).optional()
1085
+ ).optional()
1086
+ });
1087
+ const productsInputSchema = z.object({
1088
+ txs: z.object({
1089
+ fee: z.number(),
1090
+ margin: z.number(),
1091
+ reportingEmail: z.string().optional(),
1092
+ clientType: z.enum(TXS_CLIENT_TYPE).optional()
2384
1093
  }).optional(),
2385
- cbs: z$1.object({}).optional()
2386
- });
2387
- const ownerSyncSchema = z$1.object({
2388
- id: z$1.uuid().optional(),
2389
- titleBefore: z$1.string().optional(),
2390
- name: z$1.string(),
2391
- surname: z$1.string(),
2392
- titleAfter: z$1.string().optional(),
2393
- email: z$1.email("E-mail je povinn\xFD"),
2394
- birthDate: z$1.string(),
2395
- birthPlace: z$1.string().optional(),
2396
- personalId: z$1.string(),
2397
- gender: z$1.enum(GENDER),
2398
- citizenship: z$1.enum(COUNTRY_CODES_2),
2399
- isPep: z$1.boolean(),
1094
+ cbs: z.object({}).optional()
1095
+ });
1096
+ const ownerSyncSchema = z.object({
1097
+ id: z.uuid().optional(),
1098
+ titleBefore: z.string().optional(),
1099
+ name: z.string(),
1100
+ surname: z.string(),
1101
+ titleAfter: z.string().optional(),
1102
+ email: z.email("E-mail je povinn\xFD"),
1103
+ birthDate: z.string(),
1104
+ birthPlace: z.string().optional(),
1105
+ personalId: z.string(),
1106
+ gender: z.enum(GENDER),
1107
+ citizenship: z.enum(COUNTRY_CODES_2),
1108
+ isPep: z.boolean(),
2400
1109
  address: syncAddressInputSchema,
2401
- sharePercentage: z$1.number().max(100),
2402
- shareEstablishedAt: z$1.string().min(1, "Datum vzniku pod\xEDlu je povinn\xFD")
2403
- });
2404
- const legalRepresentativeSyncSchema = z$1.object({
2405
- id: z$1.uuid().optional(),
2406
- titleBefore: z$1.string().optional(),
2407
- name: z$1.string(),
2408
- surname: z$1.string(),
2409
- titleAfter: z$1.string().optional(),
2410
- email: z$1.email("E-mail je povinn\xFD"),
2411
- birthDate: z$1.string(),
2412
- birthPlace: z$1.string().optional(),
2413
- personalId: z$1.string(),
2414
- gender: z$1.enum(GENDER),
2415
- citizenship: z$1.enum(COUNTRY_CODES_2),
2416
- isPep: z$1.boolean(),
2417
- phone: z$1.string().optional(),
2418
- pin: z$1.string().optional(),
2419
- identityDocuments: z$1.array(idDocumentInputSchema).optional(),
1110
+ sharePercentage: z.number().max(100),
1111
+ shareEstablishedAt: z.string().min(1, "Datum vzniku pod\xEDlu je povinn\xFD")
1112
+ });
1113
+ const legalRepresentativeSyncSchema = z.object({
1114
+ id: z.uuid().optional(),
1115
+ titleBefore: z.string().optional(),
1116
+ name: z.string(),
1117
+ surname: z.string(),
1118
+ titleAfter: z.string().optional(),
1119
+ email: z.email("E-mail je povinn\xFD"),
1120
+ birthDate: z.string(),
1121
+ birthPlace: z.string().optional(),
1122
+ personalId: z.string(),
1123
+ gender: z.enum(GENDER),
1124
+ citizenship: z.enum(COUNTRY_CODES_2),
1125
+ isPep: z.boolean(),
1126
+ phone: z.string().optional(),
1127
+ pin: z.string().optional(),
1128
+ identityDocuments: z.array(idDocumentInputSchema).optional(),
2420
1129
  address: syncAddressInputSchema,
2421
- dateOfEstablishment: z$1.string().min(1, "Datum vzniku funkce je povinn\xFD")
1130
+ dateOfEstablishment: z.string().min(1, "Datum vzniku funkce je povinn\xFD")
2422
1131
  });
2423
- const partyUpdateInputSchema = z$1.object({
1132
+ const partyUpdateInputSchema = z.object({
2424
1133
  party: partySchema,
2425
1134
  personalData: individualUpdateSchema.nullable(),
2426
1135
  organizationData: organizationUpdateSchema.nullable(),
2427
- bankAccounts: z$1.array(syncBankAccountSchema),
2428
- disponents: z$1.array(disponentSyncSchema).optional(),
2429
- addresses: z$1.array(syncAddressInputSchema),
2430
- owners: z$1.array(ownerSyncSchema).optional(),
2431
- legalRepresentatives: z$1.array(legalRepresentativeSyncSchema).optional(),
2432
- recipients: z$1.array(syncBankAccountSchema).nullable(),
1136
+ bankAccounts: z.array(syncBankAccountSchema),
1137
+ disponents: z.array(disponentSyncSchema).optional(),
1138
+ addresses: z.array(syncAddressInputSchema),
1139
+ owners: z.array(ownerSyncSchema).optional(),
1140
+ legalRepresentatives: z.array(legalRepresentativeSyncSchema).optional(),
1141
+ recipients: z.array(syncBankAccountSchema).nullable(),
2433
1142
  aml: updateAmlInputSchema.optional(),
2434
1143
  products: productsInputSchema.optional(),
2435
- traderIds: z$1.array(z$1.uuid()).optional()
2436
- });
2437
- const updatePartyOuputSchema = z$1.object({
2438
- id: z$1.uuid(),
2439
- customerStatus: z$1.enum(CUSTOMER_STATUS),
2440
- partyType: z$1.enum(PARTY_TYPE),
2441
- language: z$1.enum(LANGUAGE_CODES),
2442
- note: z$1.string().nullable(),
2443
- countryCode: z$1.enum(COUNTRY_CODES_2).nullable()
2444
- });
2445
- const responseBodySchema$4 = z$1.object({
2446
- message: z$1.string(),
1144
+ traderIds: z.array(z.uuid()).optional()
1145
+ });
1146
+ const updatePartyOuputSchema = z.object({
1147
+ id: z.uuid(),
1148
+ customerStatus: z.enum(CUSTOMER_STATUS),
1149
+ partyType: z.enum(PARTY_TYPE),
1150
+ language: z.enum(LANGUAGE_CODES),
1151
+ note: z.string().nullable(),
1152
+ countryCode: z.enum(COUNTRY_CODES_2).nullable()
1153
+ });
1154
+ const responseBodySchema$4 = z.object({
1155
+ message: z.string(),
2447
1156
  party: updatePartyOuputSchema
2448
1157
  });
2449
1158
  const updatePartyRoute = createRoute({
@@ -2458,7 +1167,7 @@ const updatePartyRoute = createRoute({
2458
1167
  }
2459
1168
  ],
2460
1169
  request: {
2461
- params: z$1.object({ partyId: z$1.uuid() }),
1170
+ params: z.object({ partyId: z.uuid() }),
2462
1171
  body: {
2463
1172
  content: {
2464
1173
  "application/json": {
@@ -2586,54 +1295,54 @@ new OpenAPIHono().openapi(
2586
1295
  );
2587
1296
 
2588
1297
  const DOCUMENT_SIDE = ["front", "back"];
2589
- const paramsSchema$2 = z$1.object({
2590
- partyId: z$1.uuid()
2591
- });
2592
- const idDocumentCreateInputSchema = z$1.object({
2593
- partyId: z$1.uuid(),
2594
- idDocType: z$1.enum(ID_DOC_TYPE),
2595
- idDocNumber: z$1.string(),
2596
- idDocHolderName: z$1.string(),
2597
- issueDate: z$1.coerce.date().optional(),
2598
- expirationDate: z$1.coerce.date().optional(),
2599
- issuer: z$1.string().optional(),
2600
- countryOfIssue: z$1.enum(COUNTRY_CODES_2).optional(),
2601
- idDocStatus: z$1.enum(ID_DOC_STATUS).optional()
2602
- });
2603
- const idDocumentMultipartSchema = z$1.object({
2604
- idDocument: z$1.string(),
2605
- documentSide: z$1.enum(DOCUMENT_SIDE),
2606
- file: z$1.any()
2607
- });
2608
- const multipartOpenApiSchema = z$1.object({
2609
- idDocument: z$1.string().openapi({
1298
+ const paramsSchema$2 = z.object({
1299
+ partyId: z.uuid()
1300
+ });
1301
+ const idDocumentCreateInputSchema = z.object({
1302
+ partyId: z.uuid(),
1303
+ idDocType: z.enum(ID_DOC_TYPE),
1304
+ idDocNumber: z.string(),
1305
+ idDocHolderName: z.string(),
1306
+ issueDate: z.coerce.date().optional(),
1307
+ expirationDate: z.coerce.date().optional(),
1308
+ issuer: z.string().optional(),
1309
+ countryOfIssue: z.enum(COUNTRY_CODES_2).optional(),
1310
+ idDocStatus: z.enum(ID_DOC_STATUS).optional()
1311
+ });
1312
+ const idDocumentMultipartSchema = z.object({
1313
+ idDocument: z.string(),
1314
+ documentSide: z.enum(DOCUMENT_SIDE),
1315
+ file: z.any()
1316
+ });
1317
+ const multipartOpenApiSchema = z.object({
1318
+ idDocument: z.string().openapi({
2610
1319
  description: "JSON stringified IdDocument payload"
2611
1320
  }),
2612
- documentSide: z$1.enum(DOCUMENT_SIDE),
2613
- file: z$1.any().openapi({
1321
+ documentSide: z.enum(DOCUMENT_SIDE),
1322
+ file: z.any().openapi({
2614
1323
  type: "string",
2615
1324
  format: "binary"
2616
1325
  })
2617
1326
  });
2618
- const idDocumentOutputSchema = z$1.object({
2619
- id: z$1.uuid(),
2620
- createdAt: z$1.iso.datetime().nullable(),
2621
- updatedAt: z$1.iso.datetime().nullable(),
2622
- deletedAt: z$1.iso.datetime().nullable(),
2623
- partyId: z$1.uuid(),
2624
- idDocType: z$1.enum(ID_DOC_TYPE),
2625
- idDocNumber: z$1.string(),
2626
- idDocHolderName: z$1.string(),
2627
- issueDate: z$1.iso.datetime().nullable(),
2628
- expirationDate: z$1.iso.datetime().nullable(),
2629
- issuer: z$1.string().nullable(),
2630
- countryOfIssue: z$1.enum(COUNTRY_CODES_2).nullable(),
2631
- frontImageUri: z$1.string().nullable(),
2632
- backImageUri: z$1.string().nullable(),
2633
- idDocStatus: z$1.enum(ID_DOC_STATUS).nullable()
2634
- });
2635
- const responseBodySchema$3 = z$1.object({
2636
- message: z$1.string(),
1327
+ const idDocumentOutputSchema = z.object({
1328
+ id: z.uuid(),
1329
+ createdAt: z.iso.datetime().nullable(),
1330
+ updatedAt: z.iso.datetime().nullable(),
1331
+ deletedAt: z.iso.datetime().nullable(),
1332
+ partyId: z.uuid(),
1333
+ idDocType: z.enum(ID_DOC_TYPE),
1334
+ idDocNumber: z.string(),
1335
+ idDocHolderName: z.string(),
1336
+ issueDate: z.iso.datetime().nullable(),
1337
+ expirationDate: z.iso.datetime().nullable(),
1338
+ issuer: z.string().nullable(),
1339
+ countryOfIssue: z.enum(COUNTRY_CODES_2).nullable(),
1340
+ frontImageUri: z.string().nullable(),
1341
+ backImageUri: z.string().nullable(),
1342
+ idDocStatus: z.enum(ID_DOC_STATUS).nullable()
1343
+ });
1344
+ const responseBodySchema$3 = z.object({
1345
+ message: z.string(),
2637
1346
  idDocument: idDocumentOutputSchema
2638
1347
  });
2639
1348
  const createDocumentRoute = createRoute({
@@ -2673,7 +1382,7 @@ const createDocumentRoute = createRoute({
2673
1382
  description: "Invalid request",
2674
1383
  content: {
2675
1384
  "application/json": {
2676
- schema: z$1.object({ message: z$1.string() })
1385
+ schema: z.object({ message: z.string() })
2677
1386
  }
2678
1387
  }
2679
1388
  },
@@ -2681,7 +1390,7 @@ const createDocumentRoute = createRoute({
2681
1390
  description: "Internal server error",
2682
1391
  content: {
2683
1392
  "application/json": {
2684
- schema: z$1.object({ message: z$1.string() })
1393
+ schema: z.object({ message: z.string() })
2685
1394
  }
2686
1395
  }
2687
1396
  }
@@ -2746,255 +1455,257 @@ new OpenAPIHono().openapi(
2746
1455
  }
2747
1456
  );
2748
1457
 
2749
- const partyBaseOutputSchema = z$1.object({
2750
- customerStatus: z$1.enum(CUSTOMER_STATUS),
2751
- partyType: z$1.enum(PARTY_TYPE),
2752
- language: z$1.enum(LANGUAGE_CODES),
2753
- id: z$1.uuid(),
2754
- internalId: z$1.string().nullable(),
2755
- note: z$1.string().nullable(),
2756
- countryCode: z$1.enum(COUNTRY_CODES_2).nullable(),
2757
- createdAt: z$1.date().nullable(),
2758
- updatedAt: z$1.date().nullable(),
2759
- isRoot: z$1.boolean()
2760
- });
2761
- const individualOutputSchema = z$1.object({
2762
- id: z$1.uuid(),
2763
- partyId: z$1.uuid(),
2764
- internalId: z$1.string().nullable(),
2765
- name: z$1.string(),
2766
- surname: z$1.string(),
2767
- email: z$1.string(),
2768
- phone: z$1.string().nullable(),
2769
- birthDate: z$1.string(),
2770
- birthPlace: z$1.string().nullable(),
2771
- countryOfBirth: z$1.enum(COUNTRY_CODES_2).nullable(),
2772
- personalId: z$1.string(),
2773
- gender: z$1.enum(GENDER),
2774
- citizenship: z$1.enum(COUNTRY_CODES_2),
2775
- citizenshipOther: z$1.enum(COUNTRY_CODES_2).nullable(),
2776
- employer: z$1.string().nullable(),
2777
- employerCountry: z$1.enum(COUNTRY_CODES_2).nullable(),
2778
- registeredNumber: z$1.string().nullable(),
2779
- isPep: z$1.boolean(),
2780
- titleBefore: z$1.string().nullable(),
2781
- titleAfter: z$1.string().nullable(),
2782
- birthSurname: z$1.string().nullable(),
2783
- vocativeTitle: z$1.string().nullable(),
2784
- deathDate: z$1.coerce.date().nullable(),
2785
- deathNotification: z$1.coerce.date().nullable(),
2786
- pin: z$1.string().nullable(),
2787
- stayAbroad: z$1.boolean().nullable(),
2788
- stayAbroadCountries: z$1.enum(COUNTRY_CODES_2).nullable(),
2789
- createdAt: z$1.coerce.date().nullable(),
2790
- updatedAt: z$1.coerce.date().nullable(),
2791
- identityDocuments: z$1.array(idDocumentOutputSchema).nullable()
2792
- });
2793
- const createOrganizationOutputSchema = z$1.object({
2794
- partyId: z$1.uuid(),
2795
- internalId: z$1.string().nullable(),
2796
- businessName: z$1.string(),
2797
- email: z$1.string().nullable(),
2798
- phone: z$1.string().nullable(),
2799
- registeredNumber: z$1.string(),
2800
- registeredIn: z$1.enum(COUNTRY_CODES_2),
2801
- operatesIn: z$1.enum(COUNTRY_CODES_2),
2802
- presentIn: z$1.enum(COUNTRY_CODES_2),
2803
- monthlyVolumeIn: z$1.number(),
2804
- monthlyVolumeOut: z$1.number(),
2805
- ownedBy: z$1.string(),
2806
- companyObjects: z$1.array(z$1.enum(CZ_NACE_CODES)),
2807
- annualTurnover: z$1.number(),
2808
- numberOfEmployees: z$1.number().nullable(),
2809
- prosecuted: z$1.string().nullable(),
2810
- location: z$1.string().nullable(),
2811
- fileNumber: z$1.string().nullable(),
2812
- websiteUrl: z$1.string().nullable(),
2813
- vatPayer: z$1.boolean(),
2814
- companyObjectsDescription: z$1.string(),
2815
- turnover3years: z$1.number(),
2816
- operationCountries: z$1.string(),
2817
- riskyBusinessType: z$1.string().nullable(),
2818
- vatId: z$1.string().nullable(),
2819
- court: z$1.enum(COURT).nullable(),
2820
- registerUri: z$1.string().nullable()
2821
- });
2822
- const bankAccountOutputSchema = z$1.object({
2823
- id: z$1.string(),
2824
- partyId: z$1.uuid(),
2825
- internalId: z$1.string().nullable(),
2826
- holderName: z$1.string(),
2827
- number: z$1.string().nullable(),
2828
- bankCode: z$1.string().nullable(),
2829
- currency: z$1.string(),
2830
- countryCode: z$1.string(),
2831
- iban: z$1.string().nullable(),
2832
- address: z$1.string().nullable(),
2833
- swiftBic: z$1.string().nullable(),
2834
- bicCor: z$1.string().nullable(),
2835
- routingNumber: z$1.string().nullable(),
2836
- sortCode: z$1.string().nullable(),
2837
- clabe: z$1.string().nullable(),
2838
- bsb: z$1.string().nullable(),
2839
- brBankNumber: z$1.string().nullable(),
2840
- updatedAt: z$1.coerce.date().nullable(),
2841
- statementUri: z$1.string().nullable()
2842
- });
2843
- const disponentOutputSchema = z$1.discriminatedUnion("partyType", [
2844
- z$1.object({
2845
- partyType: z$1.literal("INDIVIDUAL"),
1458
+ const partyBaseOutputSchema = z.object({
1459
+ customerStatus: z.enum(CUSTOMER_STATUS),
1460
+ partyType: z.enum(PARTY_TYPE),
1461
+ language: z.enum(LANGUAGE_CODES),
1462
+ id: z.uuid(),
1463
+ internalId: z.string().nullable(),
1464
+ note: z.string().nullable(),
1465
+ countryCode: z.enum(COUNTRY_CODES_2).nullable(),
1466
+ createdAt: z.iso.datetime().nullable(),
1467
+ updatedAt: z.iso.datetime().nullable(),
1468
+ deletedAt: z.iso.datetime().nullable(),
1469
+ deletedBy: z.string().nullable(),
1470
+ isRoot: z.boolean()
1471
+ });
1472
+ const individualOutputSchema = z.object({
1473
+ id: z.uuid(),
1474
+ partyId: z.uuid(),
1475
+ internalId: z.string().nullable(),
1476
+ name: z.string(),
1477
+ surname: z.string(),
1478
+ email: z.string(),
1479
+ phone: z.string().nullable(),
1480
+ birthDate: z.string(),
1481
+ birthPlace: z.string().nullable(),
1482
+ countryOfBirth: z.enum(COUNTRY_CODES_2).nullable(),
1483
+ personalId: z.string(),
1484
+ gender: z.enum(GENDER),
1485
+ citizenship: z.enum(COUNTRY_CODES_2),
1486
+ citizenshipOther: z.enum(COUNTRY_CODES_2).nullable(),
1487
+ employer: z.string().nullable(),
1488
+ employerCountry: z.enum(COUNTRY_CODES_2).nullable(),
1489
+ registeredNumber: z.string().nullable(),
1490
+ isPep: z.boolean(),
1491
+ titleBefore: z.string().nullable(),
1492
+ titleAfter: z.string().nullable(),
1493
+ birthSurname: z.string().nullable(),
1494
+ vocativeTitle: z.string().nullable(),
1495
+ deathDate: z.iso.datetime().nullable(),
1496
+ deathNotification: z.iso.datetime().nullable(),
1497
+ pin: z.string().nullable(),
1498
+ stayAbroad: z.boolean().nullable(),
1499
+ stayAbroadCountries: z.enum(COUNTRY_CODES_2).nullable(),
1500
+ createdAt: z.iso.datetime().nullable(),
1501
+ updatedAt: z.iso.datetime().nullable(),
1502
+ identityDocuments: z.array(idDocumentOutputSchema).nullable()
1503
+ });
1504
+ const createOrganizationOutputSchema = z.object({
1505
+ partyId: z.uuid(),
1506
+ internalId: z.string().nullable(),
1507
+ businessName: z.string(),
1508
+ email: z.string().nullable(),
1509
+ phone: z.string().nullable(),
1510
+ registeredNumber: z.string(),
1511
+ registeredIn: z.enum(COUNTRY_CODES_2),
1512
+ operatesIn: z.enum(COUNTRY_CODES_2),
1513
+ presentIn: z.enum(COUNTRY_CODES_2),
1514
+ monthlyVolumeIn: z.number(),
1515
+ monthlyVolumeOut: z.number(),
1516
+ ownedBy: z.string(),
1517
+ companyObjects: z.array(z.enum(CZ_NACE_CODES)),
1518
+ annualTurnover: z.number(),
1519
+ numberOfEmployees: z.number().nullable(),
1520
+ prosecuted: z.string().nullable(),
1521
+ location: z.string().nullable(),
1522
+ fileNumber: z.string().nullable(),
1523
+ websiteUrl: z.string().nullable(),
1524
+ vatPayer: z.boolean(),
1525
+ companyObjectsDescription: z.string(),
1526
+ turnover3years: z.number(),
1527
+ operationCountries: z.string(),
1528
+ riskyBusinessType: z.string().nullable(),
1529
+ vatId: z.string().nullable(),
1530
+ court: z.enum(COURT).nullable(),
1531
+ registerUri: z.string().nullable()
1532
+ });
1533
+ const bankAccountOutputSchema = z.object({
1534
+ id: z.string(),
1535
+ partyId: z.uuid(),
1536
+ internalId: z.string().nullable(),
1537
+ holderName: z.string(),
1538
+ number: z.string().nullable(),
1539
+ bankCode: z.string().nullable(),
1540
+ currency: z.string(),
1541
+ countryCode: z.string(),
1542
+ iban: z.string().nullable(),
1543
+ address: z.string().nullable(),
1544
+ swiftBic: z.string().nullable(),
1545
+ bicCor: z.string().nullable(),
1546
+ routingNumber: z.string().nullable(),
1547
+ sortCode: z.string().nullable(),
1548
+ clabe: z.string().nullable(),
1549
+ bsb: z.string().nullable(),
1550
+ brBankNumber: z.string().nullable(),
1551
+ updatedAt: z.iso.datetime().nullable(),
1552
+ statementUri: z.string().nullable()
1553
+ });
1554
+ const disponentOutputSchema = z.discriminatedUnion("partyType", [
1555
+ z.object({
1556
+ partyType: z.literal("INDIVIDUAL"),
2846
1557
  data: individualOutputSchema.nullable()
2847
1558
  }),
2848
- z$1.object({
2849
- partyType: z$1.literal("ORGANIZATION"),
1559
+ z.object({
1560
+ partyType: z.literal("ORGANIZATION"),
2850
1561
  data: createOrganizationOutputSchema.nullable()
2851
1562
  })
2852
1563
  ]);
2853
- const createAddressOutputSchema = z$1.object({
2854
- id: z$1.uuid(),
2855
- partyId: z$1.uuid(),
2856
- internalId: z$1.string().nullable(),
2857
- addressType: z$1.enum(ADDRESS_TYPE),
2858
- street: z$1.string().nullable(),
2859
- orientationNumber: z$1.string().nullable(),
2860
- descriptiveNumber: z$1.string().nullable(),
2861
- municipality: z$1.string(),
2862
- municipalityPart: z$1.string().nullable(),
2863
- zipCode: z$1.string(),
2864
- district: z$1.string().nullable(),
2865
- region: z$1.string().nullable(),
2866
- countryCode: z$1.enum(COUNTRY_CODES_2),
2867
- ruianCode: z$1.string().nullable(),
2868
- createdAt: z$1.date().nullable(),
2869
- updatedAt: z$1.date().nullable()
2870
- });
2871
- const businessPartnerOutputSchema = z$1.object({
2872
- name: z$1.string(),
2873
- country: z$1.string(),
2874
- cooperationReason: z$1.string().nullable()
2875
- });
2876
- const foSourceOfWealthOutputSchema = z$1.object({
2877
- incomeSources: z$1.array(z$1.enum(INCOME_SOURCE)),
2878
- incomeSourceOther: z$1.string().nullable(),
2879
- monthlyIncome: z$1.enum(MONTHLY_INCOME_RANGE),
2880
- employer: z$1.string().nullable(),
2881
- employerCountry: z$1.string().nullable()
2882
- });
2883
- const businessSourceOfWealthOutputSchema = z$1.object({
2884
- financialFundsSources: z$1.array(z$1.enum(FINANCIAL_FUNDS_SOURCE)),
2885
- financialFundsSourceOther: z$1.string().nullable(),
2886
- mainBusinessSubjects: z$1.array(z$1.enum(CZ_TRADE_LICENSE_CODES)),
2887
- companyTurnover: z$1.enum(COMPANY_TURNOVER_RANGE),
2888
- operatingCountries: z$1.array(z$1.enum(OPERATING_COUNTRY)),
2889
- operatingCountriesOther: z$1.array(z$1.enum(COUNTRY_CODES_2)).nullable(),
2890
- businessPartners: z$1.array(businessPartnerOutputSchema).nullable(),
2891
- businessActivitiesNote: z$1.string().nullable()
2892
- });
2893
- const createAmlOutputSchema = z$1.object({
2894
- id: z$1.uuid(),
2895
- partyId: z$1.uuid(),
2896
- internalId: z$1.string().nullable(),
2897
- sourceOfWealth: z$1.union([
1564
+ const createAddressOutputSchema = z.object({
1565
+ id: z.uuid(),
1566
+ partyId: z.uuid(),
1567
+ internalId: z.string().nullable(),
1568
+ addressType: z.enum(ADDRESS_TYPE),
1569
+ street: z.string().nullable(),
1570
+ orientationNumber: z.string().nullable(),
1571
+ descriptiveNumber: z.string().nullable(),
1572
+ municipality: z.string(),
1573
+ municipalityPart: z.string().nullable(),
1574
+ zipCode: z.string(),
1575
+ district: z.string().nullable(),
1576
+ region: z.string().nullable(),
1577
+ countryCode: z.enum(COUNTRY_CODES_2),
1578
+ ruianCode: z.string().nullable(),
1579
+ createdAt: z.iso.datetime().nullable(),
1580
+ updatedAt: z.iso.datetime().nullable()
1581
+ });
1582
+ const businessPartnerOutputSchema = z.object({
1583
+ name: z.string(),
1584
+ country: z.string(),
1585
+ cooperationReason: z.string().nullable()
1586
+ });
1587
+ const foSourceOfWealthOutputSchema = z.object({
1588
+ incomeSources: z.array(z.enum(INCOME_SOURCE)),
1589
+ incomeSourceOther: z.string().nullable(),
1590
+ monthlyIncome: z.enum(MONTHLY_INCOME_RANGE),
1591
+ employer: z.string().nullable(),
1592
+ employerCountry: z.string().nullable()
1593
+ });
1594
+ const businessSourceOfWealthOutputSchema = z.object({
1595
+ financialFundsSources: z.array(z.enum(FINANCIAL_FUNDS_SOURCE)),
1596
+ financialFundsSourceOther: z.string().nullable(),
1597
+ mainBusinessSubjects: z.array(z.enum(CZ_TRADE_LICENSE_CODES)),
1598
+ companyTurnover: z.enum(COMPANY_TURNOVER_RANGE),
1599
+ operatingCountries: z.array(z.enum(OPERATING_COUNTRY)),
1600
+ operatingCountriesOther: z.array(z.enum(COUNTRY_CODES_2)).nullable(),
1601
+ businessPartners: z.array(businessPartnerOutputSchema).nullable(),
1602
+ businessActivitiesNote: z.string().nullable()
1603
+ });
1604
+ const createAmlOutputSchema = z.object({
1605
+ id: z.uuid(),
1606
+ partyId: z.uuid(),
1607
+ internalId: z.string().nullable(),
1608
+ sourceOfWealth: z.union([
2898
1609
  foSourceOfWealthOutputSchema,
2899
1610
  businessSourceOfWealthOutputSchema
2900
1611
  ]),
2901
- yearlyIncome: z$1.enum(YEARLY_INCOME),
2902
- sourceOfIncome: z$1.array(z$1.enum(INCOME_SOURCE)),
2903
- incomeSourceOther: z$1.string().nullable(),
2904
- servicePurposes: z$1.array(z$1.enum(SERVICE_PURPOSE)).nullable(),
2905
- servicePurposesOther: z$1.string().nullable(),
2906
- taxDomicile: z$1.enum(TAX_DOMICILE).nullable(),
2907
- taxDomicileCountry: z$1.enum(COUNTRY_CODES_2).nullable(),
2908
- transactionType: z$1.string().nullable(),
2909
- transactionTypeExpiry: z$1.date().nullable(),
2910
- isDistraint: z$1.boolean(),
2911
- estTxsVolumeMonth: z$1.enum(EST_TXS_VOLUME_MONTH),
2912
- estTxsVolumeYear: z$1.enum(EST_TXS_VOLUME_YEAR),
2913
- estTxsCountMonth: z$1.number().int().nullable(),
2914
- tradingCountries: z$1.array(z$1.enum(TARGET_COUNTRY)),
2915
- tradingCountriesOther: z$1.array(z$1.enum(COUNTRY_CODES_2)).nullable(),
2916
- tradingSide: z$1.enum(TRADING_SIDE),
2917
- acceptedAMLTermsAndConditions: z$1.boolean(),
2918
- signatureMethod: z$1.enum(SIGNATURE_METHOD).nullable(),
2919
- existencePeriod: z$1.enum(EXISTENCE_PERIOD).nullable(),
2920
- reputation: z$1.enum(REPUTATION).nullable(),
2921
- riskBusinessAreas: z$1.array(z$1.enum(RISK_BUSINESS_AREA)).nullable(),
2922
- riskLevel: z$1.enum(AML_SCORE_TYPE),
2923
- kycStatus: z$1.enum(KYC_STATUS).nullable(),
2924
- residencyAnswers: z$1.array(
2925
- z$1.object({
2926
- personName: z$1.string(),
2927
- personRole: z$1.enum(PERSON_ROLE),
2928
- answer: z$1.enum(YES_NO_UNKNOWN),
2929
- country: z$1.enum(COUNTRY_CODES_2).nullable()
1612
+ yearlyIncome: z.enum(YEARLY_INCOME),
1613
+ sourceOfIncome: z.array(z.enum(INCOME_SOURCE)),
1614
+ incomeSourceOther: z.string().nullable(),
1615
+ servicePurposes: z.array(z.enum(SERVICE_PURPOSE)).nullable(),
1616
+ servicePurposesOther: z.string().nullable(),
1617
+ taxDomicile: z.enum(TAX_DOMICILE).nullable(),
1618
+ taxDomicileCountry: z.enum(COUNTRY_CODES_2).nullable(),
1619
+ transactionType: z.string().nullable(),
1620
+ transactionTypeExpiry: z.iso.datetime().nullable(),
1621
+ isDistraint: z.boolean(),
1622
+ estTxsVolumeMonth: z.enum(EST_TXS_VOLUME_MONTH),
1623
+ estTxsVolumeYear: z.enum(EST_TXS_VOLUME_YEAR),
1624
+ estTxsCountMonth: z.number().int().nullable(),
1625
+ tradingCountries: z.array(z.enum(TARGET_COUNTRY)),
1626
+ tradingCountriesOther: z.array(z.enum(COUNTRY_CODES_2)).nullable(),
1627
+ tradingSide: z.enum(TRADING_SIDE),
1628
+ acceptedAMLTermsAndConditions: z.boolean(),
1629
+ signatureMethod: z.enum(SIGNATURE_METHOD).nullable(),
1630
+ existencePeriod: z.enum(EXISTENCE_PERIOD).nullable(),
1631
+ reputation: z.enum(REPUTATION).nullable(),
1632
+ riskBusinessAreas: z.array(z.enum(RISK_BUSINESS_AREA)).nullable(),
1633
+ riskLevel: z.enum(AML_SCORE_TYPE),
1634
+ kycStatus: z.enum(KYC_STATUS).nullable(),
1635
+ residencyAnswers: z.array(
1636
+ z.object({
1637
+ personName: z.string(),
1638
+ personRole: z.enum(PERSON_ROLE),
1639
+ answer: z.enum(YES_NO_UNKNOWN),
1640
+ country: z.enum(COUNTRY_CODES_2).nullable()
2930
1641
  })
2931
1642
  ).nullable(),
2932
- createdAt: z$1.date().nullable(),
2933
- updatedAt: z$1.date().nullable()
2934
- });
2935
- const ownerOutputSchema = z$1.object({
2936
- id: z$1.uuid().optional(),
2937
- name: z$1.string(),
2938
- surname: z$1.string(),
2939
- titleBefore: z$1.string().nullable(),
2940
- titleAfter: z$1.string().nullable(),
2941
- email: z$1.string(),
2942
- birthDate: z$1.string(),
2943
- birthPlace: z$1.string().nullable(),
2944
- personalId: z$1.string(),
2945
- gender: z$1.enum(GENDER),
2946
- citizenship: z$1.enum(COUNTRY_CODES_2),
2947
- isPep: z$1.boolean(),
2948
- sharePercentage: z$1.number().nullable(),
2949
- shareEstablishedAt: z$1.string().nullable(),
1643
+ createdAt: z.iso.datetime().nullable(),
1644
+ updatedAt: z.iso.datetime().nullable()
1645
+ });
1646
+ const ownerOutputSchema = z.object({
1647
+ id: z.uuid().optional(),
1648
+ name: z.string(),
1649
+ surname: z.string(),
1650
+ titleBefore: z.string().nullable(),
1651
+ titleAfter: z.string().nullable(),
1652
+ email: z.string(),
1653
+ birthDate: z.string(),
1654
+ birthPlace: z.string().nullable(),
1655
+ personalId: z.string(),
1656
+ gender: z.enum(GENDER),
1657
+ citizenship: z.enum(COUNTRY_CODES_2),
1658
+ isPep: z.boolean(),
1659
+ sharePercentage: z.number().nullable(),
1660
+ shareEstablishedAt: z.string().nullable(),
2950
1661
  address: createAddressOutputSchema.nullable()
2951
1662
  });
2952
- const legalRepresentativeOutputSchema = z$1.object({
2953
- id: z$1.uuid().optional(),
2954
- name: z$1.string(),
2955
- surname: z$1.string(),
2956
- titleBefore: z$1.string().nullable(),
2957
- titleAfter: z$1.string().nullable(),
2958
- email: z$1.string(),
2959
- birthDate: z$1.string(),
2960
- birthPlace: z$1.string().nullable(),
2961
- personalId: z$1.string(),
2962
- gender: z$1.enum(GENDER),
2963
- citizenship: z$1.enum(COUNTRY_CODES_2),
2964
- isPep: z$1.boolean(),
2965
- phone: z$1.string().nullable(),
2966
- pin: z$1.string().nullable(),
2967
- dateOfEstablishment: z$1.string().nullable(),
1663
+ const legalRepresentativeOutputSchema = z.object({
1664
+ id: z.uuid().optional(),
1665
+ name: z.string(),
1666
+ surname: z.string(),
1667
+ titleBefore: z.string().nullable(),
1668
+ titleAfter: z.string().nullable(),
1669
+ email: z.string(),
1670
+ birthDate: z.string(),
1671
+ birthPlace: z.string().nullable(),
1672
+ personalId: z.string(),
1673
+ gender: z.enum(GENDER),
1674
+ citizenship: z.enum(COUNTRY_CODES_2),
1675
+ isPep: z.boolean(),
1676
+ phone: z.string().nullable(),
1677
+ pin: z.string().nullable(),
1678
+ dateOfEstablishment: z.string().nullable(),
2968
1679
  address: createAddressOutputSchema.nullable()
2969
1680
  });
2970
- const productsOutputSchema = z$1.object({
2971
- txs: z$1.object({
2972
- fee: z$1.number(),
2973
- margin: z$1.number(),
2974
- reportingEmail: z$1.string().nullable(),
2975
- clientType: z$1.enum(TXS_CLIENT_TYPE).nullable()
1681
+ const productsOutputSchema = z.object({
1682
+ txs: z.object({
1683
+ fee: z.number(),
1684
+ margin: z.number(),
1685
+ reportingEmail: z.string().nullable(),
1686
+ clientType: z.enum(TXS_CLIENT_TYPE).nullable()
2976
1687
  }).nullable(),
2977
- cbs: z$1.object({}).nullable()
1688
+ cbs: z.object({}).nullable()
2978
1689
  });
2979
1690
  const recipientOutputSchema = bankAccountOutputSchema.omit({
2980
1691
  statementUri: true
2981
1692
  });
2982
- const partyOutputSchema = z$1.object({
1693
+ const partyOutputSchema = z.object({
2983
1694
  party: partyBaseOutputSchema.nullable(),
2984
1695
  personalData: individualOutputSchema.nullable(),
2985
1696
  organizationData: createOrganizationOutputSchema.nullable(),
2986
- bankAccounts: z$1.array(bankAccountOutputSchema).nullable(),
2987
- disponents: z$1.array(disponentOutputSchema).nullable(),
2988
- addresses: z$1.array(createAddressOutputSchema).nullable(),
1697
+ bankAccounts: z.array(bankAccountOutputSchema).nullable(),
1698
+ disponents: z.array(disponentOutputSchema).nullable(),
1699
+ addresses: z.array(createAddressOutputSchema).nullable(),
2989
1700
  aml: createAmlOutputSchema.nullable(),
2990
- recipients: z$1.array(recipientOutputSchema).nullable(),
1701
+ recipients: z.array(recipientOutputSchema).nullable(),
2991
1702
  products: productsOutputSchema.nullable(),
2992
- traderIds: z$1.array(z$1.uuid()).nullable(),
2993
- owners: z$1.array(ownerOutputSchema).nullable(),
2994
- legalRepresentatives: z$1.array(legalRepresentativeOutputSchema).nullable()
1703
+ traderIds: z.array(z.uuid()).nullable(),
1704
+ owners: z.array(ownerOutputSchema).nullable(),
1705
+ legalRepresentatives: z.array(legalRepresentativeOutputSchema).nullable()
2995
1706
  });
2996
- const responseBodySchema$2 = z$1.object({
2997
- message: z$1.string(),
1707
+ const responseBodySchema$2 = z.object({
1708
+ message: z.string(),
2998
1709
  party: partyOutputSchema
2999
1710
  });
3000
1711
  const getPartyByPartyIdRoute = createRoute({
@@ -3004,7 +1715,7 @@ const getPartyByPartyIdRoute = createRoute({
3004
1715
  tags: ["Parties"],
3005
1716
  description: "Retrieves a single party aggregate by its ID, including all related data \u2014 personal/organization info, bank accounts, addresses, disponents, AML, recipients, and products.",
3006
1717
  request: {
3007
- params: z$1.object({ partyId: z$1.uuid() })
1718
+ params: z.object({ partyId: z.uuid() })
3008
1719
  },
3009
1720
  responses: {
3010
1721
  200: {
@@ -3036,7 +1747,16 @@ new OpenAPIHono().openapi(
3036
1747
  }
3037
1748
  );
3038
1749
 
3039
- const partiesOutputDataSchema = z$1.array(partyOutputSchema);
1750
+ const paginationAndSearchSchema = z.object({
1751
+ page: z.coerce.number().positive().default(1),
1752
+ limit: z.coerce.number().positive().default(20),
1753
+ column: z.string(),
1754
+ direction: z.enum(["asc", "desc"]),
1755
+ search: z.string().optional(),
1756
+ ids: z.string().array().optional(),
1757
+ includeDeleted: z.string().transform((v) => v === "true").optional()
1758
+ });
1759
+ const partiesOutputDataSchema = z.array(partyOutputSchema);
3040
1760
  const getPartiesRoute = createRoute({
3041
1761
  method: "get",
3042
1762
  path: "/",
@@ -3049,18 +1769,18 @@ const getPartiesRoute = createRoute({
3049
1769
  description: "Internal Server Error",
3050
1770
  content: {
3051
1771
  "application/json": {
3052
- schema: routeError
1772
+ schema: z.object({ message: z.string() })
3053
1773
  }
3054
1774
  }
3055
1775
  },
3056
1776
  200: {
3057
1777
  content: {
3058
1778
  "application/json": {
3059
- schema: z$1.object({
3060
- message: z$1.string(),
3061
- data: z$1.object({
1779
+ schema: z.object({
1780
+ message: z.string(),
1781
+ data: z.object({
3062
1782
  parties: partiesOutputDataSchema,
3063
- totalCount: z$1.number()
1783
+ totalCount: z.number()
3064
1784
  })
3065
1785
  })
3066
1786
  }
@@ -3072,50 +1792,30 @@ const getPartiesRoute = createRoute({
3072
1792
  new OpenAPIHono().openapi(
3073
1793
  getPartiesRoute,
3074
1794
  async (context) => {
3075
- const query = context.req.query();
3076
- const validatedQuery = {
3077
- page: query.page ? Number(query.page) : 1,
3078
- limit: query.limit ? Number(query.limit) : 10,
3079
- column: query.column || "createdAt",
3080
- direction: query.direction || "desc",
3081
- search: query.search,
3082
- ids: query.ids ? Array.isArray(query.ids) ? query.ids : [query.ids] : void 0
3083
- };
1795
+ const validatedQuery = context.req.valid("query");
3084
1796
  const {
3085
1797
  data: parties,
3086
1798
  error,
3087
- message,
3088
- status
1799
+ message
3089
1800
  } = await context.env.MASTER_DATA_MANAGEMENT_SERVICE.getParties(
3090
1801
  validatedQuery
3091
1802
  );
3092
1803
  if (error || !parties) {
3093
- return context.json(
3094
- {
3095
- message: "Failed to get parties",
3096
- data: null,
3097
- errorDetail: {
3098
- message,
3099
- code: status
3100
- },
3101
- error: true
3102
- },
3103
- 500
3104
- );
1804
+ return context.json({ message: message || "Failed to get parties" }, 500);
3105
1805
  }
3106
1806
  return context.json({ message, data: parties }, 200);
3107
1807
  }
3108
1808
  );
3109
1809
 
3110
- const XIdempotencyKeyHeaderSchema = z$1.string().openapi({
1810
+ const XIdempotencyKeyHeaderSchema = z.string().openapi({
3111
1811
  description: "Unique identifier header to ensure the request is processed only once.",
3112
1812
  example: "4ac15c22-2bd3-426f-b915-bfd5febdb7df"
3113
1813
  });
3114
- const XSignatureHeaderSchema = z$1.string().openapi({
1814
+ const XSignatureHeaderSchema = z.string().openapi({
3115
1815
  description: "Payload signature header to verify request body integrity.",
3116
1816
  example: "FIXAxHO6QqH3M7t4MatM8U6l/nIqWj7jIEW2U6/771MGUorSywy+GmKIG3B1mxT1jR7qPtBHQ5YSO8O53iCvOh6kIhbGXtVe/3C61dsEykLbmntV3nF4DY8/HyfF8a6c2Asc5bvgHrhosGi3s/ouoNowMpsckyq66We8H5gRbXlqJm4Bl1zWWQah4aQLX548L8DLx5+EIgArNMVVG8ryCES99aovJBKrQQMpQLwss1sSFuUZ1kdBCodtvxgTOXOugnZ1UNCmUNFXryQ6bn7wY7Punml/rwR/zTQ9j4SX07iFeQC5rgm9/zi29DBluegu+b8/G8oXrf6L4hugbMEKJfLRfKjNHCrjCooKtInoYxwNEfJyJ9mhqdBoeIBca9zgPpewdbwFLXVV82TYR+xZiywDcHKQ62IzQp07NOMCl4xArSJ3vIWUftSYpLIwomyjQEbY27oGiubUF4krEKgHnMYalCn0ruYOwFik2Pa6FEfIZo0TSXDC24UHQb5mJNPYpv2hny7U5CZPmBvjaRGMVnE+WgRUT19cwqlSL3pWAfeSn1Wro7lYBp/PmlRPgYIxl9GJwNlQ0G+NzP9cMSJbmI5fwErDNgJAaPaMwZbJ3y8ikmbBkkXNPKvQrWVGCJ4nP+/f8yYzMZq272EFx984pSoo2yAeBJnrxbW+AlZxyIo="
3117
1817
  });
3118
- const XSignatureKeyHeaderSchema = z$1.string().openapi({
1818
+ const XSignatureKeyHeaderSchema = z.string().openapi({
3119
1819
  description: "Signature key identifier header to specify which key was used for payload signing.",
3120
1820
  example: "ixtal"
3121
1821
  });
@@ -3124,30 +1824,30 @@ const ALLOWED_ID_DOCUMENTS_FILTERS = {
3124
1824
  ISSUER: "filterIdDocumentIssuer"
3125
1825
  };
3126
1826
 
3127
- const idDocumentsListOutputSchema = z$1.object({
3128
- totalCount: z$1.number(),
3129
- idDocuments: z$1.array(idDocumentOutputSchema)
1827
+ const idDocumentsListOutputSchema = z.object({
1828
+ totalCount: z.number(),
1829
+ idDocuments: z.array(idDocumentOutputSchema)
3130
1830
  });
3131
- const paramsSchema$1 = z$1.object({
3132
- partyId: z$1.uuid()
1831
+ const paramsSchema$1 = z.object({
1832
+ partyId: z.uuid()
3133
1833
  });
3134
- const arrayQuery = (schema) => z$1.preprocess((val) => {
1834
+ const arrayQuery = (schema) => z.preprocess((val) => {
3135
1835
  if (typeof val === "string") {
3136
1836
  return val.includes(",") ? val.split(",") : [val];
3137
1837
  }
3138
1838
  return val;
3139
1839
  }, schema.array()).optional();
3140
- const querySchema = z$1.object({
3141
- page: z$1.coerce.number().positive().default(1),
3142
- limit: z$1.coerce.number().positive().default(20),
3143
- sortColumn: z$1.string().default("updatedAt"),
3144
- sortDirection: z$1.enum(["asc", "desc"]).default("desc"),
3145
- [ALLOWED_ID_DOCUMENTS_FILTERS.PARTY_ID]: arrayQuery(z$1.uuid()),
3146
- [ALLOWED_ID_DOCUMENTS_FILTERS.ISSUER]: arrayQuery(z$1.string()),
3147
- search: z$1.string().optional()
3148
- });
3149
- const responseBodySchema$1 = z$1.object({
3150
- message: z$1.string(),
1840
+ const querySchema = z.object({
1841
+ page: z.coerce.number().positive().default(1),
1842
+ limit: z.coerce.number().positive().default(20),
1843
+ sortColumn: z.string().default("updatedAt"),
1844
+ sortDirection: z.enum(["asc", "desc"]).default("desc"),
1845
+ [ALLOWED_ID_DOCUMENTS_FILTERS.PARTY_ID]: arrayQuery(z.uuid()),
1846
+ [ALLOWED_ID_DOCUMENTS_FILTERS.ISSUER]: arrayQuery(z.string()),
1847
+ search: z.string().optional()
1848
+ });
1849
+ const responseBodySchema$1 = z.object({
1850
+ message: z.string(),
3151
1851
  idDocumentsList: idDocumentsListOutputSchema
3152
1852
  });
3153
1853
  const getIdDocumentsListRoute = createRoute({
@@ -3173,7 +1873,7 @@ const getIdDocumentsListRoute = createRoute({
3173
1873
  description: "ID documents not found",
3174
1874
  content: {
3175
1875
  "application/json": {
3176
- schema: z$1.object({ message: z$1.string() })
1876
+ schema: z.object({ message: z.string() })
3177
1877
  }
3178
1878
  }
3179
1879
  },
@@ -3181,7 +1881,7 @@ const getIdDocumentsListRoute = createRoute({
3181
1881
  description: "Internal server error",
3182
1882
  content: {
3183
1883
  "application/json": {
3184
- schema: z$1.object({ message: z$1.string() })
1884
+ schema: z.object({ message: z.string() })
3185
1885
  }
3186
1886
  }
3187
1887
  }
@@ -3217,24 +1917,24 @@ new OpenAPIHono().openapi(
3217
1917
  }
3218
1918
  );
3219
1919
 
3220
- const paramsSchema = z$1.object({
3221
- id: z$1.uuid()
3222
- });
3223
- const idDocumentUpdateInputSchema = z$1.object({
3224
- partyId: z$1.uuid().optional(),
3225
- idDocType: z$1.enum(ID_DOC_TYPE).optional(),
3226
- idDocNumber: z$1.string().optional(),
3227
- idDocHolderName: z$1.string().optional(),
3228
- issueDate: z$1.coerce.date().optional(),
3229
- expirationDate: z$1.coerce.date().optional(),
3230
- issuer: z$1.string().optional(),
3231
- countryOfIssue: z$1.enum(COUNTRY_CODES_2).optional(),
3232
- frontImageUri: z$1.string().optional(),
3233
- backImageUri: z$1.string().optional(),
3234
- idDocStatus: z$1.enum(ID_DOC_STATUS).optional()
3235
- });
3236
- const responseBodySchema = z$1.object({
3237
- message: z$1.string(),
1920
+ const paramsSchema = z.object({
1921
+ id: z.uuid()
1922
+ });
1923
+ const idDocumentUpdateInputSchema = z.object({
1924
+ partyId: z.uuid().optional(),
1925
+ idDocType: z.enum(ID_DOC_TYPE).optional(),
1926
+ idDocNumber: z.string().optional(),
1927
+ idDocHolderName: z.string().optional(),
1928
+ issueDate: z.coerce.date().optional(),
1929
+ expirationDate: z.coerce.date().optional(),
1930
+ issuer: z.string().optional(),
1931
+ countryOfIssue: z.enum(COUNTRY_CODES_2).optional(),
1932
+ frontImageUri: z.string().optional(),
1933
+ backImageUri: z.string().optional(),
1934
+ idDocStatus: z.enum(ID_DOC_STATUS).optional()
1935
+ });
1936
+ const responseBodySchema = z.object({
1937
+ message: z.string(),
3238
1938
  idDocument: idDocumentOutputSchema
3239
1939
  });
3240
1940
  const updateIdDocumentRoute = createRoute({
@@ -3246,7 +1946,7 @@ const updateIdDocumentRoute = createRoute({
3246
1946
  middleware: [jwt, signature(), idempotency()],
3247
1947
  security: [{ JwtAuth: [] }],
3248
1948
  request: {
3249
- headers: z$1.object({
1949
+ headers: z.object({
3250
1950
  "X-Idempotency-Key": XIdempotencyKeyHeaderSchema,
3251
1951
  "X-Signature": XSignatureHeaderSchema,
3252
1952
  "X-Signature-Key": XSignatureKeyHeaderSchema
@@ -3274,7 +1974,7 @@ const updateIdDocumentRoute = createRoute({
3274
1974
  description: "ID document not found",
3275
1975
  content: {
3276
1976
  "application/json": {
3277
- schema: z$1.object({ message: z$1.string() })
1977
+ schema: z.object({ message: z.string() })
3278
1978
  }
3279
1979
  }
3280
1980
  },
@@ -3282,7 +1982,7 @@ const updateIdDocumentRoute = createRoute({
3282
1982
  description: "Internal server error",
3283
1983
  content: {
3284
1984
  "application/json": {
3285
- schema: z$1.object({ message: z$1.string() })
1985
+ schema: z.object({ message: z.string() })
3286
1986
  }
3287
1987
  }
3288
1988
  }
@@ -3318,8 +2018,8 @@ new OpenAPIHono().openapi(
3318
2018
  }
3319
2019
  );
3320
2020
 
3321
- const messageResponseSchema = z$1.object({
3322
- message: z$1.string()
2021
+ const messageResponseSchema = z.object({
2022
+ message: z.string()
3323
2023
  });
3324
2024
 
3325
- 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$1 as 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 };
2025
+ 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, 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, PARTY_TYPE$1 as PARTY_TYPE, PRODUCT_TYPE, REPUTATION$1 as REPUTATION, RISK_BUSINESS_AREA$1 as RISK_BUSINESS_AREA, SERVICE_PURPOSE$1 as SERVICE_PURPOSE, SERVICE_PURPOSE_COMPANY, SERVICE_PURPOSE_FO, SIGNATURE_METHOD$1 as SIGNATURE_METHOD, TARGET_COUNTRY$1 as TARGET_COUNTRY, TAX_DOMICILE$1 as TAX_DOMICILE, 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$1 as 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 };