@devizovaburza/mdm-sdk 1.1.3 → 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,1485 +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
- });
1396
-
1397
- z.object({
1398
- id: z.uuid()
1399
- });
1400
-
1401
- z.object({
1402
- traderId: z.uuid(),
1403
- clientId: z.uuid()
1404
- });
1405
- z.object({
1406
- id: z.uuid()
1407
- });
1408
-
1409
- z.object({
1410
- recipient: recipientInsertSchema,
1411
- partyId: z.string().uuid()
1412
- });
1413
-
1414
- z.object({
1415
- recipient: recipientUpdateSchema
1416
- });
1417
-
1418
- z.object({
1419
- id: z.uuid()
1420
- });
1421
-
1422
- const ALLOWED_RECIPIENTS_FILTERS = {
1423
- NAME: "filterRecipientName",
1424
- BANK_CODE: "filterRecipientBankCode",
1425
- CURRENCY: "filterRecipientCurrency"
1426
- };
1427
- z.object({
1428
- page: z.number().positive(),
1429
- limit: z.number().positive(),
1430
- sort: z.object({
1431
- column: z.string(),
1432
- direction: z.enum(["asc", "desc"])
1433
- }),
1434
- [ALLOWED_RECIPIENTS_FILTERS.NAME]: z.union([z.string(), z.string().array()]).optional(),
1435
- [ALLOWED_RECIPIENTS_FILTERS.BANK_CODE]: z.union([z.enum(BANK_CODES), z.enum(BANK_CODES).array()]).optional(),
1436
- [ALLOWED_RECIPIENTS_FILTERS.CURRENCY]: z.union([z.enum(CURRENCY_CODES), z.enum(CURRENCY_CODES).array()]).optional(),
1437
- search: z.string().optional()
1438
- });
1439
-
1440
- z.object({
1441
- id: z.uuid()
1442
- });
1443
-
1444
- z.object({
1445
- bankAccount: bankAccountInsertSchema,
1446
- partyId: z.string().uuid()
1447
- });
1448
-
1449
- z.object({
1450
- bankAccount: bankAccountUpsertSchema
1451
- });
1452
-
1453
- z.object({
1454
- id: z.uuid()
1455
- });
1456
-
1457
- z.object({
1458
- id: z.uuid()
1459
- });
1460
-
1461
- z.object({
1462
- address: addressInsertSchema,
1463
- partyId: z.uuid()
1464
- });
1465
-
1466
- z.object({
1467
- address: addressUpdateSchema
1468
- });
1469
-
1470
- z.object({
1471
- id: z.uuid()
1472
- });
1473
-
1474
- z.object({
1475
- id: z.uuid()
1476
- });
1477
-
1478
- z.object({
1479
- contact: contactInsertSchema,
1480
- partyId: z.string().uuid()
1481
- });
1482
-
1483
- z.object({
1484
- contact: contactUpdateSchema
1485
- });
1486
-
1487
- z.object({
1488
- idDocument: idDocumentInsertSchema,
1489
- partyId: z.string()
1490
- });
1491
-
1492
- z.object({
1493
- idDocument: idDocumentUpdateSchema
1494
- });
1495
-
1496
- z.object({
1497
- id: z.uuid()
1498
- });
1499
-
1500
- const ALLOWED_ID_DOCUMENTS_FILTERS$1 = {
1501
- PARTY_ID: "filterIdDocumentPartyId",
1502
- ISSUER: "filterIdDocumentIssuer"
1503
- };
1504
- z.object({
1505
- pagination: z.object({
1506
- page: z.number().positive(),
1507
- limit: z.number().positive(),
1508
- sort: z.object({
1509
- column: z.string(),
1510
- direction: z.enum(["asc", "desc"])
1511
- }),
1512
- [ALLOWED_ID_DOCUMENTS_FILTERS$1.PARTY_ID]: z.union([z.uuid(), z.uuid().array()]).optional(),
1513
- [ALLOWED_ID_DOCUMENTS_FILTERS$1.ISSUER]: z.union([z.string(), z.string().array()]).optional(),
1514
- search: z.string().optional()
1515
- })
1516
- });
1517
-
1518
- z.object({
1519
- id: z.uuid()
1520
- });
1521
-
1522
- z.object({
1523
- individual: individualInsertSchema$1
1524
- });
1525
-
1526
- z.object({
1527
- individual: individualInsertSchema$1
1528
- });
1529
-
1530
- z.object({
1531
- id: z.uuid()
1532
- });
1533
-
1534
- z.object({
1535
- id: z.uuid()
1536
- });
1537
-
1538
- z.object({
1539
- id: z.uuid()
1540
- });
1541
-
1542
- z.object({
1543
- id: z.uuid()
1544
- });
1545
-
1546
- z.object({
1547
- id: z.uuid()
1548
- });
1549
-
1550
- z.object({
1551
- id: z.uuid()
1552
- });
1553
-
1554
- z.object({
1555
- id: z.uuid()
1556
- });
1557
- z.object({
1558
- disponents: disponentsSelectSchema
1559
- });
1560
-
1561
- z.object({
1562
- party: partyInsertSchema
1563
- });
1564
-
1565
- z.object({
1566
- party: partyInsertSchema
1567
- });
1568
-
1569
- z.object({
1570
- id: z.uuid()
1571
- });
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
+ ];
1572
165
 
1573
- z.object({
1574
- id: z.uuid()
1575
- });
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
+ ];
1576
294
 
1577
295
  z.object({
1578
- fromPartyId: z.uuid(),
1579
- toPartyId: z.uuid(),
1580
- relationshipType: z.enum(PARTY_RELATIONSHIP_TYPE),
1581
- fromDate: z.date().optional(),
1582
- sharePercentage: z.number().max(100).optional()
1583
- });
1584
-
1585
- const routeError = z$1.object({
1586
- message: z$1.string(),
1587
- data: z$1.null(),
1588
- errorDetail: z$1.object({
1589
- message: z$1.string(),
1590
- code: z$1.number()
296
+ message: z.string(),
297
+ data: z.null(),
298
+ errorDetail: z.object({
299
+ message: z.string(),
300
+ code: z.number()
1591
301
  }).optional(),
1592
- error: z$1.boolean()
302
+ error: z.boolean()
1593
303
  });
1594
304
  const errorResponse = (entityName, action = "creation") => ({
1595
305
  404: {
1596
306
  content: {
1597
307
  "application/json": {
1598
- schema: z$1.object({
1599
- message: z$1.string(),
1600
- stackTrace: z$1.string().optional()
308
+ schema: z.object({
309
+ message: z.string(),
310
+ stackTrace: z.string().optional()
1601
311
  })
1602
312
  }
1603
313
  },
@@ -1606,9 +316,9 @@ const errorResponse = (entityName, action = "creation") => ({
1606
316
  500: {
1607
317
  content: {
1608
318
  "application/json": {
1609
- schema: z$1.object({
1610
- message: z$1.string(),
1611
- stackTrace: z$1.string().optional()
319
+ schema: z.object({
320
+ message: z.string(),
321
+ stackTrace: z.string().optional()
1612
322
  })
1613
323
  }
1614
324
  },
@@ -1616,265 +326,265 @@ const errorResponse = (entityName, action = "creation") => ({
1616
326
  }
1617
327
  });
1618
328
 
1619
- const partySchema$1 = z$1.object({
1620
- partyType: z$1.enum(PARTY_TYPE),
1621
- language: z$1.enum(LANGUAGE_CODES),
1622
- id: z$1.uuid(),
1623
- internalId: z$1.string().optional(),
1624
- note: z$1.string().optional(),
1625
- countryCode: z$1.enum(COUNTRY_CODES_2).optional()
1626
- });
1627
- const idDocumentInputSchema$1 = z$1.object({
1628
- idDocType: z$1.enum(ID_DOC_TYPE),
1629
- idDocNumber: z$1.string(),
1630
- issueDate: z$1.coerce.date().optional(),
1631
- expirationDate: z$1.coerce.date().optional(),
1632
- issuer: z$1.string().optional(),
1633
- frontImageUri: z$1.string().optional(),
1634
- backImageUri: z$1.string().optional()
1635
- });
1636
- const individualInsertSchema = z$1.object({
1637
- internalId: z$1.string().optional(),
1638
- name: z$1.string().min(1, "Jm\xE9no je povinn\xE9"),
1639
- surname: z$1.string().min(1, "P\u0159\xEDjmen\xED je povinn\xE9"),
1640
- email: z$1.email("E-mail je povinn\xFD"),
1641
- phone: z$1.string().optional(),
1642
- birthDate: z$1.string().min(1, "Datum narozen\xED je povinn\xE9"),
1643
- birthPlace: z$1.string().optional(),
1644
- countryOfBirth: z$1.enum(COUNTRY_CODES_2).optional(),
1645
- personalId: z$1.string().min(1, "\u010C\xEDslo identifika\u010Dn\xEDho dokumentu je povinn\xE9"),
1646
- gender: z$1.enum(GENDER, "Pohlav\xED je povinn\xE9"),
1647
- citizenship: z$1.enum(COUNTRY_CODES_2, "St\xE1t je povinn\xFD"),
1648
- citizenshipOther: z$1.enum(COUNTRY_CODES_2).optional(),
1649
- employer: z$1.string().optional(),
1650
- employerCountry: z$1.enum(COUNTRY_CODES_2).optional(),
1651
- registeredNumber: z$1.string().optional(),
1652
- isPep: z$1.boolean({ error: "Politicky exponovan\xE1 osoba je povinn\xE1" }),
1653
- titleBefore: z$1.string().optional(),
1654
- titleAfter: z$1.string().optional(),
1655
- birthSurname: z$1.string().optional(),
1656
- vocativeTitle: z$1.string().optional(),
1657
- deathDate: z$1.coerce.date().optional(),
1658
- deathNotification: z$1.coerce.date().optional(),
1659
- pin: z$1.string().optional(),
1660
- stayAbroad: z$1.boolean().optional(),
1661
- stayAbroadCountries: z$1.enum(COUNTRY_CODES_2).optional(),
1662
- identityDocuments: z$1.array(idDocumentInputSchema$1).optional()
1663
- });
1664
- const createOrganizationInputSchema = z$1.object({
1665
- internalId: z$1.string().optional(),
1666
- businessName: z$1.string(),
1667
- email: z$1.string().optional(),
1668
- phone: z$1.string().optional(),
1669
- registeredNumber: z$1.string(),
1670
- registeredIn: z$1.enum(COUNTRY_CODES_2),
1671
- operatesIn: z$1.enum(COUNTRY_CODES_2),
1672
- presentIn: z$1.enum(COUNTRY_CODES_2),
1673
- monthlyVolumeIn: z$1.number(),
1674
- monthlyVolumeOut: z$1.number(),
1675
- ownedBy: z$1.string(),
1676
- companyObjects: z$1.array(z$1.enum(CZ_NACE_CODES)).min(1),
1677
- annualTurnover: z$1.number(),
1678
- numberOfEmployees: z$1.number(),
1679
- prosecuted: z$1.string().optional(),
1680
- location: z$1.string().optional(),
1681
- fileNumber: z$1.string().optional(),
1682
- websiteUrl: z$1.string().optional(),
1683
- vatPayer: z$1.boolean(),
1684
- companyObjectsDescription: z$1.string(),
1685
- turnover3years: z$1.number(),
1686
- operationCountries: z$1.string(),
1687
- riskyBusinessType: z$1.string().optional(),
1688
- vatId: z$1.string().optional(),
1689
- court: z$1.enum(COURT).optional(),
1690
- registerUri: z$1.string().optional()
1691
- });
1692
- 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({
1693
403
  ...bankAccountMetadataSchema.shape,
1694
- bankCode: z$1.enum(BANK_CODES, "K\xF3d banky je povinn\xFD").optional(),
1695
- 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(),
1696
- 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(),
1697
- partyId: z$1.uuid(),
1698
- internalId: z$1.string().optional(),
1699
- holderName: z$1.string(),
1700
- number: z$1.string().min(1, "\u010C\xEDslo \xFA\u010Dtu je povinn\xE9").optional(),
1701
- 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"),
1702
412
  countryCode: bankAccountMetadataSchema.shape.countryCode.nonoptional(),
1703
413
  id: bankAccountMetadataSchema.shape.id.nonoptional(),
1704
- statementUri: z$1.string().optional()
414
+ statementUri: z.string().optional()
1705
415
  });
1706
416
  const bankAccountInputSchema = updateBankAccountSchema.required({
1707
417
  holderName: true,
1708
418
  currency: true,
1709
419
  countryCode: true
1710
420
  }).omit({ id: true, partyId: true });
1711
- const disponentSchema = z$1.discriminatedUnion("partyType", [
1712
- z$1.object({
1713
- partyType: z$1.literal("INDIVIDUAL"),
421
+ const disponentSchema = z.discriminatedUnion("partyType", [
422
+ z.object({
423
+ partyType: z.literal("INDIVIDUAL"),
1714
424
  data: individualInsertSchema
1715
425
  }),
1716
- z$1.object({
1717
- partyType: z$1.literal("ORGANIZATION"),
426
+ z.object({
427
+ partyType: z.literal("ORGANIZATION"),
1718
428
  data: createOrganizationInputSchema
1719
429
  })
1720
430
  ]);
1721
431
  const zipCodeRegex = /^\d{3}\s?\d{2}$/;
1722
- const createAddressInputSchema = z$1.object({
1723
- addressType: z$1.enum(ADDRESS_TYPE),
1724
- internalId: z$1.string().optional(),
1725
- street: z$1.string().min(1, "Adresa je povinn\xE1"),
1726
- orientationNumber: z$1.string().max(20, "\u010C\xEDslo orienta\u010Dn\xED je mimo povolen\xFD rozsah").optional(),
1727
- descriptiveNumber: z$1.string().max(20, "\u010C\xEDslo popisn\xE9 je mimo povolen\xFD rozsah").optional(),
1728
- municipality: z$1.string().min(1, "M\u011Bsto je povinn\xE9").max(255),
1729
- municipalityPart: z$1.string().optional(),
1730
- zipCode: z$1.string().min(1, "PS\u010C je povinn\xE9").max(20).regex(zipCodeRegex, "PS\u010C je v nespr\xE1vn\xE9m form\xE1tu"),
1731
- district: z$1.string().max(255),
1732
- region: z$1.string().max(255),
1733
- countryCode: z$1.enum(COUNTRY_CODES_2, "St\xE1t je povinn\xFD"),
1734
- ruianCode: z$1.string().optional()
1735
- });
1736
- const businessPartnerInputSchema$1 = z$1.object({
1737
- name: z$1.string().min(1, "N\xE1zev partnera je povinn\xFD"),
1738
- country: z$1.enum(COUNTRY_CODES_2, "St\xE1t partnera je povinn\xFD"),
1739
- cooperationReason: z$1.string().nullable()
1740
- });
1741
- const foSourceOfWealthInputSchema$1 = z$1.object({
1742
- incomeSources: z$1.array(z$1.enum(INCOME_SOURCE)).min(1, "Hlavn\xED zdroj p\u0159\xEDjm\u016F je povinn\xFD"),
1743
- incomeSourceOther: z$1.string().nullable(),
1744
- monthlyIncome: z$1.enum(MONTHLY_INCOME_RANGE, "M\u011Bs\xED\u010Dn\xED p\u0159\xEDjem je povinn\xFD"),
1745
- employer: z$1.string().min(1, "N\xE1zev zam\u011Bstnavatele je povinn\xFD").nullable(),
1746
- employerCountry: z$1.enum(COUNTRY_CODES_2, "St\xE1t zam\u011Bstnavatele je povinn\xFD").nullable()
1747
- });
1748
- const businessSourceOfWealthInputSchema$1 = z$1.object({
1749
- financialFundsSources: z$1.array(z$1.enum(FINANCIAL_FUNDS_SOURCE)).min(1, "Zdroj finan\u010Dn\xEDch prost\u0159edk\u016F je povinn\xFD"),
1750
- financialFundsSourceOther: z$1.string().nullable(),
1751
- mainBusinessSubjects: z$1.array(z$1.enum(CZ_TRADE_LICENSE_CODES)).min(1, "Hlavn\xED p\u0159edm\u011Bt podnik\xE1n\xED je povinn\xFD"),
1752
- 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(
1753
463
  COMPANY_TURNOVER_RANGE,
1754
464
  "Obrat za posledn\xED 3 roky je povinn\xFD"
1755
465
  ),
1756
- operatingCountries: z$1.array(z$1.enum(OPERATING_COUNTRY)).min(1, "Zem\u011B p\u016Fsoben\xED je povinn\xE1"),
1757
- operatingCountriesOther: z$1.array(z$1.enum(COUNTRY_CODES_2)).nullable(),
1758
- businessPartners: z$1.array(businessPartnerInputSchema$1).min(1, "Alespo\u0148 jeden partner je povinn\xFD").nullable(),
1759
- businessActivitiesNote: z$1.string().min(1, "Detailn\xED popis v\u0161ech podnikatelsk\xFDch \u010Dinnost\xED je povinn\xFD").nullable()
1760
- });
1761
- const createAmlInputSchema = z$1.object({
1762
- internalId: z$1.string().optional(),
1763
- 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([
1764
474
  foSourceOfWealthInputSchema$1,
1765
475
  businessSourceOfWealthInputSchema$1
1766
476
  ]),
1767
- yearlyIncome: z$1.enum(YEARLY_INCOME),
1768
- sourceOfIncome: z$1.array(z$1.enum(INCOME_SOURCE)).min(1, "Zdroj p\u0159\xEDjm\u016F je povinn\xFD"),
1769
- incomeSourceOther: z$1.string().optional(),
1770
- 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(),
1771
- servicePurposesOther: z$1.string().optional(),
1772
- taxDomicile: z$1.enum(TAX_DOMICILE, { message: "Da\u0148ov\xE1 rezidence je povinn\xE1" }).optional(),
1773
- taxDomicileCountry: z$1.enum(COUNTRY_CODES_2).optional(),
1774
- transactionType: z$1.string().optional(),
1775
- transactionTypeExpiry: z$1.coerce.date().optional(),
1776
- isDistraint: z$1.boolean().default(false),
1777
- 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(
1778
488
  EST_TXS_VOLUME_MONTH,
1779
489
  "Odhadovan\xFD m\u011Bs\xED\u010Dn\xED objem transakc\xED je povinn\xFD"
1780
490
  ),
1781
- estTxsVolumeYear: z$1.enum(
491
+ estTxsVolumeYear: z.enum(
1782
492
  EST_TXS_VOLUME_YEAR,
1783
493
  "Odhadovan\xFD ro\u010Dn\xED objem transakc\xED je povinn\xFD"
1784
494
  ),
1785
- estTxsCountMonth: z$1.number().int().optional(),
1786
- tradingCountries: z$1.array(z$1.enum(TARGET_COUNTRY)).min(1, "Vyberte alespo\u0148 jednu c\xEDlovou zemi"),
1787
- tradingCountriesOther: z$1.array(z$1.enum(COUNTRY_CODES_2)).optional(),
1788
- tradingSide: z$1.enum(TRADING_SIDE, "Strana obchodov\xE1n\xED je povinn\xE1"),
1789
- 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, {
1790
500
  message: "Mus\xEDte potvrdit souhlas s prohl\xE1\u0161en\xEDm",
1791
501
  path: ["acceptedAMLTermsAndConditions"]
1792
502
  }),
1793
- signatureMethod: z$1.enum(SIGNATURE_METHOD, "Zp\u016Fsob nav\xE1z\xE1n\xED vztahu je povinn\xFD").optional(),
1794
- existencePeriod: z$1.enum(EXISTENCE_PERIOD, "Historie klienta je povinn\xE1").optional(),
1795
- reputation: z$1.enum(REPUTATION).optional(),
1796
- riskBusinessAreas: z$1.array(z$1.enum(RISK_BUSINESS_AREA)).optional(),
1797
- riskLevel: z$1.enum(AML_SCORE_TYPE, "Rizikovost je povinn\xE1").optional(),
1798
- kycStatus: z$1.enum(KYC_STATUS, "Stav kyc je povinn\xFD").optional(),
1799
- residencyAnswers: z$1.array(
1800
- z$1.object({
1801
- personName: z$1.string(),
1802
- personRole: z$1.enum(PERSON_ROLE),
1803
- answer: z$1.enum(YES_NO_UNKNOWN),
1804
- 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()
1805
515
  })
1806
- ).optional().nullable()
1807
- });
1808
- const productsInputSchema$1 = z$1.object({
1809
- txs: z$1.object({
1810
- fee: z$1.number(),
1811
- margin: z$1.number(),
1812
- reportingEmail: z$1.string().optional(),
1813
- 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()
1814
524
  }).optional(),
1815
- cbs: z$1.object({}).optional()
1816
- });
1817
- const ownerInputSchema = z$1.object({
1818
- titleBefore: z$1.string().optional(),
1819
- name: z$1.string().min(1, "Jm\xE9no je povinn\xE9"),
1820
- surname: z$1.string().min(1, "P\u0159\xEDjmen\xED je povinn\xE9"),
1821
- titleAfter: z$1.string().optional(),
1822
- email: z$1.email("E-mail je povinn\xFD"),
1823
- birthDate: z$1.string().min(1, "Datum narozen\xED je povinn\xE9"),
1824
- birthPlace: z$1.string().optional(),
1825
- personalId: z$1.string().min(1, "Rodn\xE9 \u010D\xEDslo je povinn\xE9"),
1826
- gender: z$1.enum(GENDER, "Pohlav\xED je povinn\xE9"),
1827
- citizenship: z$1.enum(COUNTRY_CODES_2, "St\xE1tn\xED p\u0159\xEDslu\u0161nost je povinn\xE1"),
1828
- 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" }),
1829
539
  address: createAddressInputSchema,
1830
- 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),
1831
- shareEstablishedAt: z$1.string().min(1, "Datum vzniku pod\xEDlu je povinn\xFD")
1832
- });
1833
- const legalRepresentativeInputSchema = z$1.object({
1834
- titleBefore: z$1.string().optional(),
1835
- name: z$1.string().min(1, "Jm\xE9no je povinn\xE9"),
1836
- surname: z$1.string().min(1, "P\u0159\xEDjmen\xED je povinn\xE9"),
1837
- titleAfter: z$1.string().optional(),
1838
- email: z$1.email("E-mail je povinn\xFD"),
1839
- birthDate: z$1.string().min(1, "Datum narozen\xED je povinn\xE9"),
1840
- birthPlace: z$1.string().optional(),
1841
- personalId: z$1.string().min(1, "Rodn\xE9 \u010D\xEDslo je povinn\xE9"),
1842
- gender: z$1.enum(GENDER, "Pohlav\xED je povinn\xE9"),
1843
- citizenship: z$1.enum(COUNTRY_CODES_2, "St\xE1tn\xED p\u0159\xEDslu\u0161nost je povinn\xE1"),
1844
- isPep: z$1.boolean({ error: "Politicky exponovan\xE1 osoba je povinn\xE1" }),
1845
- phone: z$1.string().optional(),
1846
- pin: z$1.string().optional(),
1847
- 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(),
1848
558
  address: createAddressInputSchema,
1849
- dateOfEstablishment: z$1.string().min(1, "Datum vzniku funkce je povinn\xFD")
559
+ dateOfEstablishment: z.string().min(1, "Datum vzniku funkce je povinn\xFD")
1850
560
  });
1851
- const createPartyInputSchema = z$1.object({
561
+ const createPartyInputSchema = z.object({
1852
562
  party: partySchema$1.omit({ id: true }),
1853
563
  personalData: individualInsertSchema.nullable(),
1854
564
  organizationData: createOrganizationInputSchema.nullable(),
1855
- bankAccounts: z$1.array(bankAccountInputSchema),
1856
- disponents: z$1.array(disponentSchema),
1857
- addresses: z$1.array(createAddressInputSchema),
1858
- owners: z$1.array(ownerInputSchema).optional(),
1859
- 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(),
1860
570
  aml: createAmlInputSchema,
1861
- recipients: z$1.array(bankAccountInputSchema),
571
+ recipients: z.array(bankAccountInputSchema),
1862
572
  products: productsInputSchema$1.optional(),
1863
- traderIds: z$1.array(z$1.uuid()).optional()
1864
- });
1865
- const partyCreateOutputSchema = z$1.object({
1866
- customerStatus: z$1.enum(CUSTOMER_STATUS),
1867
- partyType: z$1.enum(PARTY_TYPE),
1868
- language: z$1.enum(LANGUAGE_CODES),
1869
- id: z$1.uuid(),
1870
- internalId: z$1.string().nullable(),
1871
- note: z$1.string().nullable(),
1872
- countryCode: z$1.enum(COUNTRY_CODES_2).nullable(),
1873
- createdAt: z$1.date().nullable(),
1874
- updatedAt: z$1.date().nullable()
1875
- });
1876
- const responseBodySchema$5 = z$1.object({
1877
- 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(),
1878
588
  party: partyCreateOutputSchema
1879
589
  });
1880
590
  const createPartyRoute = createRoute({
@@ -2143,306 +853,306 @@ new OpenAPIHono().openapi(
2143
853
  }
2144
854
  );
2145
855
 
2146
- const partySchema = z$1.object({
2147
- partyType: z$1.enum(PARTY_TYPE),
2148
- language: z$1.enum(LANGUAGE_CODES),
2149
- id: z$1.uuid(),
2150
- internalId: z$1.string().optional(),
2151
- note: z$1.string().optional(),
2152
- countryCode: z$1.enum(COUNTRY_CODES_2).optional()
2153
- });
2154
- const idDocumentInputSchema = z$1.object({
2155
- id: z$1.uuid().optional(),
2156
- idDocType: z$1.enum(ID_DOC_TYPE),
2157
- idDocNumber: z$1.string(),
2158
- issueDate: z$1.coerce.date().optional(),
2159
- expirationDate: z$1.coerce.date().optional(),
2160
- issuer: z$1.string().optional(),
2161
- frontImageUri: z$1.string().optional(),
2162
- backImageUri: z$1.string().optional()
2163
- });
2164
- const individualUpdateSchema = z$1.object({
2165
- id: z$1.uuid(),
2166
- partyId: z$1.uuid(),
2167
- internalId: z$1.string().optional(),
2168
- name: z$1.string().optional(),
2169
- surname: z$1.string().optional(),
2170
- email: z$1.email("E-mail je povinn\xFD"),
2171
- phone: z$1.string().optional(),
2172
- birthDate: z$1.string().min(1, "Datum narozen\xED je povinn\xE9"),
2173
- birthPlace: z$1.string().optional(),
2174
- countryOfBirth: z$1.enum(COUNTRY_CODES_2).optional(),
2175
- personalId: z$1.string().optional(),
2176
- gender: z$1.enum(GENDER).optional(),
2177
- citizenship: z$1.enum(COUNTRY_CODES_2).optional(),
2178
- citizenshipOther: z$1.enum(COUNTRY_CODES_2).optional(),
2179
- employer: z$1.string().optional(),
2180
- employerCountry: z$1.enum(COUNTRY_CODES_2).optional(),
2181
- registeredNumber: z$1.string().optional(),
2182
- isPep: z$1.boolean().optional(),
2183
- titleBefore: z$1.string().optional(),
2184
- titleAfter: z$1.string().optional(),
2185
- birthSurname: z$1.string().optional(),
2186
- vocativeTitle: z$1.string().optional(),
2187
- deathDate: z$1.coerce.date().optional(),
2188
- deathNotification: z$1.coerce.date().optional(),
2189
- pin: z$1.string().optional(),
2190
- stayAbroad: z$1.boolean().optional(),
2191
- stayAbroadCountries: z$1.enum(COUNTRY_CODES_2).optional(),
2192
- identityDocuments: z$1.array(idDocumentInputSchema).optional()
2193
- });
2194
- const organizationUpdateSchema = z$1.object({
2195
- id: z$1.uuid(),
2196
- partyId: z$1.uuid().optional(),
2197
- internalId: z$1.string().optional(),
2198
- businessName: z$1.string().optional(),
2199
- email: z$1.email("Invalid email format").optional(),
2200
- phone: z$1.string().optional(),
2201
- registeredNumber: z$1.string().optional(),
2202
- registeredIn: z$1.enum(COUNTRY_CODES_2).optional(),
2203
- operatesIn: z$1.enum(COUNTRY_CODES_2).optional(),
2204
- presentIn: z$1.enum(COUNTRY_CODES_2).optional(),
2205
- monthlyVolumeIn: z$1.number().optional(),
2206
- monthlyVolumeOut: z$1.number().optional(),
2207
- ownedBy: z$1.string().optional(),
2208
- companyObjects: z$1.array(z$1.enum(CZ_NACE_CODES)).min(1).optional(),
2209
- annualTurnover: z$1.number().optional(),
2210
- numberOfEmployees: z$1.number().optional(),
2211
- prosecuted: z$1.string().optional(),
2212
- location: z$1.string().optional(),
2213
- fileNumber: z$1.string().optional(),
2214
- websiteUrl: z$1.url("Invalid website URL").optional(),
2215
- vatPayer: z$1.boolean().optional(),
2216
- companyObjectsDescription: z$1.string(),
2217
- turnover3years: z$1.number(),
2218
- operationCountries: z$1.string(),
2219
- riskyBusinessType: z$1.string().optional(),
2220
- vatId: z$1.string().nullable().optional(),
2221
- court: z$1.enum(COURT).nullable().optional(),
2222
- registerUri: z$1.string().optional()
2223
- });
2224
- 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({
2225
935
  ...bankAccountMetadataSchema.shape,
2226
- partyId: z$1.uuid(),
2227
- internalId: z$1.string().optional(),
2228
- holderName: z$1.string(),
2229
- number: z$1.string().optional(),
936
+ partyId: z.uuid(),
937
+ internalId: z.string().optional(),
938
+ holderName: z.string(),
939
+ number: z.string().optional(),
2230
940
  currency: bankAccountMetadataSchema.shape.currency.nonoptional(),
2231
941
  countryCode: bankAccountMetadataSchema.shape.countryCode.nonoptional(),
2232
- id: z$1.uuid().optional(),
2233
- statementUri: z$1.string().optional()
2234
- });
2235
- const disponentIndividualSyncDataSchema = z$1.object({
2236
- id: z$1.uuid().optional(),
2237
- name: z$1.string(),
2238
- surname: z$1.string(),
2239
- email: z$1.email("E-mail je povinn\xFD"),
2240
- phone: z$1.string().optional(),
2241
- birthDate: z$1.string().min(1, "Datum narozen\xED je povinn\xE9"),
2242
- birthPlace: z$1.string().optional(),
2243
- countryOfBirth: z$1.enum(COUNTRY_CODES_2).optional(),
2244
- personalId: z$1.string(),
2245
- gender: z$1.enum(GENDER),
2246
- citizenship: z$1.enum(COUNTRY_CODES_2),
2247
- citizenshipOther: z$1.enum(COUNTRY_CODES_2).optional(),
2248
- employer: z$1.string().optional(),
2249
- employerCountry: z$1.enum(COUNTRY_CODES_2).optional(),
2250
- registeredNumber: z$1.string().optional(),
2251
- isPep: z$1.boolean(),
2252
- titleBefore: z$1.string().optional(),
2253
- titleAfter: z$1.string().optional(),
2254
- birthSurname: z$1.string().optional(),
2255
- vocativeTitle: z$1.string().optional(),
2256
- deathDate: z$1.coerce.date().optional(),
2257
- deathNotification: z$1.coerce.date().optional(),
2258
- pin: z$1.string().optional(),
2259
- stayAbroad: z$1.boolean().optional(),
2260
- stayAbroadCountries: z$1.enum(COUNTRY_CODES_2).optional(),
2261
- identityDocuments: z$1.array(idDocumentInputSchema).optional()
2262
- });
2263
- const disponentOrganizationSyncDataSchema = z$1.object({
2264
- id: z$1.uuid().optional(),
2265
- businessName: z$1.string(),
2266
- email: z$1.email("Invalid email format").optional(),
2267
- phone: z$1.string().optional(),
2268
- registeredNumber: z$1.string(),
2269
- registeredIn: z$1.enum(COUNTRY_CODES_2),
2270
- operatesIn: z$1.enum(COUNTRY_CODES_2),
2271
- presentIn: z$1.enum(COUNTRY_CODES_2),
2272
- monthlyVolumeIn: z$1.number(),
2273
- monthlyVolumeOut: z$1.number(),
2274
- ownedBy: z$1.string(),
2275
- companyObjects: z$1.array(z$1.enum(CZ_NACE_CODES)).min(1),
2276
- annualTurnover: z$1.number(),
2277
- numberOfEmployees: z$1.number().optional(),
2278
- prosecuted: z$1.string().optional(),
2279
- location: z$1.string().optional(),
2280
- fileNumber: z$1.string().optional(),
2281
- websiteUrl: z$1.url("Invalid website URL").optional(),
2282
- vatPayer: z$1.boolean(),
2283
- companyObjectsDescription: z$1.string(),
2284
- turnover3years: z$1.number(),
2285
- operationCountries: z$1.string(),
2286
- riskyBusinessType: z$1.string().optional(),
2287
- registerUri: z$1.string().optional()
2288
- });
2289
- const disponentSyncSchema = z$1.discriminatedUnion("partyType", [
2290
- z$1.object({
2291
- 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"),
2292
1002
  data: disponentIndividualSyncDataSchema
2293
1003
  }),
2294
- z$1.object({
2295
- partyType: z$1.literal("ORGANIZATION"),
1004
+ z.object({
1005
+ partyType: z.literal("ORGANIZATION"),
2296
1006
  data: disponentOrganizationSyncDataSchema
2297
1007
  })
2298
1008
  ]);
2299
- const syncAddressInputSchema = z$1.object({
2300
- id: z$1.uuid().optional(),
2301
- partyId: z$1.uuid(),
2302
- internalId: z$1.string().optional(),
2303
- addressType: z$1.enum(ADDRESS_TYPE),
2304
- street: z$1.string(),
2305
- orientationNumber: z$1.string().optional(),
2306
- descriptiveNumber: z$1.string().optional(),
2307
- municipality: z$1.string().max(255),
2308
- municipalityPart: z$1.string().optional(),
2309
- zipCode: z$1.string().max(20),
2310
- district: z$1.string().max(255),
2311
- region: z$1.string().max(255),
2312
- countryCode: z$1.enum(COUNTRY_CODES_2),
2313
- ruianCode: z$1.string().optional()
2314
- });
2315
- const businessPartnerInputSchema = z$1.object({
2316
- name: z$1.string().min(1, "N\xE1zev partnera je povinn\xFD"),
2317
- country: z$1.enum(COUNTRY_CODES_2, "St\xE1t partnera je povinn\xFD"),
2318
- cooperationReason: z$1.string().nullable()
2319
- });
2320
- const foSourceOfWealthInputSchema = z$1.object({
2321
- incomeSources: z$1.array(z$1.enum(INCOME_SOURCE)).min(1, "Hlavn\xED zdroj p\u0159\xEDjm\u016F je povinn\xFD"),
2322
- incomeSourceOther: z$1.string().nullable(),
2323
- monthlyIncome: z$1.enum(MONTHLY_INCOME_RANGE, "M\u011Bs\xED\u010Dn\xED p\u0159\xEDjem je povinn\xFD"),
2324
- employer: z$1.string().min(1, "N\xE1zev zam\u011Bstnavatele je povinn\xFD").nullable(),
2325
- employerCountry: z$1.enum(COUNTRY_CODES_2, "St\xE1t zam\u011Bstnavatele je povinn\xFD").nullable()
2326
- });
2327
- const businessSourceOfWealthInputSchema = z$1.object({
2328
- financialFundsSources: z$1.array(z$1.enum(FINANCIAL_FUNDS_SOURCE)).min(1, "Zdroj finan\u010Dn\xEDch prost\u0159edk\u016F je povinn\xFD"),
2329
- financialFundsSourceOther: z$1.string().nullable(),
2330
- mainBusinessSubjects: z$1.array(z$1.enum(CZ_TRADE_LICENSE_CODES)).min(1, "Hlavn\xED p\u0159edm\u011Bt podnik\xE1n\xED je povinn\xFD"),
2331
- 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(
2332
1042
  COMPANY_TURNOVER_RANGE,
2333
1043
  "Obrat za posledn\xED 3 roky je povinn\xFD"
2334
1044
  ),
2335
- operatingCountries: z$1.array(z$1.enum(OPERATING_COUNTRY)).min(1, "Zem\u011B p\u016Fsoben\xED je povinn\xE1"),
2336
- operatingCountriesOther: z$1.array(z$1.enum(COUNTRY_CODES_2)).nullable(),
2337
- businessPartners: z$1.array(businessPartnerInputSchema).min(1, "Alespo\u0148 jeden partner je povinn\xFD").nullable(),
2338
- businessActivitiesNote: z$1.string().min(1, "Detailn\xED popis v\u0161ech podnikatelsk\xFDch \u010Dinnost\xED je povinn\xFD").nullable()
2339
- });
2340
- const updateAmlInputSchema = z$1.object({
2341
- id: z$1.uuid(),
2342
- partyId: z$1.uuid().optional(),
2343
- internalId: z$1.string().optional(),
2344
- sourceOfWealth: z$1.union([foSourceOfWealthInputSchema, businessSourceOfWealthInputSchema]).optional(),
2345
- yearlyIncome: z$1.enum(YEARLY_INCOME).optional(),
2346
- sourceOfIncome: z$1.array(z$1.enum(INCOME_SOURCE)).min(1).optional(),
2347
- incomeSourceOther: z$1.string().optional(),
2348
- servicePurposes: z$1.array(z$1.enum(SERVICE_PURPOSE)).optional(),
2349
- servicePurposesOther: z$1.string().optional(),
2350
- taxDomicile: z$1.enum(TAX_DOMICILE).optional(),
2351
- taxDomicileCountry: z$1.enum(COUNTRY_CODES_2).optional(),
2352
- transactionType: z$1.string().optional(),
2353
- transactionTypeExpiry: z$1.coerce.date().optional(),
2354
- isDistraint: z$1.boolean().optional(),
2355
- estTxsVolumeMonth: z$1.enum(EST_TXS_VOLUME_MONTH),
2356
- estTxsVolumeYear: z$1.enum(EST_TXS_VOLUME_YEAR),
2357
- estTxsCountMonth: z$1.number().int().optional(),
2358
- tradingCountries: z$1.array(z$1.enum(TARGET_COUNTRY)).min(1),
2359
- tradingCountriesOther: z$1.array(z$1.enum(COUNTRY_CODES_2)).optional(),
2360
- tradingSide: z$1.enum(TRADING_SIDE),
2361
- acceptedAMLTermsAndConditions: z$1.boolean(),
2362
- signatureMethod: z$1.enum(SIGNATURE_METHOD).optional(),
2363
- existencePeriod: z$1.enum(EXISTENCE_PERIOD).optional(),
2364
- reputation: z$1.enum(REPUTATION).optional(),
2365
- riskBusinessAreas: z$1.array(z$1.enum(RISK_BUSINESS_AREA)).optional(),
2366
- riskLevel: z$1.enum(AML_SCORE_TYPE).optional(),
2367
- kycStatus: z$1.enum(KYC_STATUS).optional(),
2368
- residencyAnswers: z$1.array(
2369
- z$1.object({
2370
- personName: z$1.string(),
2371
- personRole: z$1.enum(PERSON_ROLE),
2372
- answer: z$1.enum(YES_NO_UNKNOWN),
2373
- 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()
2374
1084
  })
2375
- ).optional().nullable()
2376
- });
2377
- const productsInputSchema = z$1.object({
2378
- txs: z$1.object({
2379
- fee: z$1.number(),
2380
- margin: z$1.number(),
2381
- reportingEmail: z$1.string().optional(),
2382
- 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()
2383
1093
  }).optional(),
2384
- cbs: z$1.object({}).optional()
2385
- });
2386
- const ownerSyncSchema = z$1.object({
2387
- id: z$1.uuid().optional(),
2388
- titleBefore: z$1.string().optional(),
2389
- name: z$1.string(),
2390
- surname: z$1.string(),
2391
- titleAfter: z$1.string().optional(),
2392
- email: z$1.email("E-mail je povinn\xFD"),
2393
- birthDate: z$1.string(),
2394
- birthPlace: z$1.string().optional(),
2395
- personalId: z$1.string(),
2396
- gender: z$1.enum(GENDER),
2397
- citizenship: z$1.enum(COUNTRY_CODES_2),
2398
- 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(),
2399
1109
  address: syncAddressInputSchema,
2400
- sharePercentage: z$1.number().max(100),
2401
- shareEstablishedAt: z$1.string().min(1, "Datum vzniku pod\xEDlu je povinn\xFD")
2402
- });
2403
- const legalRepresentativeSyncSchema = z$1.object({
2404
- id: z$1.uuid().optional(),
2405
- titleBefore: z$1.string().optional(),
2406
- name: z$1.string(),
2407
- surname: z$1.string(),
2408
- titleAfter: z$1.string().optional(),
2409
- email: z$1.email("E-mail je povinn\xFD"),
2410
- birthDate: z$1.string(),
2411
- birthPlace: z$1.string().optional(),
2412
- personalId: z$1.string(),
2413
- gender: z$1.enum(GENDER),
2414
- citizenship: z$1.enum(COUNTRY_CODES_2),
2415
- isPep: z$1.boolean(),
2416
- phone: z$1.string().optional(),
2417
- pin: z$1.string().optional(),
2418
- 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(),
2419
1129
  address: syncAddressInputSchema,
2420
- dateOfEstablishment: z$1.string().min(1, "Datum vzniku funkce je povinn\xFD")
1130
+ dateOfEstablishment: z.string().min(1, "Datum vzniku funkce je povinn\xFD")
2421
1131
  });
2422
- const partyUpdateInputSchema = z$1.object({
1132
+ const partyUpdateInputSchema = z.object({
2423
1133
  party: partySchema,
2424
1134
  personalData: individualUpdateSchema.nullable(),
2425
1135
  organizationData: organizationUpdateSchema.nullable(),
2426
- bankAccounts: z$1.array(syncBankAccountSchema),
2427
- disponents: z$1.array(disponentSyncSchema).optional(),
2428
- addresses: z$1.array(syncAddressInputSchema),
2429
- owners: z$1.array(ownerSyncSchema).optional(),
2430
- legalRepresentatives: z$1.array(legalRepresentativeSyncSchema).optional(),
2431
- 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(),
2432
1142
  aml: updateAmlInputSchema.optional(),
2433
1143
  products: productsInputSchema.optional(),
2434
- traderIds: z$1.array(z$1.uuid()).optional()
2435
- });
2436
- const updatePartyOuputSchema = z$1.object({
2437
- id: z$1.uuid(),
2438
- customerStatus: z$1.enum(CUSTOMER_STATUS),
2439
- partyType: z$1.enum(PARTY_TYPE),
2440
- language: z$1.enum(LANGUAGE_CODES),
2441
- note: z$1.string().nullable(),
2442
- countryCode: z$1.enum(COUNTRY_CODES_2).nullable()
2443
- });
2444
- const responseBodySchema$4 = z$1.object({
2445
- 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(),
2446
1156
  party: updatePartyOuputSchema
2447
1157
  });
2448
1158
  const updatePartyRoute = createRoute({
@@ -2457,7 +1167,7 @@ const updatePartyRoute = createRoute({
2457
1167
  }
2458
1168
  ],
2459
1169
  request: {
2460
- params: z$1.object({ partyId: z$1.uuid() }),
1170
+ params: z.object({ partyId: z.uuid() }),
2461
1171
  body: {
2462
1172
  content: {
2463
1173
  "application/json": {
@@ -2585,54 +1295,54 @@ new OpenAPIHono().openapi(
2585
1295
  );
2586
1296
 
2587
1297
  const DOCUMENT_SIDE = ["front", "back"];
2588
- const paramsSchema$2 = z$1.object({
2589
- partyId: z$1.uuid()
2590
- });
2591
- const idDocumentCreateInputSchema = z$1.object({
2592
- partyId: z$1.uuid(),
2593
- idDocType: z$1.enum(ID_DOC_TYPE),
2594
- idDocNumber: z$1.string(),
2595
- idDocHolderName: z$1.string(),
2596
- issueDate: z$1.coerce.date().optional(),
2597
- expirationDate: z$1.coerce.date().optional(),
2598
- issuer: z$1.string().optional(),
2599
- countryOfIssue: z$1.enum(COUNTRY_CODES_2).optional(),
2600
- idDocStatus: z$1.enum(ID_DOC_STATUS).optional()
2601
- });
2602
- const idDocumentMultipartSchema = z$1.object({
2603
- idDocument: z$1.string(),
2604
- documentSide: z$1.enum(DOCUMENT_SIDE),
2605
- file: z$1.any()
2606
- });
2607
- const multipartOpenApiSchema = z$1.object({
2608
- 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({
2609
1319
  description: "JSON stringified IdDocument payload"
2610
1320
  }),
2611
- documentSide: z$1.enum(DOCUMENT_SIDE),
2612
- file: z$1.any().openapi({
1321
+ documentSide: z.enum(DOCUMENT_SIDE),
1322
+ file: z.any().openapi({
2613
1323
  type: "string",
2614
1324
  format: "binary"
2615
1325
  })
2616
1326
  });
2617
- const idDocumentOutputSchema = z$1.object({
2618
- id: z$1.uuid(),
2619
- createdAt: z$1.iso.datetime().nullable(),
2620
- updatedAt: z$1.iso.datetime().nullable(),
2621
- deletedAt: z$1.iso.datetime().nullable(),
2622
- partyId: z$1.uuid(),
2623
- idDocType: z$1.enum(ID_DOC_TYPE),
2624
- idDocNumber: z$1.string(),
2625
- idDocHolderName: z$1.string(),
2626
- issueDate: z$1.iso.datetime().nullable(),
2627
- expirationDate: z$1.iso.datetime().nullable(),
2628
- issuer: z$1.string().nullable(),
2629
- countryOfIssue: z$1.enum(COUNTRY_CODES_2).nullable(),
2630
- frontImageUri: z$1.string().nullable(),
2631
- backImageUri: z$1.string().nullable(),
2632
- idDocStatus: z$1.enum(ID_DOC_STATUS).nullable()
2633
- });
2634
- const responseBodySchema$3 = z$1.object({
2635
- 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(),
2636
1346
  idDocument: idDocumentOutputSchema
2637
1347
  });
2638
1348
  const createDocumentRoute = createRoute({
@@ -2672,7 +1382,7 @@ const createDocumentRoute = createRoute({
2672
1382
  description: "Invalid request",
2673
1383
  content: {
2674
1384
  "application/json": {
2675
- schema: z$1.object({ message: z$1.string() })
1385
+ schema: z.object({ message: z.string() })
2676
1386
  }
2677
1387
  }
2678
1388
  },
@@ -2680,7 +1390,7 @@ const createDocumentRoute = createRoute({
2680
1390
  description: "Internal server error",
2681
1391
  content: {
2682
1392
  "application/json": {
2683
- schema: z$1.object({ message: z$1.string() })
1393
+ schema: z.object({ message: z.string() })
2684
1394
  }
2685
1395
  }
2686
1396
  }
@@ -2745,255 +1455,257 @@ new OpenAPIHono().openapi(
2745
1455
  }
2746
1456
  );
2747
1457
 
2748
- const partyBaseOutputSchema = z$1.object({
2749
- customerStatus: z$1.enum(CUSTOMER_STATUS),
2750
- partyType: z$1.enum(PARTY_TYPE),
2751
- language: z$1.enum(LANGUAGE_CODES),
2752
- id: z$1.uuid(),
2753
- internalId: z$1.string().nullable(),
2754
- note: z$1.string().nullable(),
2755
- countryCode: z$1.enum(COUNTRY_CODES_2).nullable(),
2756
- createdAt: z$1.date().nullable(),
2757
- updatedAt: z$1.date().nullable(),
2758
- isRoot: z$1.boolean()
2759
- });
2760
- const individualOutputSchema = z$1.object({
2761
- id: z$1.uuid(),
2762
- partyId: z$1.uuid(),
2763
- internalId: z$1.string().nullable(),
2764
- name: z$1.string(),
2765
- surname: z$1.string(),
2766
- email: z$1.string(),
2767
- phone: z$1.string().nullable(),
2768
- birthDate: z$1.string(),
2769
- birthPlace: z$1.string().nullable(),
2770
- countryOfBirth: z$1.enum(COUNTRY_CODES_2).nullable(),
2771
- personalId: z$1.string(),
2772
- gender: z$1.enum(GENDER),
2773
- citizenship: z$1.enum(COUNTRY_CODES_2),
2774
- citizenshipOther: z$1.enum(COUNTRY_CODES_2).nullable(),
2775
- employer: z$1.string().nullable(),
2776
- employerCountry: z$1.enum(COUNTRY_CODES_2).nullable(),
2777
- registeredNumber: z$1.string().nullable(),
2778
- isPep: z$1.boolean(),
2779
- titleBefore: z$1.string().nullable(),
2780
- titleAfter: z$1.string().nullable(),
2781
- birthSurname: z$1.string().nullable(),
2782
- vocativeTitle: z$1.string().nullable(),
2783
- deathDate: z$1.coerce.date().nullable(),
2784
- deathNotification: z$1.coerce.date().nullable(),
2785
- pin: z$1.string().nullable(),
2786
- stayAbroad: z$1.boolean().nullable(),
2787
- stayAbroadCountries: z$1.enum(COUNTRY_CODES_2).nullable(),
2788
- createdAt: z$1.coerce.date().nullable(),
2789
- updatedAt: z$1.coerce.date().nullable(),
2790
- identityDocuments: z$1.array(idDocumentOutputSchema).nullable()
2791
- });
2792
- const createOrganizationOutputSchema = z$1.object({
2793
- partyId: z$1.uuid(),
2794
- internalId: z$1.string().nullable(),
2795
- businessName: z$1.string(),
2796
- email: z$1.string().nullable(),
2797
- phone: z$1.string().nullable(),
2798
- registeredNumber: z$1.string(),
2799
- registeredIn: z$1.enum(COUNTRY_CODES_2),
2800
- operatesIn: z$1.enum(COUNTRY_CODES_2),
2801
- presentIn: z$1.enum(COUNTRY_CODES_2),
2802
- monthlyVolumeIn: z$1.number(),
2803
- monthlyVolumeOut: z$1.number(),
2804
- ownedBy: z$1.string(),
2805
- companyObjects: z$1.array(z$1.enum(CZ_NACE_CODES)),
2806
- annualTurnover: z$1.number(),
2807
- numberOfEmployees: z$1.number().nullable(),
2808
- prosecuted: z$1.string().nullable(),
2809
- location: z$1.string().nullable(),
2810
- fileNumber: z$1.string().nullable(),
2811
- websiteUrl: z$1.string().nullable(),
2812
- vatPayer: z$1.boolean(),
2813
- companyObjectsDescription: z$1.string(),
2814
- turnover3years: z$1.number(),
2815
- operationCountries: z$1.string(),
2816
- riskyBusinessType: z$1.string().nullable(),
2817
- vatId: z$1.string().nullable(),
2818
- court: z$1.enum(COURT).nullable(),
2819
- registerUri: z$1.string().nullable()
2820
- });
2821
- const bankAccountOutputSchema = z$1.object({
2822
- id: z$1.string(),
2823
- partyId: z$1.uuid(),
2824
- internalId: z$1.string().nullable(),
2825
- holderName: z$1.string(),
2826
- number: z$1.string().nullable(),
2827
- bankCode: z$1.string().nullable(),
2828
- currency: z$1.string(),
2829
- countryCode: z$1.string(),
2830
- iban: z$1.string().nullable(),
2831
- address: z$1.string().nullable(),
2832
- swiftBic: z$1.string().nullable(),
2833
- bicCor: z$1.string().nullable(),
2834
- routingNumber: z$1.string().nullable(),
2835
- sortCode: z$1.string().nullable(),
2836
- clabe: z$1.string().nullable(),
2837
- bsb: z$1.string().nullable(),
2838
- brBankNumber: z$1.string().nullable(),
2839
- updatedAt: z$1.coerce.date().nullable(),
2840
- statementUri: z$1.string().nullable()
2841
- });
2842
- const disponentOutputSchema = z$1.discriminatedUnion("partyType", [
2843
- z$1.object({
2844
- 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"),
2845
1557
  data: individualOutputSchema.nullable()
2846
1558
  }),
2847
- z$1.object({
2848
- partyType: z$1.literal("ORGANIZATION"),
1559
+ z.object({
1560
+ partyType: z.literal("ORGANIZATION"),
2849
1561
  data: createOrganizationOutputSchema.nullable()
2850
1562
  })
2851
1563
  ]);
2852
- const createAddressOutputSchema = z$1.object({
2853
- id: z$1.uuid(),
2854
- partyId: z$1.uuid(),
2855
- internalId: z$1.string().nullable(),
2856
- addressType: z$1.enum(ADDRESS_TYPE),
2857
- street: z$1.string().nullable(),
2858
- orientationNumber: z$1.string().nullable(),
2859
- descriptiveNumber: z$1.string().nullable(),
2860
- municipality: z$1.string(),
2861
- municipalityPart: z$1.string().nullable(),
2862
- zipCode: z$1.string(),
2863
- district: z$1.string().nullable(),
2864
- region: z$1.string().nullable(),
2865
- countryCode: z$1.enum(COUNTRY_CODES_2),
2866
- ruianCode: z$1.string().nullable(),
2867
- createdAt: z$1.date().nullable(),
2868
- updatedAt: z$1.date().nullable()
2869
- });
2870
- const businessPartnerOutputSchema = z$1.object({
2871
- name: z$1.string(),
2872
- country: z$1.string(),
2873
- cooperationReason: z$1.string().nullable()
2874
- });
2875
- const foSourceOfWealthOutputSchema = z$1.object({
2876
- incomeSources: z$1.array(z$1.enum(INCOME_SOURCE)),
2877
- incomeSourceOther: z$1.string().nullable(),
2878
- monthlyIncome: z$1.enum(MONTHLY_INCOME_RANGE),
2879
- employer: z$1.string().nullable(),
2880
- employerCountry: z$1.string().nullable()
2881
- });
2882
- const businessSourceOfWealthOutputSchema = z$1.object({
2883
- financialFundsSources: z$1.array(z$1.enum(FINANCIAL_FUNDS_SOURCE)),
2884
- financialFundsSourceOther: z$1.string().nullable(),
2885
- mainBusinessSubjects: z$1.array(z$1.enum(CZ_TRADE_LICENSE_CODES)),
2886
- companyTurnover: z$1.enum(COMPANY_TURNOVER_RANGE),
2887
- operatingCountries: z$1.array(z$1.enum(OPERATING_COUNTRY)),
2888
- operatingCountriesOther: z$1.array(z$1.enum(COUNTRY_CODES_2)).nullable(),
2889
- businessPartners: z$1.array(businessPartnerOutputSchema).nullable(),
2890
- businessActivitiesNote: z$1.string().nullable()
2891
- });
2892
- const createAmlOutputSchema = z$1.object({
2893
- id: z$1.uuid(),
2894
- partyId: z$1.uuid(),
2895
- internalId: z$1.string().nullable(),
2896
- 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([
2897
1609
  foSourceOfWealthOutputSchema,
2898
1610
  businessSourceOfWealthOutputSchema
2899
1611
  ]),
2900
- yearlyIncome: z$1.enum(YEARLY_INCOME),
2901
- sourceOfIncome: z$1.array(z$1.enum(INCOME_SOURCE)),
2902
- incomeSourceOther: z$1.string().nullable(),
2903
- servicePurposes: z$1.array(z$1.enum(SERVICE_PURPOSE)).nullable(),
2904
- servicePurposesOther: z$1.string().nullable(),
2905
- taxDomicile: z$1.enum(TAX_DOMICILE).nullable(),
2906
- taxDomicileCountry: z$1.enum(COUNTRY_CODES_2).nullable(),
2907
- transactionType: z$1.string().nullable(),
2908
- transactionTypeExpiry: z$1.date().nullable(),
2909
- isDistraint: z$1.boolean(),
2910
- estTxsVolumeMonth: z$1.enum(EST_TXS_VOLUME_MONTH),
2911
- estTxsVolumeYear: z$1.enum(EST_TXS_VOLUME_YEAR),
2912
- estTxsCountMonth: z$1.number().int().nullable(),
2913
- tradingCountries: z$1.array(z$1.enum(TARGET_COUNTRY)),
2914
- tradingCountriesOther: z$1.array(z$1.enum(COUNTRY_CODES_2)).nullable(),
2915
- tradingSide: z$1.enum(TRADING_SIDE),
2916
- acceptedAMLTermsAndConditions: z$1.boolean(),
2917
- signatureMethod: z$1.enum(SIGNATURE_METHOD).nullable(),
2918
- existencePeriod: z$1.enum(EXISTENCE_PERIOD).nullable(),
2919
- reputation: z$1.enum(REPUTATION).nullable(),
2920
- riskBusinessAreas: z$1.array(z$1.enum(RISK_BUSINESS_AREA)).nullable(),
2921
- riskLevel: z$1.enum(AML_SCORE_TYPE),
2922
- kycStatus: z$1.enum(KYC_STATUS).nullable(),
2923
- residencyAnswers: z$1.array(
2924
- z$1.object({
2925
- personName: z$1.string(),
2926
- personRole: z$1.enum(PERSON_ROLE),
2927
- answer: z$1.enum(YES_NO_UNKNOWN),
2928
- 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()
2929
1641
  })
2930
1642
  ).nullable(),
2931
- createdAt: z$1.date().nullable(),
2932
- updatedAt: z$1.date().nullable()
2933
- });
2934
- const ownerOutputSchema = z$1.object({
2935
- id: z$1.uuid().optional(),
2936
- name: z$1.string(),
2937
- surname: z$1.string(),
2938
- titleBefore: z$1.string().nullable(),
2939
- titleAfter: z$1.string().nullable(),
2940
- email: z$1.string(),
2941
- birthDate: z$1.string(),
2942
- birthPlace: z$1.string().nullable(),
2943
- personalId: z$1.string(),
2944
- gender: z$1.enum(GENDER),
2945
- citizenship: z$1.enum(COUNTRY_CODES_2),
2946
- isPep: z$1.boolean(),
2947
- sharePercentage: z$1.number().nullable(),
2948
- 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(),
2949
1661
  address: createAddressOutputSchema.nullable()
2950
1662
  });
2951
- const legalRepresentativeOutputSchema = z$1.object({
2952
- id: z$1.uuid().optional(),
2953
- name: z$1.string(),
2954
- surname: z$1.string(),
2955
- titleBefore: z$1.string().nullable(),
2956
- titleAfter: z$1.string().nullable(),
2957
- email: z$1.string(),
2958
- birthDate: z$1.string(),
2959
- birthPlace: z$1.string().nullable(),
2960
- personalId: z$1.string(),
2961
- gender: z$1.enum(GENDER),
2962
- citizenship: z$1.enum(COUNTRY_CODES_2),
2963
- isPep: z$1.boolean(),
2964
- phone: z$1.string().nullable(),
2965
- pin: z$1.string().nullable(),
2966
- 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(),
2967
1679
  address: createAddressOutputSchema.nullable()
2968
1680
  });
2969
- const productsOutputSchema = z$1.object({
2970
- txs: z$1.object({
2971
- fee: z$1.number(),
2972
- margin: z$1.number(),
2973
- reportingEmail: z$1.string().nullable(),
2974
- 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()
2975
1687
  }).nullable(),
2976
- cbs: z$1.object({}).nullable()
1688
+ cbs: z.object({}).nullable()
2977
1689
  });
2978
1690
  const recipientOutputSchema = bankAccountOutputSchema.omit({
2979
1691
  statementUri: true
2980
1692
  });
2981
- const partyOutputSchema = z$1.object({
1693
+ const partyOutputSchema = z.object({
2982
1694
  party: partyBaseOutputSchema.nullable(),
2983
1695
  personalData: individualOutputSchema.nullable(),
2984
1696
  organizationData: createOrganizationOutputSchema.nullable(),
2985
- bankAccounts: z$1.array(bankAccountOutputSchema).nullable(),
2986
- disponents: z$1.array(disponentOutputSchema).nullable(),
2987
- addresses: z$1.array(createAddressOutputSchema).nullable(),
1697
+ bankAccounts: z.array(bankAccountOutputSchema).nullable(),
1698
+ disponents: z.array(disponentOutputSchema).nullable(),
1699
+ addresses: z.array(createAddressOutputSchema).nullable(),
2988
1700
  aml: createAmlOutputSchema.nullable(),
2989
- recipients: z$1.array(recipientOutputSchema).nullable(),
1701
+ recipients: z.array(recipientOutputSchema).nullable(),
2990
1702
  products: productsOutputSchema.nullable(),
2991
- traderIds: z$1.array(z$1.uuid()).nullable(),
2992
- owners: z$1.array(ownerOutputSchema).nullable(),
2993
- 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()
2994
1706
  });
2995
- const responseBodySchema$2 = z$1.object({
2996
- message: z$1.string(),
1707
+ const responseBodySchema$2 = z.object({
1708
+ message: z.string(),
2997
1709
  party: partyOutputSchema
2998
1710
  });
2999
1711
  const getPartyByPartyIdRoute = createRoute({
@@ -3003,7 +1715,7 @@ const getPartyByPartyIdRoute = createRoute({
3003
1715
  tags: ["Parties"],
3004
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.",
3005
1717
  request: {
3006
- params: z$1.object({ partyId: z$1.uuid() })
1718
+ params: z.object({ partyId: z.uuid() })
3007
1719
  },
3008
1720
  responses: {
3009
1721
  200: {
@@ -3035,7 +1747,16 @@ new OpenAPIHono().openapi(
3035
1747
  }
3036
1748
  );
3037
1749
 
3038
- 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);
3039
1760
  const getPartiesRoute = createRoute({
3040
1761
  method: "get",
3041
1762
  path: "/",
@@ -3048,18 +1769,18 @@ const getPartiesRoute = createRoute({
3048
1769
  description: "Internal Server Error",
3049
1770
  content: {
3050
1771
  "application/json": {
3051
- schema: routeError
1772
+ schema: z.object({ message: z.string() })
3052
1773
  }
3053
1774
  }
3054
1775
  },
3055
1776
  200: {
3056
1777
  content: {
3057
1778
  "application/json": {
3058
- schema: z$1.object({
3059
- message: z$1.string(),
3060
- data: z$1.object({
1779
+ schema: z.object({
1780
+ message: z.string(),
1781
+ data: z.object({
3061
1782
  parties: partiesOutputDataSchema,
3062
- totalCount: z$1.number()
1783
+ totalCount: z.number()
3063
1784
  })
3064
1785
  })
3065
1786
  }
@@ -3071,50 +1792,30 @@ const getPartiesRoute = createRoute({
3071
1792
  new OpenAPIHono().openapi(
3072
1793
  getPartiesRoute,
3073
1794
  async (context) => {
3074
- const query = context.req.query();
3075
- const validatedQuery = {
3076
- page: query.page ? Number(query.page) : 1,
3077
- limit: query.limit ? Number(query.limit) : 10,
3078
- column: query.column || "createdAt",
3079
- direction: query.direction || "desc",
3080
- search: query.search,
3081
- ids: query.ids ? Array.isArray(query.ids) ? query.ids : [query.ids] : void 0
3082
- };
1795
+ const validatedQuery = context.req.valid("query");
3083
1796
  const {
3084
1797
  data: parties,
3085
1798
  error,
3086
- message,
3087
- status
1799
+ message
3088
1800
  } = await context.env.MASTER_DATA_MANAGEMENT_SERVICE.getParties(
3089
1801
  validatedQuery
3090
1802
  );
3091
1803
  if (error || !parties) {
3092
- return context.json(
3093
- {
3094
- message: "Failed to get parties",
3095
- data: null,
3096
- errorDetail: {
3097
- message,
3098
- code: status
3099
- },
3100
- error: true
3101
- },
3102
- 500
3103
- );
1804
+ return context.json({ message: message || "Failed to get parties" }, 500);
3104
1805
  }
3105
1806
  return context.json({ message, data: parties }, 200);
3106
1807
  }
3107
1808
  );
3108
1809
 
3109
- const XIdempotencyKeyHeaderSchema = z$1.string().openapi({
1810
+ const XIdempotencyKeyHeaderSchema = z.string().openapi({
3110
1811
  description: "Unique identifier header to ensure the request is processed only once.",
3111
1812
  example: "4ac15c22-2bd3-426f-b915-bfd5febdb7df"
3112
1813
  });
3113
- const XSignatureHeaderSchema = z$1.string().openapi({
1814
+ const XSignatureHeaderSchema = z.string().openapi({
3114
1815
  description: "Payload signature header to verify request body integrity.",
3115
1816
  example: "FIXAxHO6QqH3M7t4MatM8U6l/nIqWj7jIEW2U6/771MGUorSywy+GmKIG3B1mxT1jR7qPtBHQ5YSO8O53iCvOh6kIhbGXtVe/3C61dsEykLbmntV3nF4DY8/HyfF8a6c2Asc5bvgHrhosGi3s/ouoNowMpsckyq66We8H5gRbXlqJm4Bl1zWWQah4aQLX548L8DLx5+EIgArNMVVG8ryCES99aovJBKrQQMpQLwss1sSFuUZ1kdBCodtvxgTOXOugnZ1UNCmUNFXryQ6bn7wY7Punml/rwR/zTQ9j4SX07iFeQC5rgm9/zi29DBluegu+b8/G8oXrf6L4hugbMEKJfLRfKjNHCrjCooKtInoYxwNEfJyJ9mhqdBoeIBca9zgPpewdbwFLXVV82TYR+xZiywDcHKQ62IzQp07NOMCl4xArSJ3vIWUftSYpLIwomyjQEbY27oGiubUF4krEKgHnMYalCn0ruYOwFik2Pa6FEfIZo0TSXDC24UHQb5mJNPYpv2hny7U5CZPmBvjaRGMVnE+WgRUT19cwqlSL3pWAfeSn1Wro7lYBp/PmlRPgYIxl9GJwNlQ0G+NzP9cMSJbmI5fwErDNgJAaPaMwZbJ3y8ikmbBkkXNPKvQrWVGCJ4nP+/f8yYzMZq272EFx984pSoo2yAeBJnrxbW+AlZxyIo="
3116
1817
  });
3117
- const XSignatureKeyHeaderSchema = z$1.string().openapi({
1818
+ const XSignatureKeyHeaderSchema = z.string().openapi({
3118
1819
  description: "Signature key identifier header to specify which key was used for payload signing.",
3119
1820
  example: "ixtal"
3120
1821
  });
@@ -3123,30 +1824,30 @@ const ALLOWED_ID_DOCUMENTS_FILTERS = {
3123
1824
  ISSUER: "filterIdDocumentIssuer"
3124
1825
  };
3125
1826
 
3126
- const idDocumentsListOutputSchema = z$1.object({
3127
- totalCount: z$1.number(),
3128
- idDocuments: z$1.array(idDocumentOutputSchema)
1827
+ const idDocumentsListOutputSchema = z.object({
1828
+ totalCount: z.number(),
1829
+ idDocuments: z.array(idDocumentOutputSchema)
3129
1830
  });
3130
- const paramsSchema$1 = z$1.object({
3131
- partyId: z$1.uuid()
1831
+ const paramsSchema$1 = z.object({
1832
+ partyId: z.uuid()
3132
1833
  });
3133
- const arrayQuery = (schema) => z$1.preprocess((val) => {
1834
+ const arrayQuery = (schema) => z.preprocess((val) => {
3134
1835
  if (typeof val === "string") {
3135
1836
  return val.includes(",") ? val.split(",") : [val];
3136
1837
  }
3137
1838
  return val;
3138
1839
  }, schema.array()).optional();
3139
- const querySchema = z$1.object({
3140
- page: z$1.coerce.number().positive().default(1),
3141
- limit: z$1.coerce.number().positive().default(20),
3142
- sortColumn: z$1.string().default("updatedAt"),
3143
- sortDirection: z$1.enum(["asc", "desc"]).default("desc"),
3144
- [ALLOWED_ID_DOCUMENTS_FILTERS.PARTY_ID]: arrayQuery(z$1.uuid()),
3145
- [ALLOWED_ID_DOCUMENTS_FILTERS.ISSUER]: arrayQuery(z$1.string()),
3146
- search: z$1.string().optional()
3147
- });
3148
- const responseBodySchema$1 = z$1.object({
3149
- 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(),
3150
1851
  idDocumentsList: idDocumentsListOutputSchema
3151
1852
  });
3152
1853
  const getIdDocumentsListRoute = createRoute({
@@ -3172,7 +1873,7 @@ const getIdDocumentsListRoute = createRoute({
3172
1873
  description: "ID documents not found",
3173
1874
  content: {
3174
1875
  "application/json": {
3175
- schema: z$1.object({ message: z$1.string() })
1876
+ schema: z.object({ message: z.string() })
3176
1877
  }
3177
1878
  }
3178
1879
  },
@@ -3180,7 +1881,7 @@ const getIdDocumentsListRoute = createRoute({
3180
1881
  description: "Internal server error",
3181
1882
  content: {
3182
1883
  "application/json": {
3183
- schema: z$1.object({ message: z$1.string() })
1884
+ schema: z.object({ message: z.string() })
3184
1885
  }
3185
1886
  }
3186
1887
  }
@@ -3216,24 +1917,24 @@ new OpenAPIHono().openapi(
3216
1917
  }
3217
1918
  );
3218
1919
 
3219
- const paramsSchema = z$1.object({
3220
- id: z$1.uuid()
3221
- });
3222
- const idDocumentUpdateInputSchema = z$1.object({
3223
- partyId: z$1.uuid().optional(),
3224
- idDocType: z$1.enum(ID_DOC_TYPE).optional(),
3225
- idDocNumber: z$1.string().optional(),
3226
- idDocHolderName: z$1.string().optional(),
3227
- issueDate: z$1.coerce.date().optional(),
3228
- expirationDate: z$1.coerce.date().optional(),
3229
- issuer: z$1.string().optional(),
3230
- countryOfIssue: z$1.enum(COUNTRY_CODES_2).optional(),
3231
- frontImageUri: z$1.string().optional(),
3232
- backImageUri: z$1.string().optional(),
3233
- idDocStatus: z$1.enum(ID_DOC_STATUS).optional()
3234
- });
3235
- const responseBodySchema = z$1.object({
3236
- 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(),
3237
1938
  idDocument: idDocumentOutputSchema
3238
1939
  });
3239
1940
  const updateIdDocumentRoute = createRoute({
@@ -3245,7 +1946,7 @@ const updateIdDocumentRoute = createRoute({
3245
1946
  middleware: [jwt, signature(), idempotency()],
3246
1947
  security: [{ JwtAuth: [] }],
3247
1948
  request: {
3248
- headers: z$1.object({
1949
+ headers: z.object({
3249
1950
  "X-Idempotency-Key": XIdempotencyKeyHeaderSchema,
3250
1951
  "X-Signature": XSignatureHeaderSchema,
3251
1952
  "X-Signature-Key": XSignatureKeyHeaderSchema
@@ -3273,7 +1974,7 @@ const updateIdDocumentRoute = createRoute({
3273
1974
  description: "ID document not found",
3274
1975
  content: {
3275
1976
  "application/json": {
3276
- schema: z$1.object({ message: z$1.string() })
1977
+ schema: z.object({ message: z.string() })
3277
1978
  }
3278
1979
  }
3279
1980
  },
@@ -3281,7 +1982,7 @@ const updateIdDocumentRoute = createRoute({
3281
1982
  description: "Internal server error",
3282
1983
  content: {
3283
1984
  "application/json": {
3284
- schema: z$1.object({ message: z$1.string() })
1985
+ schema: z.object({ message: z.string() })
3285
1986
  }
3286
1987
  }
3287
1988
  }
@@ -3317,8 +2018,8 @@ new OpenAPIHono().openapi(
3317
2018
  }
3318
2019
  );
3319
2020
 
3320
- const messageResponseSchema = z$1.object({
3321
- message: z$1.string()
2021
+ const messageResponseSchema = z.object({
2022
+ message: z.string()
3322
2023
  });
3323
2024
 
3324
- 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 };