@devizovaburza/mdm-sdk 1.2.0 → 1.2.2

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"];
@@ -120,20 +116,20 @@ const FINANCIAL_FUNDS_SOURCE$1 = [
120
116
  "LOAN",
121
117
  "OTHER"
122
118
  ];
123
- const SERVICE_PURPOSE_FO$1 = [
119
+ const SERVICE_PURPOSE_FO = [
124
120
  "PURCHASE_OF_GOODS_AND_SERVICES",
125
121
  "INVESTMENTS",
126
122
  "OTHER"
127
123
  ];
128
- const SERVICE_PURPOSE_COMPANY$1 = [
124
+ const SERVICE_PURPOSE_COMPANY = [
129
125
  "PAYMENTS_TO_CUSTOMERS",
130
126
  "PAYMENTS_TO_SUPPLIERS",
131
127
  "FOREIGN_INVESTMENTS",
132
128
  "OTHER"
133
129
  ];
134
130
  const SERVICE_PURPOSE$1 = [
135
- ...SERVICE_PURPOSE_FO$1,
136
- ...SERVICE_PURPOSE_COMPANY$1
131
+ ...SERVICE_PURPOSE_FO,
132
+ ...SERVICE_PURPOSE_COMPANY
137
133
  ];
138
134
  const OPERATING_COUNTRY$1 = ["CZ", "EU", "OUTSIDE_EU"];
139
135
  const YES_NO_UNKNOWN$1 = ["YES", "NO", "UNKNOWN"];
@@ -172,12 +168,6 @@ const ADDRESS_TYPE = [
172
168
  "REGISTERED_OFFICE",
173
169
  "CONTACT_ADDRESS"
174
170
  ];
175
- const CONTACT_TYPE = [
176
- "EMAIL",
177
- "PHONE_AUTH",
178
- "PHONE_CONTACT",
179
- "PHONE_WORK"
180
- ];
181
171
  const ID_DOC_TYPE = ["PASSPORT", "ID", "DRIVING_LICENSE"];
182
172
  const ID_DOC_STATUS = [
183
173
  "ACTIVE",
@@ -185,21 +175,7 @@ const ID_DOC_STATUS = [
185
175
  "EXPIRE_SOON",
186
176
  "REVOKED"
187
177
  ];
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
- ];
178
+ const CUSTOMER_STATUS = ["NEW", "ACTIVE", "CLOSED", "BLOCKED"];
203
179
  const PARTY_TYPE = [
204
180
  "INDIVIDUAL",
205
181
  "SELF_EMPLOYED",
@@ -220,8 +196,7 @@ const KYC_STATUS = [
220
196
  "UNVERIFIED",
221
197
  "REJECTED"
222
198
  ];
223
- const TRADER_TYPE = ["PERSON", "COMPANY", "OSVC"];
224
- const PRODUCT_TYPE = ["TXS", "CBS"];
199
+ const TXS_CLIENT_TYPE = ["CLIENT", "PROVIDER"];
225
200
  const TRADING_SIDE = ["SELL", "BUY", "BOTH"];
226
201
  const EST_TXS_VOLUME_MONTH = ["UP_TO_1M", "1M_TO_5M", "OVER_5M"];
227
202
  const EST_TXS_VOLUME_YEAR = [
@@ -262,20 +237,13 @@ const FINANCIAL_FUNDS_SOURCE = [
262
237
  "LOAN",
263
238
  "OTHER"
264
239
  ];
265
- const SERVICE_PURPOSE_FO = [
240
+ const SERVICE_PURPOSE = [
266
241
  "PURCHASE_OF_GOODS_AND_SERVICES",
267
242
  "INVESTMENTS",
268
- "OTHER"
269
- ];
270
- const SERVICE_PURPOSE_COMPANY = [
243
+ "OTHER",
271
244
  "PAYMENTS_TO_CUSTOMERS",
272
245
  "PAYMENTS_TO_SUPPLIERS",
273
- "FOREIGN_INVESTMENTS",
274
- "OTHER"
275
- ];
276
- const SERVICE_PURPOSE = [
277
- ...SERVICE_PURPOSE_FO,
278
- ...SERVICE_PURPOSE_COMPANY
246
+ "FOREIGN_INVESTMENTS"
279
247
  ];
280
248
  const OPERATING_COUNTRY = ["CZ", "EU", "OUTSIDE_EU"];
281
249
  const YES_NO_UNKNOWN = ["YES", "NO", "UNKNOWN"];
@@ -324,1558 +292,293 @@ const RISK_BUSINESS_AREA = [
324
292
  "VIRTUAL_ASSET_SERVICES"
325
293
  ];
326
294
 
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)
295
+ z.object({
296
+ message: z.string(),
297
+ data: z.null(),
298
+ errorDetail: z.object({
299
+ message: z.string(),
300
+ code: z.number()
301
+ }).optional(),
302
+ error: z.boolean()
550
303
  });
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")
304
+ const errorResponse = (entityName, action = "creation") => ({
305
+ 404: {
306
+ content: {
307
+ "application/json": {
308
+ schema: z.object({
309
+ message: z.string(),
310
+ stackTrace: z.string().optional()
311
+ })
312
+ }
313
+ },
314
+ description: `Not Found. This can occur when the ${entityName} is not found.`
566
315
  },
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")
316
+ 500: {
317
+ content: {
318
+ "application/json": {
319
+ schema: z.object({
320
+ message: z.string(),
321
+ stackTrace: z.string().optional()
322
+ })
323
+ }
324
+ },
325
+ description: `Internal Server Error. This can occur when the ${entityName} ${action} fails.`
326
+ }
578
327
  });
579
328
 
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({
329
+ const partySchema$1 = z.object({
330
+ partyType: z.enum(PARTY_TYPE),
331
+ language: z.enum(LANGUAGE_CODES),
637
332
  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()
333
+ internalId: z.string().optional(),
334
+ note: z.string().optional(),
335
+ countryCode: z.enum(COUNTRY_CODES_2).optional()
653
336
  });
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()
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()
668
345
  });
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()
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()
675
401
  });
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()
402
+ const updateBankAccountSchema = z.object({
403
+ ...bankAccountMetadataSchema.shape,
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"),
412
+ countryCode: bankAccountMetadataSchema.shape.countryCode.nonoptional(),
413
+ id: bankAccountMetadataSchema.shape.id.nonoptional(),
414
+ statementUri: z.string().optional()
685
415
  });
686
- const sourceOfWealthSchema = z.union([
687
- foSourceOfWealthSchema,
688
- businessSourceOfWealthSchema
689
- ]);
690
- const businessPartnerOutputSchema$1 = z.object({
691
- name: z.string(),
692
- country: z.string(),
416
+ const bankAccountInputSchema = updateBankAccountSchema.required({
417
+ holderName: true,
418
+ currency: true,
419
+ countryCode: true
420
+ }).omit({ id: true, partyId: true });
421
+ const disponentSchema = z.object({
422
+ partyType: z.literal("INDIVIDUAL"),
423
+ data: individualInsertSchema
424
+ });
425
+ const zipCodeRegex = /^\d{3}\s?\d{2}$/;
426
+ const createAddressInputSchema = z.object({
427
+ addressType: z.enum(ADDRESS_TYPE),
428
+ internalId: z.string().optional(),
429
+ street: z.string().min(1, "Adresa je povinn\xE1"),
430
+ orientationNumber: z.string().max(20, "\u010C\xEDslo orienta\u010Dn\xED je mimo povolen\xFD rozsah").optional(),
431
+ descriptiveNumber: z.string().max(20, "\u010C\xEDslo popisn\xE9 je mimo povolen\xFD rozsah").optional(),
432
+ municipality: z.string().min(1, "M\u011Bsto je povinn\xE9").max(255),
433
+ municipalityPart: z.string().optional(),
434
+ zipCode: z.string().min(1, "PS\u010C je povinn\xE9").max(20).regex(zipCodeRegex, "PS\u010C je v nespr\xE1vn\xE9m form\xE1tu"),
435
+ district: z.string().max(255),
436
+ region: z.string().max(255),
437
+ countryCode: z.enum(COUNTRY_CODES_2, "St\xE1t je povinn\xFD"),
438
+ ruianCode: z.string().optional()
439
+ });
440
+ const businessPartnerInputSchema$1 = z.object({
441
+ name: z.string().min(1, "N\xE1zev partnera je povinn\xFD"),
442
+ country: z.enum(COUNTRY_CODES_2, "St\xE1t partnera je povinn\xFD"),
693
443
  cooperationReason: z.string().nullable()
694
444
  });
695
- const foSourceOfWealthOutputSchema$1 = z.object({
696
- incomeSources: z.array(z.enum(INCOME_SOURCE)),
445
+ const foSourceOfWealthInputSchema$1 = z.object({
446
+ incomeSources: z.array(z.enum(INCOME_SOURCE)).min(1, "Hlavn\xED zdroj p\u0159\xEDjm\u016F je povinn\xFD"),
697
447
  incomeSourceOther: z.string().nullable(),
698
- monthlyIncome: z.enum(MONTHLY_INCOME_RANGE),
699
- employer: z.string().nullable(),
700
- employerCountry: z.string().nullable()
448
+ monthlyIncome: z.enum(MONTHLY_INCOME_RANGE, "M\u011Bs\xED\u010Dn\xED p\u0159\xEDjem je povinn\xFD"),
449
+ employer: z.string().min(1, "N\xE1zev zam\u011Bstnavatele je povinn\xFD").nullable(),
450
+ employerCountry: z.enum(COUNTRY_CODES_2, "St\xE1t zam\u011Bstnavatele je povinn\xFD").nullable()
701
451
  });
702
- const businessSourceOfWealthOutputSchema$1 = z.object({
703
- financialFundsSources: z.array(z.enum(FINANCIAL_FUNDS_SOURCE)),
452
+ const businessSourceOfWealthInputSchema$1 = z.object({
453
+ financialFundsSources: z.array(z.enum(FINANCIAL_FUNDS_SOURCE)).min(1, "Zdroj finan\u010Dn\xEDch prost\u0159edk\u016F je povinn\xFD"),
704
454
  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)),
455
+ mainBusinessSubjects: z.array(z.enum(CZ_TRADE_LICENSE_CODES)).min(1, "Hlavn\xED p\u0159edm\u011Bt podnik\xE1n\xED je povinn\xFD"),
456
+ companyTurnover: z.enum(
457
+ COMPANY_TURNOVER_RANGE,
458
+ "Obrat za posledn\xED 3 roky je povinn\xFD"
459
+ ),
460
+ operatingCountries: z.array(z.enum(OPERATING_COUNTRY)).min(1, "Zem\u011B p\u016Fsoben\xED je povinn\xE1"),
708
461
  operatingCountriesOther: z.array(z.enum(COUNTRY_CODES_2)).nullable(),
709
- businessPartners: z.array(businessPartnerOutputSchema$1).nullable(),
710
- businessActivitiesNote: z.string().nullable()
462
+ businessPartners: z.array(businessPartnerInputSchema$1).min(1, "Alespo\u0148 jeden partner je povinn\xFD").nullable(),
463
+ businessActivitiesNote: z.string().min(1, "Detailn\xED popis v\u0161ech podnikatelsk\xFDch \u010Dinnost\xED je povinn\xFD").nullable()
711
464
  });
712
- const sourceOfWealthOutputSchema = z.union([
713
- foSourceOfWealthOutputSchema$1,
714
- businessSourceOfWealthOutputSchema$1
715
- ]);
716
- const amlInsertSchema = z.object({
717
- partyId: z.uuid(),
465
+ const createAmlInputSchema = z.object({
718
466
  internalId: z.string().optional(),
719
- sourceOfWealth: sourceOfWealthSchema,
467
+ sourceOfWealth: z.union([
468
+ foSourceOfWealthInputSchema$1,
469
+ businessSourceOfWealthInputSchema$1
470
+ ]),
720
471
  yearlyIncome: z.enum(YEARLY_INCOME),
721
- sourceOfIncome: z.array(z.enum(INCOME_SOURCE)).min(1),
472
+ sourceOfIncome: z.array(z.enum(INCOME_SOURCE)).min(1, "Zdroj p\u0159\xEDjm\u016F je povinn\xFD"),
722
473
  incomeSourceOther: z.string().optional(),
723
- servicePurposes: z.array(z.enum(SERVICE_PURPOSE)).optional(),
474
+ servicePurposes: z.array(z.enum(SERVICE_PURPOSE)).min(1, "\xDA\u010Del vyu\u017E\xEDv\xE1n\xED na\u0161ich slu\u017Eeb je povinn\xFD").optional(),
724
475
  servicePurposesOther: z.string().optional(),
725
- taxDomicile: z.enum(TAX_DOMICILE).optional(),
476
+ taxDomicile: z.enum(TAX_DOMICILE, { message: "Da\u0148ov\xE1 rezidence je povinn\xE1" }).optional(),
726
477
  taxDomicileCountry: z.enum(COUNTRY_CODES_2).optional(),
727
478
  transactionType: z.string().optional(),
728
- transactionTypeExpiry: z.date().optional(),
479
+ transactionTypeExpiry: z.coerce.date().optional(),
729
480
  isDistraint: z.boolean().default(false),
730
- estTxsVolumeMonth: z.enum(EST_TXS_VOLUME_MONTH),
731
- estTxsVolumeYear: z.enum(EST_TXS_VOLUME_YEAR),
481
+ estTxsVolumeMonth: z.enum(
482
+ EST_TXS_VOLUME_MONTH,
483
+ "Odhadovan\xFD m\u011Bs\xED\u010Dn\xED objem transakc\xED je povinn\xFD"
484
+ ),
485
+ estTxsVolumeYear: z.enum(
486
+ EST_TXS_VOLUME_YEAR,
487
+ "Odhadovan\xFD ro\u010Dn\xED objem transakc\xED je povinn\xFD"
488
+ ),
732
489
  estTxsCountMonth: z.number().int().optional(),
733
- tradingCountries: z.array(z.enum(TARGET_COUNTRY)).min(1),
490
+ tradingCountries: z.array(z.enum(TARGET_COUNTRY)).min(1, "Vyberte alespo\u0148 jednu c\xEDlovou zemi"),
734
491
  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(),
492
+ tradingSide: z.enum(TRADING_SIDE, "Strana obchodov\xE1n\xED je povinn\xE1"),
493
+ acceptedAMLTermsAndConditions: z.boolean().refine((v) => v === true, {
494
+ message: "Mus\xEDte potvrdit souhlas s prohl\xE1\u0161en\xEDm",
495
+ path: ["acceptedAMLTermsAndConditions"]
496
+ }),
497
+ signatureMethod: z.enum(SIGNATURE_METHOD, "Zp\u016Fsob nav\xE1z\xE1n\xED vztahu je povinn\xFD").optional(),
498
+ existencePeriod: z.enum(EXISTENCE_PERIOD, "Historie klienta je povinn\xE1").optional(),
739
499
  reputation: z.enum(REPUTATION).optional(),
740
500
  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()
501
+ riskLevel: z.enum(AML_SCORE_TYPE, "Rizikovost je povinn\xE1").optional(),
502
+ kycStatus: z.enum(KYC_STATUS, "Stav kyc je povinn\xFD").optional(),
503
+ residencyAnswers: z.array(
504
+ z.object({
505
+ personName: z.string(),
506
+ personRole: z.enum(PERSON_ROLE),
507
+ answer: z.enum(YES_NO_UNKNOWN),
508
+ country: z.enum(COUNTRY_CODES_2).nullable()
509
+ })
510
+ ).optional()
511
+ });
512
+ const productsInputSchema$1 = z.object({
513
+ txs: z.object({
514
+ fee: z.number(),
515
+ margin: z.number(),
516
+ reportingEmail: z.string().optional(),
517
+ clientType: z.enum(TXS_CLIENT_TYPE).optional()
518
+ }).optional(),
519
+ cbs: z.object({}).optional()
520
+ });
521
+ const ownerInputSchema = z.object({
522
+ titleBefore: z.string().optional(),
523
+ name: z.string().min(1, "Jm\xE9no je povinn\xE9"),
524
+ surname: z.string().min(1, "P\u0159\xEDjmen\xED je povinn\xE9"),
525
+ titleAfter: z.string().optional(),
526
+ email: z.email("E-mail je povinn\xFD"),
527
+ birthDate: z.string().min(1, "Datum narozen\xED je povinn\xE9"),
528
+ birthPlace: z.string().optional(),
529
+ personalId: z.string().min(1, "Rodn\xE9 \u010D\xEDslo je povinn\xE9"),
530
+ gender: z.enum(GENDER, "Pohlav\xED je povinn\xE9"),
531
+ citizenship: z.enum(COUNTRY_CODES_2, "St\xE1tn\xED p\u0159\xEDslu\u0161nost je povinn\xE1"),
532
+ isPep: z.boolean({ error: "Politicky exponovan\xE1 osoba je povinn\xE1" }),
533
+ address: createAddressInputSchema,
534
+ sharePercentage: z.number({ error: "Pod\xEDl na spole\u010Dnosti je povinn\xFD" }).min(1, "Pod\xEDl na spole\u010Dnosti je povinn\xFD").max(100),
535
+ shareEstablishedAt: z.string().min(1, "Datum vzniku pod\xEDlu je povinn\xFD")
536
+ });
537
+ const legalRepresentativeInputSchema = z.object({
538
+ titleBefore: z.string().optional(),
539
+ name: z.string().min(1, "Jm\xE9no je povinn\xE9"),
540
+ surname: z.string().min(1, "P\u0159\xEDjmen\xED je povinn\xE9"),
541
+ titleAfter: z.string().optional(),
542
+ email: z.email("E-mail je povinn\xFD"),
543
+ birthDate: z.string().min(1, "Datum narozen\xED je povinn\xE9"),
544
+ birthPlace: z.string().optional(),
545
+ personalId: z.string().min(1, "Rodn\xE9 \u010D\xEDslo je povinn\xE9"),
546
+ gender: z.enum(GENDER, "Pohlav\xED je povinn\xE9"),
547
+ citizenship: z.enum(COUNTRY_CODES_2, "St\xE1tn\xED p\u0159\xEDslu\u0161nost je povinn\xE1"),
548
+ isPep: z.boolean({ error: "Politicky exponovan\xE1 osoba je povinn\xE1" }),
549
+ phone: z.string().optional(),
550
+ pin: z.string().optional(),
551
+ identityDocuments: z.array(idDocumentInputSchema$1).optional(),
552
+ address: createAddressInputSchema,
553
+ dateOfEstablishment: z.string().min(1, "Datum vzniku funkce je povinn\xFD")
744
554
  });
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()
555
+ const createPartyInputSchema = z.object({
556
+ party: partySchema$1.omit({ id: true }),
557
+ personalData: individualInsertSchema.nullable(),
558
+ organizationData: createOrganizationInputSchema.nullable(),
559
+ bankAccounts: z.array(bankAccountInputSchema),
560
+ disponents: z.array(disponentSchema),
561
+ addresses: z.array(createAddressInputSchema),
562
+ owners: z.array(ownerInputSchema).optional(),
563
+ legalRepresentatives: z.array(legalRepresentativeInputSchema).optional(),
564
+ aml: createAmlInputSchema,
565
+ recipients: z.array(bankAccountInputSchema),
566
+ products: productsInputSchema$1.optional(),
567
+ traderIds: z.array(z.uuid()).optional()
774
568
  });
775
- const amlSelectSchema = z.object({
776
- id: z.string(),
777
- partyId: z.string(),
569
+ const partyCreateOutputSchema = z.object({
570
+ customerStatus: z.enum(CUSTOMER_STATUS),
571
+ partyType: z.enum(PARTY_TYPE),
572
+ language: z.enum(LANGUAGE_CODES),
573
+ id: z.uuid(),
778
574
  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
575
  note: z.string().nullable(),
1176
- countryCode: z.enum(COUNTRY_CODES_2).nullable(),
1177
- isRoot: z.boolean(),
1178
- createdAt: z.date().nullable(),
1179
- updatedAt: z.date().nullable()
1180
- });
1181
- const createPartySchema = partySchema$2.omit({ id: true });
1182
- z.object({
1183
- party: createPartySchema,
1184
- personalData: individualInsertSchema$1.omit({ partyId: true }).extend({
1185
- identityDocuments: z.array(idDocumentSyncSchema).nullable().optional()
1186
- }).nullable(),
1187
- organizationData: organizationInsertSchema.omit({ partyId: true }).nullable(),
1188
- bankAccounts: z.array(bankAccountInsertSchema.omit({ partyId: true })).nullable(),
1189
- recipients: z.array(recipientInsertSchema.omit({ partyId: true })).nullable(),
1190
- disponents: z.array(disponentCreateSchema).nullable(),
1191
- addresses: z.array(addressInsertSchema.omit({ partyId: true })),
1192
- aml: amlInsertSchema.omit({ partyId: true }).optional().nullable(),
1193
- products: productsInputSchema$2.optional(),
1194
- traderIds: z.array(z.uuid()).optional()
1195
- });
1196
- z.object({
1197
- partyId: z.uuid(),
1198
- party: partySchema$2,
1199
- personalData: individualUpdateSchema$1.extend({
1200
- identityDocuments: z.array(idDocumentSyncSchema).nullable().optional()
1201
- }).optional(),
1202
- organizationData: organizationUpdateSchema$1.optional(),
1203
- bankAccounts: z.array(bankAccountUpsertSchema.partial({ id: true })).optional(),
1204
- recipients: z.array(recipientUpsertSchema.partial({ id: true })).optional(),
1205
- disponents: z.array(disponentSyncSchema$1).optional(),
1206
- addresses: z.array(addressInsertSchema).optional(),
1207
- aml: amlUpdateSchema.optional(),
1208
- products: productsInputSchema$2.optional(),
1209
- traderIds: z.array(z.uuid()).optional(),
1210
- legalRepresentatives: z.array(legalRepresentativeSyncSchema$1).optional(),
1211
- owners: z.array(ownerSyncSchema$1).optional()
1212
- });
1213
- const partySelectOutputSchema = z.object({
1214
- party: partyOutputSchema$1.nullable(),
1215
- personalData: individualSelectSchema.extend({
1216
- identityDocuments: z.array(idDocumentSelectSchema).nullable()
1217
- }).nullable(),
1218
- organizationData: organizationSelectSchema.nullable(),
1219
- aml: amlSelectSchema.nullable(),
1220
- bankAccounts: z.array(bankAccountSelectSchema).nullable(),
1221
- disponents: z.array(disponentSelectSchema).nullable(),
1222
- addresses: z.array(addressSelectSchema).nullable(),
1223
- recipients: z.array(recipientSelectSchema).nullable(),
1224
- products: productsOutputSchema$1.nullable(),
1225
- traderIds: z.array(z.uuid()).nullable(),
1226
- legalRepresentatives: z.array(legalRepresentativeSelectSchema).nullable(),
1227
- owners: z.array(ownerSelectSchema).nullable()
1228
- });
1229
- z.array(partySelectOutputSchema);
1230
- const partySelectDataSchema = z.object({
1231
- party: partyOutputSchema$1.nullable(),
1232
- personalData: individualSelectSchema.extend({
1233
- identityDocuments: z.array(idDocumentSelectSchema).nullable()
1234
- }).nullable(),
1235
- organizationData: organizationSelectSchema.nullable(),
1236
- aml: amlSelectSchema.nullable()
1237
- });
1238
- const partySelectArrayDataSchema = z.object({
1239
- bankAccounts: z.array(bankAccountSelectSchema).nullable(),
1240
- addresses: z.array(addressSelectSchema).nullable(),
1241
- disponents: z.array(disponentSelectSchema).nullable(),
1242
- recipients: z.array(recipientSelectSchema).nullable(),
1243
- legalRepresentatives: z.array(legalRepresentativeSelectSchema).nullable(),
1244
- owners: z.array(ownerSelectSchema).nullable()
1245
- });
1246
- z.object({
1247
- ...partySelectDataSchema.shape,
1248
- ...partySelectArrayDataSchema.shape,
1249
- products: productsOutputSchema$1.nullable(),
1250
- traderIds: z.array(z.uuid()).nullable()
1251
- });
1252
-
1253
- createInsertSchema(partyChange);
1254
- createUpdateSchema(partyChange);
1255
- createSelectSchema(partyChange);
1256
- z.object({
1257
- partyId: z.uuid().optional().nullable(),
1258
- internalId: z.string().optional().nullable(),
1259
- operation: z.string(),
1260
- diff: z.json(),
1261
- snapshotBefore: z.json(),
1262
- snapshotAfter: z.json()
1263
- });
1264
- z.object({
1265
- id: z.uuid(),
1266
- partyId: z.uuid().optional().nullable(),
1267
- internalId: z.string().optional().nullable(),
1268
- operation: z.string().optional(),
1269
- diff: z.json().optional(),
1270
- snapshotBefore: z.json().optional(),
1271
- snapshotAfter: z.json().optional()
1272
- });
1273
-
1274
- createInsertSchema(partyRelationship);
1275
- createUpdateSchema(partyRelationship);
1276
- createSelectSchema(partyRelationship);
1277
- z.object({
1278
- relationshipType: z.enum(PARTY_RELATIONSHIP_TYPE).optional(),
1279
- frompartyId: z.uuid().optional().nullable(),
1280
- internalId: z.string().optional().nullable(),
1281
- topartyId: z.uuid().optional().nullable(),
1282
- fromDate: z.date().optional().nullable(),
1283
- sharePercentage: z.number().max(100).optional().nullable()
1284
- });
1285
- z.object({
1286
- id: z.uuid(),
1287
- relationshipType: z.enum(PARTY_RELATIONSHIP_TYPE).optional(),
1288
- frompartyId: z.uuid().optional().nullable(),
1289
- internalId: z.string().optional().nullable(),
1290
- topartyId: z.uuid().optional().nullable(),
1291
- fromDate: z.date().optional().nullable(),
1292
- sharePercentage: z.number().max(100).optional().nullable()
1293
- });
1294
-
1295
- createInsertSchema(taxResidence);
1296
- createUpdateSchema(taxResidence);
1297
- createSelectSchema(taxResidence);
1298
- z.object({
1299
- partyId: z.uuid(),
1300
- country: z.enum(COUNTRY_CODES_2),
1301
- taxIdentificationNumber: z.string()
1302
- });
1303
- z.object({
1304
- id: z.uuid(),
1305
- partyId: z.uuid().optional(),
1306
- country: z.enum(COUNTRY_CODES_2).optional(),
1307
- taxIdentificationNumber: z.string().optional()
1308
- });
1309
-
1310
- createInsertSchema(trader);
1311
- createUpdateSchema(trader);
1312
- createSelectSchema(trader);
1313
- const traderInsertSchema = z.object({
1314
- type: z.enum(TRADER_TYPE),
1315
- commission: z.number(),
1316
- firstName: z.string().optional(),
1317
- lastName: z.string().optional(),
1318
- companyName: z.string().optional(),
1319
- ico: z.string().optional(),
1320
- dic: z.string().optional(),
1321
- legacyId: z.string().optional(),
1322
- parentTraderId: z.uuid().optional()
1323
- });
1324
- const traderUpdateSchema = z.object({
1325
- id: z.uuid(),
1326
- type: z.enum(TRADER_TYPE).optional(),
1327
- commission: z.number().optional(),
1328
- internalId: z.string().optional(),
1329
- firstName: z.string().optional(),
1330
- lastName: z.string().optional(),
1331
- companyName: z.string().optional(),
1332
- ico: z.string().optional(),
1333
- dic: z.string().optional(),
1334
- legacyId: z.string().optional(),
1335
- parentTraderId: z.uuid().optional()
1336
- });
1337
- z.object({
1338
- id: z.uuid(),
1339
- createdAt: z.coerce.date().nullable(),
1340
- updatedAt: z.coerce.date().nullable(),
1341
- deletedAt: z.coerce.date().nullable(),
1342
- type: z.enum(TRADER_TYPE),
1343
- commission: z.number(),
1344
- internalId: z.string().nullable(),
1345
- firstName: z.string().nullable(),
1346
- lastName: z.string().nullable(),
1347
- companyName: z.string().nullable(),
1348
- ico: z.string().nullable(),
1349
- dic: z.string().nullable(),
1350
- legacyId: z.string().nullable(),
1351
- parentTraderId: z.uuid().nullable()
1352
- });
1353
-
1354
- const paginationSchema = z.object({
1355
- offset: z.number().default(1),
1356
- limit: z.number().default(10)
1357
- });
1358
- const paginationAndSearchSchema = z.object({
1359
- page: z.coerce.number().positive().default(1),
1360
- limit: z.coerce.number().positive().default(20),
1361
- column: z.string(),
1362
- direction: z.enum(["asc", "desc"]),
1363
- search: z.string().optional(),
1364
- ids: z.string().array().optional()
1365
- });
1366
- paginationSchema.extend({
1367
- partyId: z.uuid()
1368
- });
1369
- paginationSchema.extend({
1370
- id: z.uuid()
1371
- });
1372
- z.object({ partyId: z.uuid() });
1373
-
1374
- z.object({
1375
- trader: traderInsertSchema
1376
- });
1377
-
1378
- z.object({
1379
- trader: traderUpdateSchema
1380
- });
1381
-
1382
- z.object({
1383
- id: z.uuid()
1384
- });
1385
-
1386
- z.object({
1387
- page: z.number().positive(),
1388
- limit: z.number().positive(),
1389
- sort: z.object({
1390
- column: z.string(),
1391
- direction: z.enum(["asc", "desc"])
1392
- }),
1393
- search: z.string().optional(),
1394
- ids: z.array(z.uuid()).optional(),
1395
- parentTraderId: z.uuid().optional().or(z.literal("null"))
1396
- });
1397
-
1398
- z.object({
1399
- id: z.uuid()
1400
- });
1401
-
1402
- z.object({
1403
- traderId: z.uuid(),
1404
- clientId: z.uuid()
1405
- });
1406
- z.object({
1407
- id: z.uuid()
1408
- });
1409
-
1410
- z.object({
1411
- recipient: recipientInsertSchema,
1412
- partyId: z.string().uuid()
1413
- });
1414
-
1415
- z.object({
1416
- recipient: recipientUpdateSchema
1417
- });
1418
-
1419
- z.object({
1420
- id: z.uuid()
1421
- });
1422
-
1423
- const ALLOWED_RECIPIENTS_FILTERS = {
1424
- NAME: "filterRecipientName",
1425
- BANK_CODE: "filterRecipientBankCode",
1426
- CURRENCY: "filterRecipientCurrency"
1427
- };
1428
- z.object({
1429
- page: z.number().positive(),
1430
- limit: z.number().positive(),
1431
- sort: z.object({
1432
- column: z.string(),
1433
- direction: z.enum(["asc", "desc"])
1434
- }),
1435
- [ALLOWED_RECIPIENTS_FILTERS.NAME]: z.union([z.string(), z.string().array()]).optional(),
1436
- [ALLOWED_RECIPIENTS_FILTERS.BANK_CODE]: z.union([z.enum(BANK_CODES), z.enum(BANK_CODES).array()]).optional(),
1437
- [ALLOWED_RECIPIENTS_FILTERS.CURRENCY]: z.union([z.enum(CURRENCY_CODES), z.enum(CURRENCY_CODES).array()]).optional(),
1438
- search: z.string().optional()
1439
- });
1440
-
1441
- z.object({
1442
- id: z.uuid()
1443
- });
1444
-
1445
- z.object({
1446
- bankAccount: bankAccountInsertSchema,
1447
- partyId: z.string().uuid()
1448
- });
1449
-
1450
- z.object({
1451
- bankAccount: bankAccountUpsertSchema
1452
- });
1453
-
1454
- z.object({
1455
- id: z.uuid()
1456
- });
1457
-
1458
- z.object({
1459
- id: z.uuid()
1460
- });
1461
-
1462
- z.object({
1463
- address: addressInsertSchema,
1464
- partyId: z.uuid()
1465
- });
1466
-
1467
- z.object({
1468
- address: addressUpdateSchema
1469
- });
1470
-
1471
- z.object({
1472
- id: z.uuid()
1473
- });
1474
-
1475
- z.object({
1476
- id: z.uuid()
1477
- });
1478
-
1479
- z.object({
1480
- contact: contactInsertSchema,
1481
- partyId: z.string().uuid()
1482
- });
1483
-
1484
- z.object({
1485
- contact: contactUpdateSchema
1486
- });
1487
-
1488
- z.object({
1489
- idDocument: idDocumentInsertSchema,
1490
- partyId: z.string()
1491
- });
1492
-
1493
- z.object({
1494
- idDocument: idDocumentUpdateSchema
1495
- });
1496
-
1497
- z.object({
1498
- id: z.uuid()
1499
- });
1500
-
1501
- const ALLOWED_ID_DOCUMENTS_FILTERS$1 = {
1502
- PARTY_ID: "filterIdDocumentPartyId",
1503
- ISSUER: "filterIdDocumentIssuer"
1504
- };
1505
- z.object({
1506
- pagination: z.object({
1507
- page: z.number().positive(),
1508
- limit: z.number().positive(),
1509
- sort: z.object({
1510
- column: z.string(),
1511
- direction: z.enum(["asc", "desc"])
1512
- }),
1513
- [ALLOWED_ID_DOCUMENTS_FILTERS$1.PARTY_ID]: z.union([z.uuid(), z.uuid().array()]).optional(),
1514
- [ALLOWED_ID_DOCUMENTS_FILTERS$1.ISSUER]: z.union([z.string(), z.string().array()]).optional(),
1515
- search: z.string().optional()
1516
- })
1517
- });
1518
-
1519
- z.object({
1520
- id: z.uuid()
1521
- });
1522
-
1523
- z.object({
1524
- individual: individualInsertSchema$1
1525
- });
1526
-
1527
- z.object({
1528
- individual: individualInsertSchema$1
1529
- });
1530
-
1531
- z.object({
1532
- id: z.uuid()
1533
- });
1534
-
1535
- z.object({
1536
- id: z.uuid()
1537
- });
1538
-
1539
- z.object({
1540
- id: z.uuid()
1541
- });
1542
-
1543
- z.object({
1544
- id: z.uuid()
1545
- });
1546
-
1547
- z.object({
1548
- id: z.uuid()
1549
- });
1550
-
1551
- z.object({
1552
- id: z.uuid()
1553
- });
1554
-
1555
- z.object({
1556
- id: z.uuid()
1557
- });
1558
- z.object({
1559
- disponents: disponentsSelectSchema
1560
- });
1561
-
1562
- z.object({
1563
- party: partyInsertSchema
1564
- });
1565
-
1566
- z.object({
1567
- party: partyInsertSchema
1568
- });
1569
-
1570
- z.object({
1571
- id: z.uuid()
1572
- });
1573
-
1574
- z.object({
1575
- id: z.uuid()
1576
- });
1577
-
1578
- z.object({
1579
- fromPartyId: z.uuid(),
1580
- toPartyId: z.uuid(),
1581
- relationshipType: z.enum(PARTY_RELATIONSHIP_TYPE),
1582
- fromDate: z.date().optional(),
1583
- sharePercentage: z.number().max(100).optional()
1584
- });
1585
-
1586
- const routeError = z$1.object({
1587
- message: z$1.string(),
1588
- data: z$1.null(),
1589
- errorDetail: z$1.object({
1590
- message: z$1.string(),
1591
- code: z$1.number()
1592
- }).optional(),
1593
- error: z$1.boolean()
1594
- });
1595
- const errorResponse = (entityName, action = "creation") => ({
1596
- 404: {
1597
- content: {
1598
- "application/json": {
1599
- schema: z$1.object({
1600
- message: z$1.string(),
1601
- stackTrace: z$1.string().optional()
1602
- })
1603
- }
1604
- },
1605
- description: `Not Found. This can occur when the ${entityName} is not found.`
1606
- },
1607
- 500: {
1608
- content: {
1609
- "application/json": {
1610
- schema: z$1.object({
1611
- message: z$1.string(),
1612
- stackTrace: z$1.string().optional()
1613
- })
1614
- }
1615
- },
1616
- description: `Internal Server Error. This can occur when the ${entityName} ${action} fails.`
1617
- }
1618
- });
1619
-
1620
- const partySchema$1 = z$1.object({
1621
- partyType: z$1.enum(PARTY_TYPE),
1622
- language: z$1.enum(LANGUAGE_CODES),
1623
- id: z$1.uuid(),
1624
- internalId: z$1.string().optional(),
1625
- note: z$1.string().optional(),
1626
- countryCode: z$1.enum(COUNTRY_CODES_2).optional()
1627
- });
1628
- const idDocumentInputSchema$1 = z$1.object({
1629
- idDocType: z$1.enum(ID_DOC_TYPE),
1630
- idDocNumber: z$1.string(),
1631
- issueDate: z$1.coerce.date().optional(),
1632
- expirationDate: z$1.coerce.date().optional(),
1633
- issuer: z$1.string().optional(),
1634
- frontImageUri: z$1.string().optional(),
1635
- backImageUri: z$1.string().optional()
1636
- });
1637
- const individualInsertSchema = z$1.object({
1638
- internalId: z$1.string().optional(),
1639
- name: z$1.string().min(1, "Jm\xE9no je povinn\xE9"),
1640
- surname: z$1.string().min(1, "P\u0159\xEDjmen\xED je povinn\xE9"),
1641
- email: z$1.email("E-mail je povinn\xFD"),
1642
- phone: z$1.string().optional(),
1643
- birthDate: z$1.string().min(1, "Datum narozen\xED je povinn\xE9"),
1644
- birthPlace: z$1.string().optional(),
1645
- countryOfBirth: z$1.enum(COUNTRY_CODES_2).optional(),
1646
- personalId: z$1.string().min(1, "\u010C\xEDslo identifika\u010Dn\xEDho dokumentu je povinn\xE9"),
1647
- gender: z$1.enum(GENDER, "Pohlav\xED je povinn\xE9"),
1648
- citizenship: z$1.enum(COUNTRY_CODES_2, "St\xE1t je povinn\xFD"),
1649
- citizenshipOther: z$1.enum(COUNTRY_CODES_2).optional(),
1650
- employer: z$1.string().optional(),
1651
- employerCountry: z$1.enum(COUNTRY_CODES_2).optional(),
1652
- registeredNumber: z$1.string().optional(),
1653
- isPep: z$1.boolean({ error: "Politicky exponovan\xE1 osoba je povinn\xE1" }),
1654
- titleBefore: z$1.string().optional(),
1655
- titleAfter: z$1.string().optional(),
1656
- birthSurname: z$1.string().optional(),
1657
- vocativeTitle: z$1.string().optional(),
1658
- deathDate: z$1.coerce.date().optional(),
1659
- deathNotification: z$1.coerce.date().optional(),
1660
- pin: z$1.string().optional(),
1661
- stayAbroad: z$1.boolean().optional(),
1662
- stayAbroadCountries: z$1.enum(COUNTRY_CODES_2).optional(),
1663
- identityDocuments: z$1.array(idDocumentInputSchema$1).optional()
1664
- });
1665
- const createOrganizationInputSchema = z$1.object({
1666
- internalId: z$1.string().optional(),
1667
- businessName: z$1.string(),
1668
- email: z$1.string().optional(),
1669
- phone: z$1.string().optional(),
1670
- registeredNumber: z$1.string(),
1671
- registeredIn: z$1.enum(COUNTRY_CODES_2),
1672
- operatesIn: z$1.enum(COUNTRY_CODES_2),
1673
- presentIn: z$1.enum(COUNTRY_CODES_2),
1674
- monthlyVolumeIn: z$1.number(),
1675
- monthlyVolumeOut: z$1.number(),
1676
- ownedBy: z$1.string(),
1677
- companyObjects: z$1.array(z$1.enum(CZ_NACE_CODES)).min(1),
1678
- annualTurnover: z$1.number(),
1679
- numberOfEmployees: z$1.number(),
1680
- prosecuted: z$1.string().optional(),
1681
- location: z$1.string().optional(),
1682
- fileNumber: z$1.string().optional(),
1683
- websiteUrl: z$1.string().optional(),
1684
- vatPayer: z$1.boolean(),
1685
- companyObjectsDescription: z$1.string(),
1686
- turnover3years: z$1.number(),
1687
- operationCountries: z$1.string(),
1688
- riskyBusinessType: z$1.string().optional(),
1689
- vatId: z$1.string().optional(),
1690
- court: z$1.enum(COURT).optional(),
1691
- registerUri: z$1.string().optional()
1692
- });
1693
- const updateBankAccountSchema = z$1.object({
1694
- ...bankAccountMetadataSchema.shape,
1695
- bankCode: z$1.enum(BANK_CODES, "K\xF3d banky je povinn\xFD").optional(),
1696
- iban: z$1.string().min(1, "IBAN je povinn\xFD").regex(/^[A-Z]{2}[0-9]{2}[A-Z0-9]{11,30}$/, "Neplatn\xFD form\xE1t IBAN").optional(),
1697
- swiftBic: z$1.string().min(1, "BIC/SWIFT je povinn\xFD").regex(/^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$/, "Neplatn\xFD form\xE1t BIC/SWIFT").optional(),
1698
- partyId: z$1.uuid(),
1699
- internalId: z$1.string().optional(),
1700
- holderName: z$1.string(),
1701
- number: z$1.string().min(1, "\u010C\xEDslo \xFA\u010Dtu je povinn\xE9").optional(),
1702
- currency: z$1.enum(CURRENCY_CODES, "M\u011Bna je povinn\xE1"),
1703
- countryCode: bankAccountMetadataSchema.shape.countryCode.nonoptional(),
1704
- id: bankAccountMetadataSchema.shape.id.nonoptional(),
1705
- statementUri: z$1.string().optional()
1706
- });
1707
- const bankAccountInputSchema = updateBankAccountSchema.required({
1708
- holderName: true,
1709
- currency: true,
1710
- countryCode: true
1711
- }).omit({ id: true, partyId: true });
1712
- const disponentSchema = z$1.discriminatedUnion("partyType", [
1713
- z$1.object({
1714
- partyType: z$1.literal("INDIVIDUAL"),
1715
- data: individualInsertSchema
1716
- }),
1717
- z$1.object({
1718
- partyType: z$1.literal("ORGANIZATION"),
1719
- data: createOrganizationInputSchema
1720
- })
1721
- ]);
1722
- const zipCodeRegex = /^\d{3}\s?\d{2}$/;
1723
- const createAddressInputSchema = z$1.object({
1724
- addressType: z$1.enum(ADDRESS_TYPE),
1725
- internalId: z$1.string().optional(),
1726
- street: z$1.string().min(1, "Adresa je povinn\xE1"),
1727
- orientationNumber: z$1.string().max(20, "\u010C\xEDslo orienta\u010Dn\xED je mimo povolen\xFD rozsah").optional(),
1728
- descriptiveNumber: z$1.string().max(20, "\u010C\xEDslo popisn\xE9 je mimo povolen\xFD rozsah").optional(),
1729
- municipality: z$1.string().min(1, "M\u011Bsto je povinn\xE9").max(255),
1730
- municipalityPart: z$1.string().optional(),
1731
- zipCode: z$1.string().min(1, "PS\u010C je povinn\xE9").max(20).regex(zipCodeRegex, "PS\u010C je v nespr\xE1vn\xE9m form\xE1tu"),
1732
- district: z$1.string().max(255),
1733
- region: z$1.string().max(255),
1734
- countryCode: z$1.enum(COUNTRY_CODES_2, "St\xE1t je povinn\xFD"),
1735
- ruianCode: z$1.string().optional()
1736
- });
1737
- const businessPartnerInputSchema$1 = z$1.object({
1738
- name: z$1.string().min(1, "N\xE1zev partnera je povinn\xFD"),
1739
- country: z$1.enum(COUNTRY_CODES_2, "St\xE1t partnera je povinn\xFD"),
1740
- cooperationReason: z$1.string().nullable()
1741
- });
1742
- const foSourceOfWealthInputSchema$1 = z$1.object({
1743
- incomeSources: z$1.array(z$1.enum(INCOME_SOURCE)).min(1, "Hlavn\xED zdroj p\u0159\xEDjm\u016F je povinn\xFD"),
1744
- incomeSourceOther: z$1.string().nullable(),
1745
- monthlyIncome: z$1.enum(MONTHLY_INCOME_RANGE, "M\u011Bs\xED\u010Dn\xED p\u0159\xEDjem je povinn\xFD"),
1746
- employer: z$1.string().min(1, "N\xE1zev zam\u011Bstnavatele je povinn\xFD").nullable(),
1747
- employerCountry: z$1.enum(COUNTRY_CODES_2, "St\xE1t zam\u011Bstnavatele je povinn\xFD").nullable()
1748
- });
1749
- const businessSourceOfWealthInputSchema$1 = z$1.object({
1750
- financialFundsSources: z$1.array(z$1.enum(FINANCIAL_FUNDS_SOURCE)).min(1, "Zdroj finan\u010Dn\xEDch prost\u0159edk\u016F je povinn\xFD"),
1751
- financialFundsSourceOther: z$1.string().nullable(),
1752
- mainBusinessSubjects: z$1.array(z$1.enum(CZ_TRADE_LICENSE_CODES)).min(1, "Hlavn\xED p\u0159edm\u011Bt podnik\xE1n\xED je povinn\xFD"),
1753
- companyTurnover: z$1.enum(
1754
- COMPANY_TURNOVER_RANGE,
1755
- "Obrat za posledn\xED 3 roky je povinn\xFD"
1756
- ),
1757
- operatingCountries: z$1.array(z$1.enum(OPERATING_COUNTRY)).min(1, "Zem\u011B p\u016Fsoben\xED je povinn\xE1"),
1758
- operatingCountriesOther: z$1.array(z$1.enum(COUNTRY_CODES_2)).nullable(),
1759
- businessPartners: z$1.array(businessPartnerInputSchema$1).min(1, "Alespo\u0148 jeden partner je povinn\xFD").nullable(),
1760
- businessActivitiesNote: z$1.string().min(1, "Detailn\xED popis v\u0161ech podnikatelsk\xFDch \u010Dinnost\xED je povinn\xFD").nullable()
1761
- });
1762
- const createAmlInputSchema = z$1.object({
1763
- internalId: z$1.string().optional(),
1764
- sourceOfWealth: z$1.union([
1765
- foSourceOfWealthInputSchema$1,
1766
- businessSourceOfWealthInputSchema$1
1767
- ]),
1768
- yearlyIncome: z$1.enum(YEARLY_INCOME),
1769
- sourceOfIncome: z$1.array(z$1.enum(INCOME_SOURCE)).min(1, "Zdroj p\u0159\xEDjm\u016F je povinn\xFD"),
1770
- incomeSourceOther: z$1.string().optional(),
1771
- servicePurposes: z$1.array(z$1.enum(SERVICE_PURPOSE)).min(1, "\xDA\u010Del vyu\u017E\xEDv\xE1n\xED na\u0161ich slu\u017Eeb je povinn\xFD").optional(),
1772
- servicePurposesOther: z$1.string().optional(),
1773
- taxDomicile: z$1.enum(TAX_DOMICILE, { message: "Da\u0148ov\xE1 rezidence je povinn\xE1" }).optional(),
1774
- taxDomicileCountry: z$1.enum(COUNTRY_CODES_2).optional(),
1775
- transactionType: z$1.string().optional(),
1776
- transactionTypeExpiry: z$1.coerce.date().optional(),
1777
- isDistraint: z$1.boolean().default(false),
1778
- estTxsVolumeMonth: z$1.enum(
1779
- EST_TXS_VOLUME_MONTH,
1780
- "Odhadovan\xFD m\u011Bs\xED\u010Dn\xED objem transakc\xED je povinn\xFD"
1781
- ),
1782
- estTxsVolumeYear: z$1.enum(
1783
- EST_TXS_VOLUME_YEAR,
1784
- "Odhadovan\xFD ro\u010Dn\xED objem transakc\xED je povinn\xFD"
1785
- ),
1786
- estTxsCountMonth: z$1.number().int().optional(),
1787
- tradingCountries: z$1.array(z$1.enum(TARGET_COUNTRY)).min(1, "Vyberte alespo\u0148 jednu c\xEDlovou zemi"),
1788
- tradingCountriesOther: z$1.array(z$1.enum(COUNTRY_CODES_2)).optional(),
1789
- tradingSide: z$1.enum(TRADING_SIDE, "Strana obchodov\xE1n\xED je povinn\xE1"),
1790
- acceptedAMLTermsAndConditions: z$1.boolean().refine((v) => v === true, {
1791
- message: "Mus\xEDte potvrdit souhlas s prohl\xE1\u0161en\xEDm",
1792
- path: ["acceptedAMLTermsAndConditions"]
1793
- }),
1794
- signatureMethod: z$1.enum(SIGNATURE_METHOD, "Zp\u016Fsob nav\xE1z\xE1n\xED vztahu je povinn\xFD").optional(),
1795
- existencePeriod: z$1.enum(EXISTENCE_PERIOD, "Historie klienta je povinn\xE1").optional(),
1796
- reputation: z$1.enum(REPUTATION).optional(),
1797
- riskBusinessAreas: z$1.array(z$1.enum(RISK_BUSINESS_AREA)).optional(),
1798
- riskLevel: z$1.enum(AML_SCORE_TYPE, "Rizikovost je povinn\xE1").optional(),
1799
- kycStatus: z$1.enum(KYC_STATUS, "Stav kyc je povinn\xFD").optional(),
1800
- residencyAnswers: z$1.array(
1801
- z$1.object({
1802
- personName: z$1.string(),
1803
- personRole: z$1.enum(PERSON_ROLE),
1804
- answer: z$1.enum(YES_NO_UNKNOWN),
1805
- country: z$1.enum(COUNTRY_CODES_2).nullable()
1806
- })
1807
- ).optional().nullable()
1808
- });
1809
- const productsInputSchema$1 = z$1.object({
1810
- txs: z$1.object({
1811
- fee: z$1.number(),
1812
- margin: z$1.number(),
1813
- reportingEmail: z$1.string().optional(),
1814
- clientType: z$1.enum(TXS_CLIENT_TYPE).optional()
1815
- }).optional(),
1816
- cbs: z$1.object({}).optional()
1817
- });
1818
- const ownerInputSchema = z$1.object({
1819
- titleBefore: z$1.string().optional(),
1820
- name: z$1.string().min(1, "Jm\xE9no je povinn\xE9"),
1821
- surname: z$1.string().min(1, "P\u0159\xEDjmen\xED je povinn\xE9"),
1822
- titleAfter: z$1.string().optional(),
1823
- email: z$1.email("E-mail je povinn\xFD"),
1824
- birthDate: z$1.string().min(1, "Datum narozen\xED je povinn\xE9"),
1825
- birthPlace: z$1.string().optional(),
1826
- personalId: z$1.string().min(1, "Rodn\xE9 \u010D\xEDslo je povinn\xE9"),
1827
- gender: z$1.enum(GENDER, "Pohlav\xED je povinn\xE9"),
1828
- citizenship: z$1.enum(COUNTRY_CODES_2, "St\xE1tn\xED p\u0159\xEDslu\u0161nost je povinn\xE1"),
1829
- isPep: z$1.boolean({ error: "Politicky exponovan\xE1 osoba je povinn\xE1" }),
1830
- address: createAddressInputSchema,
1831
- sharePercentage: z$1.number({ error: "Pod\xEDl na spole\u010Dnosti je povinn\xFD" }).min(1, "Pod\xEDl na spole\u010Dnosti je povinn\xFD").max(100),
1832
- shareEstablishedAt: z$1.string().min(1, "Datum vzniku pod\xEDlu je povinn\xFD")
1833
- });
1834
- const legalRepresentativeInputSchema = z$1.object({
1835
- titleBefore: z$1.string().optional(),
1836
- name: z$1.string().min(1, "Jm\xE9no je povinn\xE9"),
1837
- surname: z$1.string().min(1, "P\u0159\xEDjmen\xED je povinn\xE9"),
1838
- titleAfter: z$1.string().optional(),
1839
- email: z$1.email("E-mail je povinn\xFD"),
1840
- birthDate: z$1.string().min(1, "Datum narozen\xED je povinn\xE9"),
1841
- birthPlace: z$1.string().optional(),
1842
- personalId: z$1.string().min(1, "Rodn\xE9 \u010D\xEDslo je povinn\xE9"),
1843
- gender: z$1.enum(GENDER, "Pohlav\xED je povinn\xE9"),
1844
- citizenship: z$1.enum(COUNTRY_CODES_2, "St\xE1tn\xED p\u0159\xEDslu\u0161nost je povinn\xE1"),
1845
- isPep: z$1.boolean({ error: "Politicky exponovan\xE1 osoba je povinn\xE1" }),
1846
- phone: z$1.string().optional(),
1847
- pin: z$1.string().optional(),
1848
- identityDocuments: z$1.array(idDocumentInputSchema$1).optional(),
1849
- address: createAddressInputSchema,
1850
- dateOfEstablishment: z$1.string().min(1, "Datum vzniku funkce je povinn\xFD")
1851
- });
1852
- const createPartyInputSchema = z$1.object({
1853
- party: partySchema$1.omit({ id: true }),
1854
- personalData: individualInsertSchema.nullable(),
1855
- organizationData: createOrganizationInputSchema.nullable(),
1856
- bankAccounts: z$1.array(bankAccountInputSchema),
1857
- disponents: z$1.array(disponentSchema),
1858
- addresses: z$1.array(createAddressInputSchema),
1859
- owners: z$1.array(ownerInputSchema).optional(),
1860
- legalRepresentatives: z$1.array(legalRepresentativeInputSchema).optional(),
1861
- aml: createAmlInputSchema,
1862
- recipients: z$1.array(bankAccountInputSchema),
1863
- products: productsInputSchema$1.optional(),
1864
- traderIds: z$1.array(z$1.uuid()).optional()
1865
- });
1866
- const partyCreateOutputSchema = z$1.object({
1867
- customerStatus: z$1.enum(CUSTOMER_STATUS),
1868
- partyType: z$1.enum(PARTY_TYPE),
1869
- language: z$1.enum(LANGUAGE_CODES),
1870
- id: z$1.uuid(),
1871
- internalId: z$1.string().nullable(),
1872
- note: z$1.string().nullable(),
1873
- countryCode: z$1.enum(COUNTRY_CODES_2).nullable(),
1874
- createdAt: z$1.date().nullable(),
1875
- updatedAt: z$1.date().nullable()
1876
- });
1877
- const responseBodySchema$5 = z$1.object({
1878
- message: z$1.string(),
576
+ countryCode: z.enum(COUNTRY_CODES_2).nullable(),
577
+ createdAt: z.iso.datetime().nullable(),
578
+ updatedAt: z.iso.datetime().nullable()
579
+ });
580
+ const responseBodySchema$5 = z.object({
581
+ message: z.string(),
1879
582
  party: partyCreateOutputSchema
1880
583
  });
1881
584
  const createPartyRoute = createRoute({
@@ -2144,306 +847,274 @@ new OpenAPIHono().openapi(
2144
847
  }
2145
848
  );
2146
849
 
2147
- const partySchema = z$1.object({
2148
- partyType: z$1.enum(PARTY_TYPE),
2149
- language: z$1.enum(LANGUAGE_CODES),
2150
- id: z$1.uuid(),
2151
- internalId: z$1.string().optional(),
2152
- note: z$1.string().optional(),
2153
- countryCode: z$1.enum(COUNTRY_CODES_2).optional()
2154
- });
2155
- const idDocumentInputSchema = z$1.object({
2156
- id: z$1.uuid().optional(),
2157
- idDocType: z$1.enum(ID_DOC_TYPE),
2158
- idDocNumber: z$1.string(),
2159
- issueDate: z$1.coerce.date().optional(),
2160
- expirationDate: z$1.coerce.date().optional(),
2161
- issuer: z$1.string().optional(),
2162
- frontImageUri: z$1.string().optional(),
2163
- backImageUri: z$1.string().optional()
2164
- });
2165
- const individualUpdateSchema = z$1.object({
2166
- id: z$1.uuid(),
2167
- partyId: z$1.uuid(),
2168
- internalId: z$1.string().optional(),
2169
- name: z$1.string().optional(),
2170
- surname: z$1.string().optional(),
2171
- email: z$1.email("E-mail je povinn\xFD"),
2172
- phone: z$1.string().optional(),
2173
- birthDate: z$1.string().min(1, "Datum narozen\xED je povinn\xE9"),
2174
- birthPlace: z$1.string().optional(),
2175
- countryOfBirth: z$1.enum(COUNTRY_CODES_2).optional(),
2176
- personalId: z$1.string().optional(),
2177
- gender: z$1.enum(GENDER).optional(),
2178
- citizenship: z$1.enum(COUNTRY_CODES_2).optional(),
2179
- citizenshipOther: z$1.enum(COUNTRY_CODES_2).optional(),
2180
- employer: z$1.string().optional(),
2181
- employerCountry: z$1.enum(COUNTRY_CODES_2).optional(),
2182
- registeredNumber: z$1.string().optional(),
2183
- isPep: z$1.boolean().optional(),
2184
- titleBefore: z$1.string().optional(),
2185
- titleAfter: z$1.string().optional(),
2186
- birthSurname: z$1.string().optional(),
2187
- vocativeTitle: z$1.string().optional(),
2188
- deathDate: z$1.coerce.date().optional(),
2189
- deathNotification: z$1.coerce.date().optional(),
2190
- pin: z$1.string().optional(),
2191
- stayAbroad: z$1.boolean().optional(),
2192
- stayAbroadCountries: z$1.enum(COUNTRY_CODES_2).optional(),
2193
- identityDocuments: z$1.array(idDocumentInputSchema).optional()
2194
- });
2195
- const organizationUpdateSchema = z$1.object({
2196
- id: z$1.uuid(),
2197
- partyId: z$1.uuid().optional(),
2198
- internalId: z$1.string().optional(),
2199
- businessName: z$1.string().optional(),
2200
- email: z$1.email("Invalid email format").optional(),
2201
- phone: z$1.string().optional(),
2202
- registeredNumber: z$1.string().optional(),
2203
- registeredIn: z$1.enum(COUNTRY_CODES_2).optional(),
2204
- operatesIn: z$1.enum(COUNTRY_CODES_2).optional(),
2205
- presentIn: z$1.enum(COUNTRY_CODES_2).optional(),
2206
- monthlyVolumeIn: z$1.number().optional(),
2207
- monthlyVolumeOut: z$1.number().optional(),
2208
- ownedBy: z$1.string().optional(),
2209
- companyObjects: z$1.array(z$1.enum(CZ_NACE_CODES)).min(1).optional(),
2210
- annualTurnover: z$1.number().optional(),
2211
- numberOfEmployees: z$1.number().optional(),
2212
- prosecuted: z$1.string().optional(),
2213
- location: z$1.string().optional(),
2214
- fileNumber: z$1.string().optional(),
2215
- websiteUrl: z$1.url("Invalid website URL").optional(),
2216
- vatPayer: z$1.boolean().optional(),
2217
- companyObjectsDescription: z$1.string(),
2218
- turnover3years: z$1.number(),
2219
- operationCountries: z$1.string(),
2220
- riskyBusinessType: z$1.string().optional(),
2221
- vatId: z$1.string().nullable().optional(),
2222
- court: z$1.enum(COURT).nullable().optional(),
2223
- registerUri: z$1.string().optional()
2224
- });
2225
- const syncBankAccountSchema = z$1.object({
850
+ const partySchema = z.object({
851
+ partyType: z.enum(PARTY_TYPE),
852
+ language: z.enum(LANGUAGE_CODES),
853
+ id: z.uuid(),
854
+ internalId: z.string().optional(),
855
+ note: z.string().optional(),
856
+ countryCode: z.enum(COUNTRY_CODES_2).optional()
857
+ });
858
+ const idDocumentInputSchema = z.object({
859
+ id: z.uuid().optional(),
860
+ idDocType: z.enum(ID_DOC_TYPE),
861
+ idDocNumber: z.string(),
862
+ issueDate: z.coerce.date().optional(),
863
+ expirationDate: z.coerce.date().optional(),
864
+ issuer: z.string().optional(),
865
+ frontImageUri: z.string().optional(),
866
+ backImageUri: z.string().optional()
867
+ });
868
+ const individualUpdateSchema = z.object({
869
+ id: z.uuid(),
870
+ partyId: z.uuid(),
871
+ internalId: z.string().optional(),
872
+ name: z.string().optional(),
873
+ surname: z.string().optional(),
874
+ email: z.email("E-mail je povinn\xFD"),
875
+ phone: z.string().optional(),
876
+ birthDate: z.string().min(1, "Datum narozen\xED je povinn\xE9"),
877
+ birthPlace: z.string().optional(),
878
+ countryOfBirth: z.enum(COUNTRY_CODES_2).optional(),
879
+ personalId: z.string().optional(),
880
+ gender: z.enum(GENDER).optional(),
881
+ citizenship: z.enum(COUNTRY_CODES_2).optional(),
882
+ citizenshipOther: z.enum(COUNTRY_CODES_2).optional(),
883
+ employer: z.string().optional(),
884
+ employerCountry: z.enum(COUNTRY_CODES_2).optional(),
885
+ registeredNumber: z.string().optional(),
886
+ isPep: z.boolean().optional(),
887
+ titleBefore: z.string().optional(),
888
+ titleAfter: z.string().optional(),
889
+ birthSurname: z.string().optional(),
890
+ vocativeTitle: z.string().optional(),
891
+ deathDate: z.coerce.date().optional(),
892
+ deathNotification: z.coerce.date().optional(),
893
+ pin: z.string().optional(),
894
+ stayAbroad: z.boolean().optional(),
895
+ stayAbroadCountries: z.enum(COUNTRY_CODES_2).optional(),
896
+ identityDocuments: z.array(idDocumentInputSchema).optional()
897
+ });
898
+ const organizationUpdateSchema = z.object({
899
+ id: z.uuid(),
900
+ partyId: z.uuid().optional(),
901
+ internalId: z.string().optional(),
902
+ businessName: z.string().optional(),
903
+ email: z.email("Invalid email format").optional(),
904
+ phone: z.string().optional(),
905
+ registeredNumber: z.string().optional(),
906
+ registeredIn: z.enum(COUNTRY_CODES_2).optional(),
907
+ operatesIn: z.enum(COUNTRY_CODES_2).optional(),
908
+ presentIn: z.enum(COUNTRY_CODES_2).optional(),
909
+ monthlyVolumeIn: z.number().optional(),
910
+ monthlyVolumeOut: z.number().optional(),
911
+ ownedBy: z.string().optional(),
912
+ companyObjects: z.array(z.enum(CZ_NACE_CODES)).min(1).optional(),
913
+ annualTurnover: z.number().optional(),
914
+ numberOfEmployees: z.number().optional(),
915
+ prosecuted: z.string().optional(),
916
+ location: z.string().optional(),
917
+ fileNumber: z.string().optional(),
918
+ websiteUrl: z.url("Invalid website URL").optional(),
919
+ vatPayer: z.boolean().optional(),
920
+ companyObjectsDescription: z.string(),
921
+ turnover3years: z.number(),
922
+ operationCountries: z.string(),
923
+ riskyBusinessType: z.string().optional(),
924
+ vatId: z.string().optional(),
925
+ court: z.enum(COURT).optional(),
926
+ registerUri: z.string().optional()
927
+ });
928
+ const syncBankAccountSchema = z.object({
2226
929
  ...bankAccountMetadataSchema.shape,
2227
- partyId: z$1.uuid(),
2228
- internalId: z$1.string().optional(),
2229
- holderName: z$1.string(),
2230
- number: z$1.string().optional(),
930
+ partyId: z.uuid(),
931
+ internalId: z.string().optional(),
932
+ holderName: z.string(),
933
+ number: z.string().optional(),
2231
934
  currency: bankAccountMetadataSchema.shape.currency.nonoptional(),
2232
935
  countryCode: bankAccountMetadataSchema.shape.countryCode.nonoptional(),
2233
- id: z$1.uuid().optional(),
2234
- statementUri: z$1.string().optional()
2235
- });
2236
- const disponentIndividualSyncDataSchema = z$1.object({
2237
- id: z$1.uuid().optional(),
2238
- name: z$1.string(),
2239
- surname: z$1.string(),
2240
- email: z$1.email("E-mail je povinn\xFD"),
2241
- phone: z$1.string().optional(),
2242
- birthDate: z$1.string().min(1, "Datum narozen\xED je povinn\xE9"),
2243
- birthPlace: z$1.string().optional(),
2244
- countryOfBirth: z$1.enum(COUNTRY_CODES_2).optional(),
2245
- personalId: z$1.string(),
2246
- gender: z$1.enum(GENDER),
2247
- citizenship: z$1.enum(COUNTRY_CODES_2),
2248
- citizenshipOther: z$1.enum(COUNTRY_CODES_2).optional(),
2249
- employer: z$1.string().optional(),
2250
- employerCountry: z$1.enum(COUNTRY_CODES_2).optional(),
2251
- registeredNumber: z$1.string().optional(),
2252
- isPep: z$1.boolean(),
2253
- titleBefore: z$1.string().optional(),
2254
- titleAfter: z$1.string().optional(),
2255
- birthSurname: z$1.string().optional(),
2256
- vocativeTitle: z$1.string().optional(),
2257
- deathDate: z$1.coerce.date().optional(),
2258
- deathNotification: z$1.coerce.date().optional(),
2259
- pin: z$1.string().optional(),
2260
- stayAbroad: z$1.boolean().optional(),
2261
- stayAbroadCountries: z$1.enum(COUNTRY_CODES_2).optional(),
2262
- identityDocuments: z$1.array(idDocumentInputSchema).optional()
2263
- });
2264
- const disponentOrganizationSyncDataSchema = z$1.object({
2265
- id: z$1.uuid().optional(),
2266
- businessName: z$1.string(),
2267
- email: z$1.email("Invalid email format").optional(),
2268
- phone: z$1.string().optional(),
2269
- registeredNumber: z$1.string(),
2270
- registeredIn: z$1.enum(COUNTRY_CODES_2),
2271
- operatesIn: z$1.enum(COUNTRY_CODES_2),
2272
- presentIn: z$1.enum(COUNTRY_CODES_2),
2273
- monthlyVolumeIn: z$1.number(),
2274
- monthlyVolumeOut: z$1.number(),
2275
- ownedBy: z$1.string(),
2276
- companyObjects: z$1.array(z$1.enum(CZ_NACE_CODES)).min(1),
2277
- annualTurnover: z$1.number(),
2278
- numberOfEmployees: z$1.number().optional(),
2279
- prosecuted: z$1.string().optional(),
2280
- location: z$1.string().optional(),
2281
- fileNumber: z$1.string().optional(),
2282
- websiteUrl: z$1.url("Invalid website URL").optional(),
2283
- vatPayer: z$1.boolean(),
2284
- companyObjectsDescription: z$1.string(),
2285
- turnover3years: z$1.number(),
2286
- operationCountries: z$1.string(),
2287
- riskyBusinessType: z$1.string().optional(),
2288
- registerUri: z$1.string().optional()
2289
- });
2290
- const disponentSyncSchema = z$1.discriminatedUnion("partyType", [
2291
- z$1.object({
2292
- partyType: z$1.literal("INDIVIDUAL"),
2293
- data: disponentIndividualSyncDataSchema
2294
- }),
2295
- z$1.object({
2296
- partyType: z$1.literal("ORGANIZATION"),
2297
- data: disponentOrganizationSyncDataSchema
2298
- })
2299
- ]);
2300
- const syncAddressInputSchema = z$1.object({
2301
- id: z$1.uuid().optional(),
2302
- partyId: z$1.uuid(),
2303
- internalId: z$1.string().optional(),
2304
- addressType: z$1.enum(ADDRESS_TYPE),
2305
- street: z$1.string(),
2306
- orientationNumber: z$1.string().optional(),
2307
- descriptiveNumber: z$1.string().optional(),
2308
- municipality: z$1.string().max(255),
2309
- municipalityPart: z$1.string().optional(),
2310
- zipCode: z$1.string().max(20),
2311
- district: z$1.string().max(255),
2312
- region: z$1.string().max(255),
2313
- countryCode: z$1.enum(COUNTRY_CODES_2),
2314
- ruianCode: z$1.string().optional()
2315
- });
2316
- const businessPartnerInputSchema = z$1.object({
2317
- name: z$1.string().min(1, "N\xE1zev partnera je povinn\xFD"),
2318
- country: z$1.enum(COUNTRY_CODES_2, "St\xE1t partnera je povinn\xFD"),
2319
- cooperationReason: z$1.string().nullable()
2320
- });
2321
- const foSourceOfWealthInputSchema = z$1.object({
2322
- incomeSources: z$1.array(z$1.enum(INCOME_SOURCE)).min(1, "Hlavn\xED zdroj p\u0159\xEDjm\u016F je povinn\xFD"),
2323
- incomeSourceOther: z$1.string().nullable(),
2324
- monthlyIncome: z$1.enum(MONTHLY_INCOME_RANGE, "M\u011Bs\xED\u010Dn\xED p\u0159\xEDjem je povinn\xFD"),
2325
- employer: z$1.string().min(1, "N\xE1zev zam\u011Bstnavatele je povinn\xFD").nullable(),
2326
- employerCountry: z$1.enum(COUNTRY_CODES_2, "St\xE1t zam\u011Bstnavatele je povinn\xFD").nullable()
2327
- });
2328
- const businessSourceOfWealthInputSchema = z$1.object({
2329
- financialFundsSources: z$1.array(z$1.enum(FINANCIAL_FUNDS_SOURCE)).min(1, "Zdroj finan\u010Dn\xEDch prost\u0159edk\u016F je povinn\xFD"),
2330
- financialFundsSourceOther: z$1.string().nullable(),
2331
- mainBusinessSubjects: z$1.array(z$1.enum(CZ_TRADE_LICENSE_CODES)).min(1, "Hlavn\xED p\u0159edm\u011Bt podnik\xE1n\xED je povinn\xFD"),
2332
- companyTurnover: z$1.enum(
936
+ id: z.uuid().optional(),
937
+ statementUri: z.string().optional()
938
+ });
939
+ const disponentIndividualSyncDataSchema = z.object({
940
+ id: z.uuid().optional(),
941
+ name: z.string(),
942
+ surname: z.string(),
943
+ email: z.email("E-mail je povinn\xFD"),
944
+ phone: z.string().optional(),
945
+ birthDate: z.string().min(1, "Datum narozen\xED je povinn\xE9"),
946
+ birthPlace: z.string().optional(),
947
+ countryOfBirth: z.enum(COUNTRY_CODES_2).optional(),
948
+ personalId: z.string(),
949
+ gender: z.enum(GENDER),
950
+ citizenship: z.enum(COUNTRY_CODES_2),
951
+ citizenshipOther: z.enum(COUNTRY_CODES_2).optional(),
952
+ employer: z.string().optional(),
953
+ employerCountry: z.enum(COUNTRY_CODES_2).optional(),
954
+ registeredNumber: z.string().optional(),
955
+ isPep: z.boolean(),
956
+ titleBefore: z.string().optional(),
957
+ titleAfter: z.string().optional(),
958
+ birthSurname: z.string().optional(),
959
+ vocativeTitle: z.string().optional(),
960
+ deathDate: z.coerce.date().optional(),
961
+ deathNotification: z.coerce.date().optional(),
962
+ pin: z.string().optional(),
963
+ stayAbroad: z.boolean().optional(),
964
+ stayAbroadCountries: z.enum(COUNTRY_CODES_2).optional(),
965
+ identityDocuments: z.array(idDocumentInputSchema).optional()
966
+ });
967
+ const disponentSyncSchema = z.object({
968
+ partyType: z.literal("INDIVIDUAL"),
969
+ data: disponentIndividualSyncDataSchema
970
+ });
971
+ const syncAddressInputSchema = z.object({
972
+ id: z.uuid().optional(),
973
+ partyId: z.uuid(),
974
+ internalId: z.string().optional(),
975
+ addressType: z.enum(ADDRESS_TYPE),
976
+ street: z.string(),
977
+ orientationNumber: z.string().optional(),
978
+ descriptiveNumber: z.string().optional(),
979
+ municipality: z.string().max(255),
980
+ municipalityPart: z.string().optional(),
981
+ zipCode: z.string().max(20),
982
+ district: z.string().max(255),
983
+ region: z.string().max(255),
984
+ countryCode: z.enum(COUNTRY_CODES_2),
985
+ ruianCode: z.string().optional()
986
+ });
987
+ const businessPartnerInputSchema = z.object({
988
+ name: z.string().min(1, "N\xE1zev partnera je povinn\xFD"),
989
+ country: z.enum(COUNTRY_CODES_2, "St\xE1t partnera je povinn\xFD"),
990
+ cooperationReason: z.string().nullable()
991
+ });
992
+ const foSourceOfWealthInputSchema = z.object({
993
+ incomeSources: z.array(z.enum(INCOME_SOURCE)).min(1, "Hlavn\xED zdroj p\u0159\xEDjm\u016F je povinn\xFD"),
994
+ incomeSourceOther: z.string().nullable(),
995
+ monthlyIncome: z.enum(MONTHLY_INCOME_RANGE, "M\u011Bs\xED\u010Dn\xED p\u0159\xEDjem je povinn\xFD"),
996
+ employer: z.string().min(1, "N\xE1zev zam\u011Bstnavatele je povinn\xFD").nullable(),
997
+ employerCountry: z.enum(COUNTRY_CODES_2, "St\xE1t zam\u011Bstnavatele je povinn\xFD").nullable()
998
+ });
999
+ const businessSourceOfWealthInputSchema = z.object({
1000
+ financialFundsSources: z.array(z.enum(FINANCIAL_FUNDS_SOURCE)).min(1, "Zdroj finan\u010Dn\xEDch prost\u0159edk\u016F je povinn\xFD"),
1001
+ financialFundsSourceOther: z.string().nullable(),
1002
+ mainBusinessSubjects: z.array(z.enum(CZ_TRADE_LICENSE_CODES)).min(1, "Hlavn\xED p\u0159edm\u011Bt podnik\xE1n\xED je povinn\xFD"),
1003
+ companyTurnover: z.enum(
2333
1004
  COMPANY_TURNOVER_RANGE,
2334
1005
  "Obrat za posledn\xED 3 roky je povinn\xFD"
2335
1006
  ),
2336
- operatingCountries: z$1.array(z$1.enum(OPERATING_COUNTRY)).min(1, "Zem\u011B p\u016Fsoben\xED je povinn\xE1"),
2337
- operatingCountriesOther: z$1.array(z$1.enum(COUNTRY_CODES_2)).nullable(),
2338
- businessPartners: z$1.array(businessPartnerInputSchema).min(1, "Alespo\u0148 jeden partner je povinn\xFD").nullable(),
2339
- businessActivitiesNote: z$1.string().min(1, "Detailn\xED popis v\u0161ech podnikatelsk\xFDch \u010Dinnost\xED je povinn\xFD").nullable()
2340
- });
2341
- const updateAmlInputSchema = z$1.object({
2342
- id: z$1.uuid(),
2343
- partyId: z$1.uuid().optional(),
2344
- internalId: z$1.string().optional(),
2345
- sourceOfWealth: z$1.union([foSourceOfWealthInputSchema, businessSourceOfWealthInputSchema]).optional(),
2346
- yearlyIncome: z$1.enum(YEARLY_INCOME).optional(),
2347
- sourceOfIncome: z$1.array(z$1.enum(INCOME_SOURCE)).min(1).optional(),
2348
- incomeSourceOther: z$1.string().optional(),
2349
- servicePurposes: z$1.array(z$1.enum(SERVICE_PURPOSE)).optional(),
2350
- servicePurposesOther: z$1.string().optional(),
2351
- taxDomicile: z$1.enum(TAX_DOMICILE).optional(),
2352
- taxDomicileCountry: z$1.enum(COUNTRY_CODES_2).optional(),
2353
- transactionType: z$1.string().optional(),
2354
- transactionTypeExpiry: z$1.coerce.date().optional(),
2355
- isDistraint: z$1.boolean().optional(),
2356
- estTxsVolumeMonth: z$1.enum(EST_TXS_VOLUME_MONTH),
2357
- estTxsVolumeYear: z$1.enum(EST_TXS_VOLUME_YEAR),
2358
- estTxsCountMonth: z$1.number().int().optional(),
2359
- tradingCountries: z$1.array(z$1.enum(TARGET_COUNTRY)).min(1),
2360
- tradingCountriesOther: z$1.array(z$1.enum(COUNTRY_CODES_2)).optional(),
2361
- tradingSide: z$1.enum(TRADING_SIDE),
2362
- acceptedAMLTermsAndConditions: z$1.boolean(),
2363
- signatureMethod: z$1.enum(SIGNATURE_METHOD).optional(),
2364
- existencePeriod: z$1.enum(EXISTENCE_PERIOD).optional(),
2365
- reputation: z$1.enum(REPUTATION).optional(),
2366
- riskBusinessAreas: z$1.array(z$1.enum(RISK_BUSINESS_AREA)).optional(),
2367
- riskLevel: z$1.enum(AML_SCORE_TYPE).optional(),
2368
- kycStatus: z$1.enum(KYC_STATUS).optional(),
2369
- residencyAnswers: z$1.array(
2370
- z$1.object({
2371
- personName: z$1.string(),
2372
- personRole: z$1.enum(PERSON_ROLE),
2373
- answer: z$1.enum(YES_NO_UNKNOWN),
2374
- country: z$1.enum(COUNTRY_CODES_2).nullable()
1007
+ operatingCountries: z.array(z.enum(OPERATING_COUNTRY)).min(1, "Zem\u011B p\u016Fsoben\xED je povinn\xE1"),
1008
+ operatingCountriesOther: z.array(z.enum(COUNTRY_CODES_2)).nullable(),
1009
+ businessPartners: z.array(businessPartnerInputSchema).min(1, "Alespo\u0148 jeden partner je povinn\xFD").nullable(),
1010
+ businessActivitiesNote: z.string().min(1, "Detailn\xED popis v\u0161ech podnikatelsk\xFDch \u010Dinnost\xED je povinn\xFD").nullable()
1011
+ });
1012
+ const updateAmlInputSchema = z.object({
1013
+ id: z.uuid(),
1014
+ partyId: z.uuid().optional(),
1015
+ internalId: z.string().optional(),
1016
+ sourceOfWealth: z.union([foSourceOfWealthInputSchema, businessSourceOfWealthInputSchema]).optional(),
1017
+ yearlyIncome: z.enum(YEARLY_INCOME).optional(),
1018
+ sourceOfIncome: z.array(z.enum(INCOME_SOURCE)).min(1).optional(),
1019
+ incomeSourceOther: z.string().optional(),
1020
+ servicePurposes: z.array(z.enum(SERVICE_PURPOSE)).optional(),
1021
+ servicePurposesOther: z.string().optional(),
1022
+ taxDomicile: z.enum(TAX_DOMICILE).optional(),
1023
+ taxDomicileCountry: z.enum(COUNTRY_CODES_2).optional(),
1024
+ transactionType: z.string().optional(),
1025
+ transactionTypeExpiry: z.coerce.date().optional(),
1026
+ isDistraint: z.boolean().optional(),
1027
+ estTxsVolumeMonth: z.enum(EST_TXS_VOLUME_MONTH),
1028
+ estTxsVolumeYear: z.enum(EST_TXS_VOLUME_YEAR),
1029
+ estTxsCountMonth: z.number().int().optional(),
1030
+ tradingCountries: z.array(z.enum(TARGET_COUNTRY)).min(1),
1031
+ tradingCountriesOther: z.array(z.enum(COUNTRY_CODES_2)).optional(),
1032
+ tradingSide: z.enum(TRADING_SIDE),
1033
+ acceptedAMLTermsAndConditions: z.boolean(),
1034
+ signatureMethod: z.enum(SIGNATURE_METHOD).optional(),
1035
+ existencePeriod: z.enum(EXISTENCE_PERIOD).optional(),
1036
+ reputation: z.enum(REPUTATION).optional(),
1037
+ riskBusinessAreas: z.array(z.enum(RISK_BUSINESS_AREA)).optional(),
1038
+ riskLevel: z.enum(AML_SCORE_TYPE).optional(),
1039
+ kycStatus: z.enum(KYC_STATUS).optional(),
1040
+ residencyAnswers: z.array(
1041
+ z.object({
1042
+ personName: z.string(),
1043
+ personRole: z.enum(PERSON_ROLE),
1044
+ answer: z.enum(YES_NO_UNKNOWN),
1045
+ country: z.enum(COUNTRY_CODES_2).nullable()
2375
1046
  })
2376
- ).optional().nullable()
2377
- });
2378
- const productsInputSchema = z$1.object({
2379
- txs: z$1.object({
2380
- fee: z$1.number(),
2381
- margin: z$1.number(),
2382
- reportingEmail: z$1.string().optional(),
2383
- clientType: z$1.enum(TXS_CLIENT_TYPE).optional()
1047
+ ).optional()
1048
+ });
1049
+ const productsInputSchema = z.object({
1050
+ txs: z.object({
1051
+ fee: z.number(),
1052
+ margin: z.number(),
1053
+ reportingEmail: z.string().optional(),
1054
+ clientType: z.enum(TXS_CLIENT_TYPE).optional()
2384
1055
  }).optional(),
2385
- cbs: z$1.object({}).optional()
2386
- });
2387
- const ownerSyncSchema = z$1.object({
2388
- id: z$1.uuid().optional(),
2389
- titleBefore: z$1.string().optional(),
2390
- name: z$1.string(),
2391
- surname: z$1.string(),
2392
- titleAfter: z$1.string().optional(),
2393
- email: z$1.email("E-mail je povinn\xFD"),
2394
- birthDate: z$1.string(),
2395
- birthPlace: z$1.string().optional(),
2396
- personalId: z$1.string(),
2397
- gender: z$1.enum(GENDER),
2398
- citizenship: z$1.enum(COUNTRY_CODES_2),
2399
- isPep: z$1.boolean(),
1056
+ cbs: z.object({}).optional()
1057
+ });
1058
+ const ownerSyncSchema = z.object({
1059
+ id: z.uuid().optional(),
1060
+ titleBefore: z.string().optional(),
1061
+ name: z.string(),
1062
+ surname: z.string(),
1063
+ titleAfter: z.string().optional(),
1064
+ email: z.email("E-mail je povinn\xFD"),
1065
+ birthDate: z.string(),
1066
+ birthPlace: z.string().optional(),
1067
+ personalId: z.string(),
1068
+ gender: z.enum(GENDER),
1069
+ citizenship: z.enum(COUNTRY_CODES_2),
1070
+ isPep: z.boolean(),
2400
1071
  address: syncAddressInputSchema,
2401
- sharePercentage: z$1.number().max(100),
2402
- shareEstablishedAt: z$1.string().min(1, "Datum vzniku pod\xEDlu je povinn\xFD")
2403
- });
2404
- const legalRepresentativeSyncSchema = z$1.object({
2405
- id: z$1.uuid().optional(),
2406
- titleBefore: z$1.string().optional(),
2407
- name: z$1.string(),
2408
- surname: z$1.string(),
2409
- titleAfter: z$1.string().optional(),
2410
- email: z$1.email("E-mail je povinn\xFD"),
2411
- birthDate: z$1.string(),
2412
- birthPlace: z$1.string().optional(),
2413
- personalId: z$1.string(),
2414
- gender: z$1.enum(GENDER),
2415
- citizenship: z$1.enum(COUNTRY_CODES_2),
2416
- isPep: z$1.boolean(),
2417
- phone: z$1.string().optional(),
2418
- pin: z$1.string().optional(),
2419
- identityDocuments: z$1.array(idDocumentInputSchema).optional(),
1072
+ sharePercentage: z.number().max(100),
1073
+ shareEstablishedAt: z.string().min(1, "Datum vzniku pod\xEDlu je povinn\xFD")
1074
+ });
1075
+ const legalRepresentativeSyncSchema = z.object({
1076
+ id: z.uuid().optional(),
1077
+ titleBefore: z.string().optional(),
1078
+ name: z.string(),
1079
+ surname: z.string(),
1080
+ titleAfter: z.string().optional(),
1081
+ email: z.email("E-mail je povinn\xFD"),
1082
+ birthDate: z.string(),
1083
+ birthPlace: z.string().optional(),
1084
+ personalId: z.string(),
1085
+ gender: z.enum(GENDER),
1086
+ citizenship: z.enum(COUNTRY_CODES_2),
1087
+ isPep: z.boolean(),
1088
+ phone: z.string().optional(),
1089
+ pin: z.string().optional(),
1090
+ identityDocuments: z.array(idDocumentInputSchema).optional(),
2420
1091
  address: syncAddressInputSchema,
2421
- dateOfEstablishment: z$1.string().min(1, "Datum vzniku funkce je povinn\xFD")
1092
+ dateOfEstablishment: z.string().min(1, "Datum vzniku funkce je povinn\xFD")
2422
1093
  });
2423
- const partyUpdateInputSchema = z$1.object({
1094
+ const partyUpdateInputSchema = z.object({
2424
1095
  party: partySchema,
2425
1096
  personalData: individualUpdateSchema.nullable(),
2426
1097
  organizationData: organizationUpdateSchema.nullable(),
2427
- bankAccounts: z$1.array(syncBankAccountSchema),
2428
- disponents: z$1.array(disponentSyncSchema).optional(),
2429
- addresses: z$1.array(syncAddressInputSchema),
2430
- owners: z$1.array(ownerSyncSchema).optional(),
2431
- legalRepresentatives: z$1.array(legalRepresentativeSyncSchema).optional(),
2432
- recipients: z$1.array(syncBankAccountSchema).nullable(),
1098
+ bankAccounts: z.array(syncBankAccountSchema),
1099
+ disponents: z.array(disponentSyncSchema).optional(),
1100
+ addresses: z.array(syncAddressInputSchema),
1101
+ owners: z.array(ownerSyncSchema).optional(),
1102
+ legalRepresentatives: z.array(legalRepresentativeSyncSchema).optional(),
1103
+ recipients: z.array(syncBankAccountSchema).nullable(),
2433
1104
  aml: updateAmlInputSchema.optional(),
2434
1105
  products: productsInputSchema.optional(),
2435
- traderIds: z$1.array(z$1.uuid()).optional()
2436
- });
2437
- const updatePartyOuputSchema = z$1.object({
2438
- id: z$1.uuid(),
2439
- customerStatus: z$1.enum(CUSTOMER_STATUS),
2440
- partyType: z$1.enum(PARTY_TYPE),
2441
- language: z$1.enum(LANGUAGE_CODES),
2442
- note: z$1.string().nullable(),
2443
- countryCode: z$1.enum(COUNTRY_CODES_2).nullable()
2444
- });
2445
- const responseBodySchema$4 = z$1.object({
2446
- message: z$1.string(),
1106
+ traderIds: z.array(z.uuid()).optional()
1107
+ });
1108
+ const updatePartyOuputSchema = z.object({
1109
+ id: z.uuid(),
1110
+ customerStatus: z.enum(CUSTOMER_STATUS),
1111
+ partyType: z.enum(PARTY_TYPE),
1112
+ language: z.enum(LANGUAGE_CODES),
1113
+ note: z.string().nullable(),
1114
+ countryCode: z.enum(COUNTRY_CODES_2).nullable()
1115
+ });
1116
+ const responseBodySchema$4 = z.object({
1117
+ message: z.string(),
2447
1118
  party: updatePartyOuputSchema
2448
1119
  });
2449
1120
  const updatePartyRoute = createRoute({
@@ -2458,7 +1129,7 @@ const updatePartyRoute = createRoute({
2458
1129
  }
2459
1130
  ],
2460
1131
  request: {
2461
- params: z$1.object({ partyId: z$1.uuid() }),
1132
+ params: z.object({ partyId: z.uuid() }),
2462
1133
  body: {
2463
1134
  content: {
2464
1135
  "application/json": {
@@ -2586,54 +1257,54 @@ new OpenAPIHono().openapi(
2586
1257
  );
2587
1258
 
2588
1259
  const DOCUMENT_SIDE = ["front", "back"];
2589
- const paramsSchema$2 = z$1.object({
2590
- partyId: z$1.uuid()
2591
- });
2592
- const idDocumentCreateInputSchema = z$1.object({
2593
- partyId: z$1.uuid(),
2594
- idDocType: z$1.enum(ID_DOC_TYPE),
2595
- idDocNumber: z$1.string(),
2596
- idDocHolderName: z$1.string(),
2597
- issueDate: z$1.coerce.date().optional(),
2598
- expirationDate: z$1.coerce.date().optional(),
2599
- issuer: z$1.string().optional(),
2600
- countryOfIssue: z$1.enum(COUNTRY_CODES_2).optional(),
2601
- idDocStatus: z$1.enum(ID_DOC_STATUS).optional()
2602
- });
2603
- const idDocumentMultipartSchema = z$1.object({
2604
- idDocument: z$1.string(),
2605
- documentSide: z$1.enum(DOCUMENT_SIDE),
2606
- file: z$1.any()
2607
- });
2608
- const multipartOpenApiSchema = z$1.object({
2609
- idDocument: z$1.string().openapi({
1260
+ const paramsSchema$2 = z.object({
1261
+ partyId: z.uuid()
1262
+ });
1263
+ const idDocumentCreateInputSchema = z.object({
1264
+ partyId: z.uuid(),
1265
+ idDocType: z.enum(ID_DOC_TYPE),
1266
+ idDocNumber: z.string(),
1267
+ idDocHolderName: z.string(),
1268
+ issueDate: z.coerce.date().optional(),
1269
+ expirationDate: z.coerce.date().optional(),
1270
+ issuer: z.string().optional(),
1271
+ countryOfIssue: z.enum(COUNTRY_CODES_2).optional(),
1272
+ idDocStatus: z.enum(ID_DOC_STATUS).optional()
1273
+ });
1274
+ const idDocumentMultipartSchema = z.object({
1275
+ idDocument: z.string(),
1276
+ documentSide: z.enum(DOCUMENT_SIDE),
1277
+ file: z.any()
1278
+ });
1279
+ const multipartOpenApiSchema = z.object({
1280
+ idDocument: z.string().openapi({
2610
1281
  description: "JSON stringified IdDocument payload"
2611
1282
  }),
2612
- documentSide: z$1.enum(DOCUMENT_SIDE),
2613
- file: z$1.any().openapi({
1283
+ documentSide: z.enum(DOCUMENT_SIDE),
1284
+ file: z.any().openapi({
2614
1285
  type: "string",
2615
1286
  format: "binary"
2616
1287
  })
2617
1288
  });
2618
- const idDocumentOutputSchema = z$1.object({
2619
- id: z$1.uuid(),
2620
- createdAt: z$1.iso.datetime().nullable(),
2621
- updatedAt: z$1.iso.datetime().nullable(),
2622
- deletedAt: z$1.iso.datetime().nullable(),
2623
- partyId: z$1.uuid(),
2624
- idDocType: z$1.enum(ID_DOC_TYPE),
2625
- idDocNumber: z$1.string(),
2626
- idDocHolderName: z$1.string(),
2627
- issueDate: z$1.iso.datetime().nullable(),
2628
- expirationDate: z$1.iso.datetime().nullable(),
2629
- issuer: z$1.string().nullable(),
2630
- countryOfIssue: z$1.enum(COUNTRY_CODES_2).nullable(),
2631
- frontImageUri: z$1.string().nullable(),
2632
- backImageUri: z$1.string().nullable(),
2633
- idDocStatus: z$1.enum(ID_DOC_STATUS).nullable()
2634
- });
2635
- const responseBodySchema$3 = z$1.object({
2636
- message: z$1.string(),
1289
+ const idDocumentOutputSchema = z.object({
1290
+ id: z.uuid(),
1291
+ createdAt: z.iso.datetime().nullable(),
1292
+ updatedAt: z.iso.datetime().nullable(),
1293
+ deletedAt: z.iso.datetime().nullable(),
1294
+ partyId: z.uuid(),
1295
+ idDocType: z.enum(ID_DOC_TYPE),
1296
+ idDocNumber: z.string(),
1297
+ idDocHolderName: z.string(),
1298
+ issueDate: z.iso.datetime().nullable(),
1299
+ expirationDate: z.iso.datetime().nullable(),
1300
+ issuer: z.string().nullable(),
1301
+ countryOfIssue: z.enum(COUNTRY_CODES_2).nullable(),
1302
+ frontImageUri: z.string().nullable(),
1303
+ backImageUri: z.string().nullable(),
1304
+ idDocStatus: z.enum(ID_DOC_STATUS).nullable()
1305
+ });
1306
+ const responseBodySchema$3 = z.object({
1307
+ message: z.string(),
2637
1308
  idDocument: idDocumentOutputSchema
2638
1309
  });
2639
1310
  const createDocumentRoute = createRoute({
@@ -2673,7 +1344,7 @@ const createDocumentRoute = createRoute({
2673
1344
  description: "Invalid request",
2674
1345
  content: {
2675
1346
  "application/json": {
2676
- schema: z$1.object({ message: z$1.string() })
1347
+ schema: z.object({ message: z.string() })
2677
1348
  }
2678
1349
  }
2679
1350
  },
@@ -2681,7 +1352,7 @@ const createDocumentRoute = createRoute({
2681
1352
  description: "Internal server error",
2682
1353
  content: {
2683
1354
  "application/json": {
2684
- schema: z$1.object({ message: z$1.string() })
1355
+ schema: z.object({ message: z.string() })
2685
1356
  }
2686
1357
  }
2687
1358
  }
@@ -2746,255 +1417,254 @@ new OpenAPIHono().openapi(
2746
1417
  }
2747
1418
  );
2748
1419
 
2749
- const partyBaseOutputSchema = z$1.object({
2750
- customerStatus: z$1.enum(CUSTOMER_STATUS),
2751
- partyType: z$1.enum(PARTY_TYPE),
2752
- language: z$1.enum(LANGUAGE_CODES),
2753
- id: z$1.uuid(),
2754
- internalId: z$1.string().nullable(),
2755
- note: z$1.string().nullable(),
2756
- countryCode: z$1.enum(COUNTRY_CODES_2).nullable(),
2757
- createdAt: z$1.date().nullable(),
2758
- updatedAt: z$1.date().nullable(),
2759
- isRoot: z$1.boolean()
2760
- });
2761
- const individualOutputSchema = z$1.object({
2762
- id: z$1.uuid(),
2763
- partyId: z$1.uuid(),
2764
- internalId: z$1.string().nullable(),
2765
- name: z$1.string(),
2766
- surname: z$1.string(),
2767
- email: z$1.string(),
2768
- phone: z$1.string().nullable(),
2769
- birthDate: z$1.string(),
2770
- birthPlace: z$1.string().nullable(),
2771
- countryOfBirth: z$1.enum(COUNTRY_CODES_2).nullable(),
2772
- personalId: z$1.string(),
2773
- gender: z$1.enum(GENDER),
2774
- citizenship: z$1.enum(COUNTRY_CODES_2),
2775
- citizenshipOther: z$1.enum(COUNTRY_CODES_2).nullable(),
2776
- employer: z$1.string().nullable(),
2777
- employerCountry: z$1.enum(COUNTRY_CODES_2).nullable(),
2778
- registeredNumber: z$1.string().nullable(),
2779
- isPep: z$1.boolean(),
2780
- titleBefore: z$1.string().nullable(),
2781
- titleAfter: z$1.string().nullable(),
2782
- birthSurname: z$1.string().nullable(),
2783
- vocativeTitle: z$1.string().nullable(),
2784
- deathDate: z$1.coerce.date().nullable(),
2785
- deathNotification: z$1.coerce.date().nullable(),
2786
- pin: z$1.string().nullable(),
2787
- stayAbroad: z$1.boolean().nullable(),
2788
- stayAbroadCountries: z$1.enum(COUNTRY_CODES_2).nullable(),
2789
- createdAt: z$1.coerce.date().nullable(),
2790
- updatedAt: z$1.coerce.date().nullable(),
2791
- identityDocuments: z$1.array(idDocumentOutputSchema).nullable()
2792
- });
2793
- const createOrganizationOutputSchema = z$1.object({
2794
- partyId: z$1.uuid(),
2795
- internalId: z$1.string().nullable(),
2796
- businessName: z$1.string(),
2797
- email: z$1.string().nullable(),
2798
- phone: z$1.string().nullable(),
2799
- registeredNumber: z$1.string(),
2800
- registeredIn: z$1.enum(COUNTRY_CODES_2),
2801
- operatesIn: z$1.enum(COUNTRY_CODES_2),
2802
- presentIn: z$1.enum(COUNTRY_CODES_2),
2803
- monthlyVolumeIn: z$1.number(),
2804
- monthlyVolumeOut: z$1.number(),
2805
- ownedBy: z$1.string(),
2806
- companyObjects: z$1.array(z$1.enum(CZ_NACE_CODES)),
2807
- annualTurnover: z$1.number(),
2808
- numberOfEmployees: z$1.number().nullable(),
2809
- prosecuted: z$1.string().nullable(),
2810
- location: z$1.string().nullable(),
2811
- fileNumber: z$1.string().nullable(),
2812
- websiteUrl: z$1.string().nullable(),
2813
- vatPayer: z$1.boolean(),
2814
- companyObjectsDescription: z$1.string(),
2815
- turnover3years: z$1.number(),
2816
- operationCountries: z$1.string(),
2817
- riskyBusinessType: z$1.string().nullable(),
2818
- vatId: z$1.string().nullable(),
2819
- court: z$1.enum(COURT).nullable(),
2820
- registerUri: z$1.string().nullable()
2821
- });
2822
- const bankAccountOutputSchema = z$1.object({
2823
- id: z$1.string(),
2824
- partyId: z$1.uuid(),
2825
- internalId: z$1.string().nullable(),
2826
- holderName: z$1.string(),
2827
- number: z$1.string().nullable(),
2828
- bankCode: z$1.string().nullable(),
2829
- currency: z$1.string(),
2830
- countryCode: z$1.string(),
2831
- iban: z$1.string().nullable(),
2832
- address: z$1.string().nullable(),
2833
- swiftBic: z$1.string().nullable(),
2834
- bicCor: z$1.string().nullable(),
2835
- routingNumber: z$1.string().nullable(),
2836
- sortCode: z$1.string().nullable(),
2837
- clabe: z$1.string().nullable(),
2838
- bsb: z$1.string().nullable(),
2839
- brBankNumber: z$1.string().nullable(),
2840
- updatedAt: z$1.coerce.date().nullable(),
2841
- statementUri: z$1.string().nullable()
2842
- });
2843
- const disponentOutputSchema = z$1.discriminatedUnion("partyType", [
2844
- z$1.object({
2845
- partyType: z$1.literal("INDIVIDUAL"),
2846
- data: individualOutputSchema.nullable()
2847
- }),
2848
- z$1.object({
2849
- partyType: z$1.literal("ORGANIZATION"),
2850
- data: createOrganizationOutputSchema.nullable()
2851
- })
2852
- ]);
2853
- const createAddressOutputSchema = z$1.object({
2854
- id: z$1.uuid(),
2855
- partyId: z$1.uuid(),
2856
- internalId: z$1.string().nullable(),
2857
- addressType: z$1.enum(ADDRESS_TYPE),
2858
- street: z$1.string().nullable(),
2859
- orientationNumber: z$1.string().nullable(),
2860
- descriptiveNumber: z$1.string().nullable(),
2861
- municipality: z$1.string(),
2862
- municipalityPart: z$1.string().nullable(),
2863
- zipCode: z$1.string(),
2864
- district: z$1.string().nullable(),
2865
- region: z$1.string().nullable(),
2866
- countryCode: z$1.enum(COUNTRY_CODES_2),
2867
- ruianCode: z$1.string().nullable(),
2868
- createdAt: z$1.date().nullable(),
2869
- updatedAt: z$1.date().nullable()
2870
- });
2871
- const businessPartnerOutputSchema = z$1.object({
2872
- name: z$1.string(),
2873
- country: z$1.string(),
2874
- cooperationReason: z$1.string().nullable()
2875
- });
2876
- const foSourceOfWealthOutputSchema = z$1.object({
2877
- incomeSources: z$1.array(z$1.enum(INCOME_SOURCE)),
2878
- incomeSourceOther: z$1.string().nullable(),
2879
- monthlyIncome: z$1.enum(MONTHLY_INCOME_RANGE),
2880
- employer: z$1.string().nullable(),
2881
- employerCountry: z$1.string().nullable()
2882
- });
2883
- const businessSourceOfWealthOutputSchema = z$1.object({
2884
- financialFundsSources: z$1.array(z$1.enum(FINANCIAL_FUNDS_SOURCE)),
2885
- financialFundsSourceOther: z$1.string().nullable(),
2886
- mainBusinessSubjects: z$1.array(z$1.enum(CZ_TRADE_LICENSE_CODES)),
2887
- companyTurnover: z$1.enum(COMPANY_TURNOVER_RANGE),
2888
- operatingCountries: z$1.array(z$1.enum(OPERATING_COUNTRY)),
2889
- operatingCountriesOther: z$1.array(z$1.enum(COUNTRY_CODES_2)).nullable(),
2890
- businessPartners: z$1.array(businessPartnerOutputSchema).nullable(),
2891
- businessActivitiesNote: z$1.string().nullable()
2892
- });
2893
- const createAmlOutputSchema = z$1.object({
2894
- id: z$1.uuid(),
2895
- partyId: z$1.uuid(),
2896
- internalId: z$1.string().nullable(),
2897
- sourceOfWealth: z$1.union([
1420
+ const partyBaseOutputSchema = z.object({
1421
+ customerStatus: z.enum(CUSTOMER_STATUS),
1422
+ partyType: z.enum(PARTY_TYPE),
1423
+ language: z.enum(LANGUAGE_CODES),
1424
+ id: z.uuid(),
1425
+ internalId: z.string().nullable(),
1426
+ note: z.string().nullable(),
1427
+ countryCode: z.enum(COUNTRY_CODES_2).nullable(),
1428
+ createdAt: z.iso.datetime().nullable(),
1429
+ updatedAt: z.iso.datetime().nullable(),
1430
+ deletedAt: z.iso.datetime().nullable(),
1431
+ deletedBy: z.string().nullable(),
1432
+ isRoot: z.boolean()
1433
+ });
1434
+ const individualOutputSchema = z.object({
1435
+ id: z.uuid(),
1436
+ partyId: z.uuid(),
1437
+ internalId: z.string().nullable(),
1438
+ name: z.string(),
1439
+ surname: z.string(),
1440
+ email: z.string(),
1441
+ phone: z.string().nullable(),
1442
+ birthDate: z.string(),
1443
+ birthPlace: z.string().nullable(),
1444
+ countryOfBirth: z.enum(COUNTRY_CODES_2).nullable(),
1445
+ personalId: z.string(),
1446
+ gender: z.enum(GENDER),
1447
+ citizenship: z.enum(COUNTRY_CODES_2),
1448
+ citizenshipOther: z.enum(COUNTRY_CODES_2).nullable(),
1449
+ employer: z.string().nullable(),
1450
+ employerCountry: z.enum(COUNTRY_CODES_2).nullable(),
1451
+ registeredNumber: z.string().nullable(),
1452
+ isPep: z.boolean(),
1453
+ titleBefore: z.string().nullable(),
1454
+ titleAfter: z.string().nullable(),
1455
+ birthSurname: z.string().nullable(),
1456
+ vocativeTitle: z.string().nullable(),
1457
+ deathDate: z.iso.datetime().nullable(),
1458
+ deathNotification: z.iso.datetime().nullable(),
1459
+ pin: z.string().nullable(),
1460
+ stayAbroad: z.boolean().nullable(),
1461
+ stayAbroadCountries: z.enum(COUNTRY_CODES_2).nullable(),
1462
+ createdAt: z.iso.datetime().nullable(),
1463
+ updatedAt: z.iso.datetime().nullable(),
1464
+ identityDocuments: z.array(idDocumentOutputSchema).nullable()
1465
+ });
1466
+ const createOrganizationOutputSchema = z.object({
1467
+ id: z.uuid(),
1468
+ partyId: z.uuid(),
1469
+ internalId: z.string().nullable(),
1470
+ businessName: z.string(),
1471
+ email: z.string().nullable(),
1472
+ phone: z.string().nullable(),
1473
+ registeredNumber: z.string(),
1474
+ registeredIn: z.enum(COUNTRY_CODES_2),
1475
+ operatesIn: z.enum(COUNTRY_CODES_2),
1476
+ presentIn: z.enum(COUNTRY_CODES_2),
1477
+ monthlyVolumeIn: z.number(),
1478
+ monthlyVolumeOut: z.number(),
1479
+ ownedBy: z.string(),
1480
+ companyObjects: z.array(z.enum(CZ_NACE_CODES)),
1481
+ annualTurnover: z.number(),
1482
+ numberOfEmployees: z.number().nullable(),
1483
+ prosecuted: z.string().nullable(),
1484
+ location: z.string().nullable(),
1485
+ fileNumber: z.string().nullable(),
1486
+ websiteUrl: z.string().nullable(),
1487
+ vatPayer: z.boolean(),
1488
+ companyObjectsDescription: z.string(),
1489
+ turnover3years: z.number(),
1490
+ operationCountries: z.string(),
1491
+ riskyBusinessType: z.string().nullable(),
1492
+ vatId: z.string().nullable(),
1493
+ court: z.enum(COURT).nullable(),
1494
+ registerUri: z.string().nullable()
1495
+ });
1496
+ const bankAccountOutputSchema = z.object({
1497
+ id: z.string(),
1498
+ partyId: z.uuid(),
1499
+ internalId: z.string().nullable(),
1500
+ holderName: z.string(),
1501
+ number: z.string().nullable(),
1502
+ bankCode: z.string().nullable(),
1503
+ currency: z.string(),
1504
+ countryCode: z.string(),
1505
+ iban: z.string().nullable(),
1506
+ address: z.string().nullable(),
1507
+ swiftBic: z.string().nullable(),
1508
+ bicCor: z.string().nullable(),
1509
+ routingNumber: z.string().nullable(),
1510
+ sortCode: z.string().nullable(),
1511
+ clabe: z.string().nullable(),
1512
+ bsb: z.string().nullable(),
1513
+ brBankNumber: z.string().nullable(),
1514
+ updatedAt: z.iso.datetime().nullable(),
1515
+ statementUri: z.string().nullable()
1516
+ });
1517
+ const disponentOutputSchema = z.object({
1518
+ partyType: z.literal("INDIVIDUAL"),
1519
+ data: individualOutputSchema.nullable()
1520
+ });
1521
+ const createAddressOutputSchema = z.object({
1522
+ id: z.uuid(),
1523
+ partyId: z.uuid(),
1524
+ internalId: z.string().nullable(),
1525
+ addressType: z.enum(ADDRESS_TYPE),
1526
+ street: z.string().nullable(),
1527
+ orientationNumber: z.string().nullable(),
1528
+ descriptiveNumber: z.string().nullable(),
1529
+ municipality: z.string(),
1530
+ municipalityPart: z.string().nullable(),
1531
+ zipCode: z.string(),
1532
+ district: z.string().nullable(),
1533
+ region: z.string().nullable(),
1534
+ countryCode: z.enum(COUNTRY_CODES_2),
1535
+ ruianCode: z.string().nullable(),
1536
+ createdAt: z.iso.datetime().nullable(),
1537
+ updatedAt: z.iso.datetime().nullable()
1538
+ });
1539
+ const businessPartnerOutputSchema = z.object({
1540
+ name: z.string(),
1541
+ country: z.string(),
1542
+ cooperationReason: z.string().nullable()
1543
+ });
1544
+ const foSourceOfWealthOutputSchema = z.object({
1545
+ incomeSources: z.array(z.enum(INCOME_SOURCE)),
1546
+ incomeSourceOther: z.string().nullable(),
1547
+ monthlyIncome: z.enum(MONTHLY_INCOME_RANGE),
1548
+ employer: z.string().nullable(),
1549
+ employerCountry: z.string().nullable()
1550
+ });
1551
+ const businessSourceOfWealthOutputSchema = z.object({
1552
+ financialFundsSources: z.array(z.enum(FINANCIAL_FUNDS_SOURCE)),
1553
+ financialFundsSourceOther: z.string().nullable(),
1554
+ mainBusinessSubjects: z.array(z.enum(CZ_TRADE_LICENSE_CODES)),
1555
+ companyTurnover: z.enum(COMPANY_TURNOVER_RANGE),
1556
+ operatingCountries: z.array(z.enum(OPERATING_COUNTRY)),
1557
+ operatingCountriesOther: z.array(z.enum(COUNTRY_CODES_2)).nullable(),
1558
+ businessPartners: z.array(businessPartnerOutputSchema).nullable(),
1559
+ businessActivitiesNote: z.string().nullable()
1560
+ });
1561
+ const createAmlOutputSchema = z.object({
1562
+ id: z.uuid(),
1563
+ partyId: z.uuid(),
1564
+ internalId: z.string().nullable(),
1565
+ sourceOfWealth: z.union([
2898
1566
  foSourceOfWealthOutputSchema,
2899
1567
  businessSourceOfWealthOutputSchema
2900
1568
  ]),
2901
- yearlyIncome: z$1.enum(YEARLY_INCOME),
2902
- sourceOfIncome: z$1.array(z$1.enum(INCOME_SOURCE)),
2903
- incomeSourceOther: z$1.string().nullable(),
2904
- servicePurposes: z$1.array(z$1.enum(SERVICE_PURPOSE)).nullable(),
2905
- servicePurposesOther: z$1.string().nullable(),
2906
- taxDomicile: z$1.enum(TAX_DOMICILE).nullable(),
2907
- taxDomicileCountry: z$1.enum(COUNTRY_CODES_2).nullable(),
2908
- transactionType: z$1.string().nullable(),
2909
- transactionTypeExpiry: z$1.date().nullable(),
2910
- isDistraint: z$1.boolean(),
2911
- estTxsVolumeMonth: z$1.enum(EST_TXS_VOLUME_MONTH),
2912
- estTxsVolumeYear: z$1.enum(EST_TXS_VOLUME_YEAR),
2913
- estTxsCountMonth: z$1.number().int().nullable(),
2914
- tradingCountries: z$1.array(z$1.enum(TARGET_COUNTRY)),
2915
- tradingCountriesOther: z$1.array(z$1.enum(COUNTRY_CODES_2)).nullable(),
2916
- tradingSide: z$1.enum(TRADING_SIDE),
2917
- acceptedAMLTermsAndConditions: z$1.boolean(),
2918
- signatureMethod: z$1.enum(SIGNATURE_METHOD).nullable(),
2919
- existencePeriod: z$1.enum(EXISTENCE_PERIOD).nullable(),
2920
- reputation: z$1.enum(REPUTATION).nullable(),
2921
- riskBusinessAreas: z$1.array(z$1.enum(RISK_BUSINESS_AREA)).nullable(),
2922
- riskLevel: z$1.enum(AML_SCORE_TYPE),
2923
- kycStatus: z$1.enum(KYC_STATUS).nullable(),
2924
- residencyAnswers: z$1.array(
2925
- z$1.object({
2926
- personName: z$1.string(),
2927
- personRole: z$1.enum(PERSON_ROLE),
2928
- answer: z$1.enum(YES_NO_UNKNOWN),
2929
- country: z$1.enum(COUNTRY_CODES_2).nullable()
1569
+ yearlyIncome: z.enum(YEARLY_INCOME),
1570
+ sourceOfIncome: z.array(z.enum(INCOME_SOURCE)),
1571
+ incomeSourceOther: z.string().nullable(),
1572
+ servicePurposes: z.array(z.enum(SERVICE_PURPOSE)).nullable(),
1573
+ servicePurposesOther: z.string().nullable(),
1574
+ taxDomicile: z.enum(TAX_DOMICILE).nullable(),
1575
+ taxDomicileCountry: z.enum(COUNTRY_CODES_2).nullable(),
1576
+ transactionType: z.string().nullable(),
1577
+ transactionTypeExpiry: z.iso.datetime().nullable(),
1578
+ isDistraint: z.boolean(),
1579
+ estTxsVolumeMonth: z.enum(EST_TXS_VOLUME_MONTH),
1580
+ estTxsVolumeYear: z.enum(EST_TXS_VOLUME_YEAR),
1581
+ estTxsCountMonth: z.number().int().nullable(),
1582
+ tradingCountries: z.array(z.enum(TARGET_COUNTRY)),
1583
+ tradingCountriesOther: z.array(z.enum(COUNTRY_CODES_2)).nullable(),
1584
+ tradingSide: z.enum(TRADING_SIDE),
1585
+ acceptedAMLTermsAndConditions: z.boolean(),
1586
+ signatureMethod: z.enum(SIGNATURE_METHOD).nullable(),
1587
+ existencePeriod: z.enum(EXISTENCE_PERIOD).nullable(),
1588
+ reputation: z.enum(REPUTATION).nullable(),
1589
+ riskBusinessAreas: z.array(z.enum(RISK_BUSINESS_AREA)).nullable(),
1590
+ riskLevel: z.enum(AML_SCORE_TYPE),
1591
+ kycStatus: z.enum(KYC_STATUS).nullable(),
1592
+ residencyAnswers: z.array(
1593
+ z.object({
1594
+ personName: z.string(),
1595
+ personRole: z.enum(PERSON_ROLE),
1596
+ answer: z.enum(YES_NO_UNKNOWN),
1597
+ country: z.enum(COUNTRY_CODES_2).nullable()
2930
1598
  })
2931
1599
  ).nullable(),
2932
- createdAt: z$1.date().nullable(),
2933
- updatedAt: z$1.date().nullable()
2934
- });
2935
- const ownerOutputSchema = z$1.object({
2936
- id: z$1.uuid().optional(),
2937
- name: z$1.string(),
2938
- surname: z$1.string(),
2939
- titleBefore: z$1.string().nullable(),
2940
- titleAfter: z$1.string().nullable(),
2941
- email: z$1.string(),
2942
- birthDate: z$1.string(),
2943
- birthPlace: z$1.string().nullable(),
2944
- personalId: z$1.string(),
2945
- gender: z$1.enum(GENDER),
2946
- citizenship: z$1.enum(COUNTRY_CODES_2),
2947
- isPep: z$1.boolean(),
2948
- sharePercentage: z$1.number().nullable(),
2949
- shareEstablishedAt: z$1.string().nullable(),
1600
+ createdAt: z.iso.datetime().nullable(),
1601
+ updatedAt: z.iso.datetime().nullable()
1602
+ });
1603
+ const ownerOutputSchema = z.object({
1604
+ id: z.uuid().optional(),
1605
+ name: z.string(),
1606
+ surname: z.string(),
1607
+ titleBefore: z.string().nullable(),
1608
+ titleAfter: z.string().nullable(),
1609
+ email: z.string(),
1610
+ birthDate: z.string(),
1611
+ birthPlace: z.string().nullable(),
1612
+ personalId: z.string(),
1613
+ gender: z.enum(GENDER),
1614
+ citizenship: z.enum(COUNTRY_CODES_2),
1615
+ isPep: z.boolean(),
1616
+ sharePercentage: z.number().nullable(),
1617
+ shareEstablishedAt: z.string().nullable(),
2950
1618
  address: createAddressOutputSchema.nullable()
2951
1619
  });
2952
- const legalRepresentativeOutputSchema = z$1.object({
2953
- id: z$1.uuid().optional(),
2954
- name: z$1.string(),
2955
- surname: z$1.string(),
2956
- titleBefore: z$1.string().nullable(),
2957
- titleAfter: z$1.string().nullable(),
2958
- email: z$1.string(),
2959
- birthDate: z$1.string(),
2960
- birthPlace: z$1.string().nullable(),
2961
- personalId: z$1.string(),
2962
- gender: z$1.enum(GENDER),
2963
- citizenship: z$1.enum(COUNTRY_CODES_2),
2964
- isPep: z$1.boolean(),
2965
- phone: z$1.string().nullable(),
2966
- pin: z$1.string().nullable(),
2967
- dateOfEstablishment: z$1.string().nullable(),
1620
+ const legalRepresentativeOutputSchema = z.object({
1621
+ id: z.uuid().optional(),
1622
+ name: z.string(),
1623
+ surname: z.string(),
1624
+ titleBefore: z.string().nullable(),
1625
+ titleAfter: z.string().nullable(),
1626
+ email: z.string(),
1627
+ birthDate: z.string(),
1628
+ birthPlace: z.string().nullable(),
1629
+ personalId: z.string(),
1630
+ gender: z.enum(GENDER),
1631
+ citizenship: z.enum(COUNTRY_CODES_2),
1632
+ isPep: z.boolean(),
1633
+ phone: z.string().nullable(),
1634
+ pin: z.string().nullable(),
1635
+ employer: z.string().nullable(),
1636
+ employerCountry: z.enum(COUNTRY_CODES_2).nullable(),
1637
+ dateOfEstablishment: z.string().nullable(),
2968
1638
  address: createAddressOutputSchema.nullable()
2969
1639
  });
2970
- const productsOutputSchema = z$1.object({
2971
- txs: z$1.object({
2972
- fee: z$1.number(),
2973
- margin: z$1.number(),
2974
- reportingEmail: z$1.string().nullable(),
2975
- clientType: z$1.enum(TXS_CLIENT_TYPE).nullable()
1640
+ const productsOutputSchema = z.object({
1641
+ txs: z.object({
1642
+ fee: z.number(),
1643
+ margin: z.number(),
1644
+ reportingEmail: z.string().nullable(),
1645
+ clientType: z.enum(TXS_CLIENT_TYPE).nullable()
2976
1646
  }).nullable(),
2977
- cbs: z$1.object({}).nullable()
1647
+ cbs: z.object({}).nullable()
2978
1648
  });
2979
1649
  const recipientOutputSchema = bankAccountOutputSchema.omit({
2980
1650
  statementUri: true
2981
1651
  });
2982
- const partyOutputSchema = z$1.object({
1652
+ const partyOutputSchema = z.object({
2983
1653
  party: partyBaseOutputSchema.nullable(),
2984
1654
  personalData: individualOutputSchema.nullable(),
2985
1655
  organizationData: createOrganizationOutputSchema.nullable(),
2986
- bankAccounts: z$1.array(bankAccountOutputSchema).nullable(),
2987
- disponents: z$1.array(disponentOutputSchema).nullable(),
2988
- addresses: z$1.array(createAddressOutputSchema).nullable(),
1656
+ bankAccounts: z.array(bankAccountOutputSchema).nullable(),
1657
+ disponents: z.array(disponentOutputSchema).nullable(),
1658
+ addresses: z.array(createAddressOutputSchema).nullable(),
2989
1659
  aml: createAmlOutputSchema.nullable(),
2990
- recipients: z$1.array(recipientOutputSchema).nullable(),
1660
+ recipients: z.array(recipientOutputSchema).nullable(),
2991
1661
  products: productsOutputSchema.nullable(),
2992
- traderIds: z$1.array(z$1.uuid()).nullable(),
2993
- owners: z$1.array(ownerOutputSchema).nullable(),
2994
- legalRepresentatives: z$1.array(legalRepresentativeOutputSchema).nullable()
1662
+ traderIds: z.array(z.uuid()).nullable(),
1663
+ owners: z.array(ownerOutputSchema).nullable(),
1664
+ legalRepresentatives: z.array(legalRepresentativeOutputSchema).nullable()
2995
1665
  });
2996
- const responseBodySchema$2 = z$1.object({
2997
- message: z$1.string(),
1666
+ const responseBodySchema$2 = z.object({
1667
+ message: z.string(),
2998
1668
  party: partyOutputSchema
2999
1669
  });
3000
1670
  const getPartyByPartyIdRoute = createRoute({
@@ -3004,7 +1674,7 @@ const getPartyByPartyIdRoute = createRoute({
3004
1674
  tags: ["Parties"],
3005
1675
  description: "Retrieves a single party aggregate by its ID, including all related data \u2014 personal/organization info, bank accounts, addresses, disponents, AML, recipients, and products.",
3006
1676
  request: {
3007
- params: z$1.object({ partyId: z$1.uuid() })
1677
+ params: z.object({ partyId: z.uuid() })
3008
1678
  },
3009
1679
  responses: {
3010
1680
  200: {
@@ -3036,7 +1706,16 @@ new OpenAPIHono().openapi(
3036
1706
  }
3037
1707
  );
3038
1708
 
3039
- const partiesOutputDataSchema = z$1.array(partyOutputSchema);
1709
+ const paginationAndSearchSchema = z.object({
1710
+ page: z.coerce.number().positive().default(1),
1711
+ limit: z.coerce.number().positive().default(20),
1712
+ column: z.string(),
1713
+ direction: z.enum(["asc", "desc"]),
1714
+ search: z.string().optional(),
1715
+ ids: z.string().array().optional(),
1716
+ includeDeleted: z.string().transform((v) => v === "true").optional()
1717
+ });
1718
+ const partiesOutputDataSchema = z.array(partyOutputSchema);
3040
1719
  const getPartiesRoute = createRoute({
3041
1720
  method: "get",
3042
1721
  path: "/",
@@ -3049,18 +1728,18 @@ const getPartiesRoute = createRoute({
3049
1728
  description: "Internal Server Error",
3050
1729
  content: {
3051
1730
  "application/json": {
3052
- schema: routeError
1731
+ schema: z.object({ message: z.string() })
3053
1732
  }
3054
1733
  }
3055
1734
  },
3056
1735
  200: {
3057
1736
  content: {
3058
1737
  "application/json": {
3059
- schema: z$1.object({
3060
- message: z$1.string(),
3061
- data: z$1.object({
1738
+ schema: z.object({
1739
+ message: z.string(),
1740
+ data: z.object({
3062
1741
  parties: partiesOutputDataSchema,
3063
- totalCount: z$1.number()
1742
+ totalCount: z.number()
3064
1743
  })
3065
1744
  })
3066
1745
  }
@@ -3072,50 +1751,30 @@ const getPartiesRoute = createRoute({
3072
1751
  new OpenAPIHono().openapi(
3073
1752
  getPartiesRoute,
3074
1753
  async (context) => {
3075
- const query = context.req.query();
3076
- const validatedQuery = {
3077
- page: query.page ? Number(query.page) : 1,
3078
- limit: query.limit ? Number(query.limit) : 10,
3079
- column: query.column || "createdAt",
3080
- direction: query.direction || "desc",
3081
- search: query.search,
3082
- ids: query.ids ? Array.isArray(query.ids) ? query.ids : [query.ids] : void 0
3083
- };
1754
+ const validatedQuery = context.req.valid("query");
3084
1755
  const {
3085
1756
  data: parties,
3086
1757
  error,
3087
- message,
3088
- status
1758
+ message
3089
1759
  } = await context.env.MASTER_DATA_MANAGEMENT_SERVICE.getParties(
3090
1760
  validatedQuery
3091
1761
  );
3092
1762
  if (error || !parties) {
3093
- return context.json(
3094
- {
3095
- message: "Failed to get parties",
3096
- data: null,
3097
- errorDetail: {
3098
- message,
3099
- code: status
3100
- },
3101
- error: true
3102
- },
3103
- 500
3104
- );
1763
+ return context.json({ message: message || "Failed to get parties" }, 500);
3105
1764
  }
3106
1765
  return context.json({ message, data: parties }, 200);
3107
1766
  }
3108
1767
  );
3109
1768
 
3110
- const XIdempotencyKeyHeaderSchema = z$1.string().openapi({
1769
+ const XIdempotencyKeyHeaderSchema = z.string().openapi({
3111
1770
  description: "Unique identifier header to ensure the request is processed only once.",
3112
1771
  example: "4ac15c22-2bd3-426f-b915-bfd5febdb7df"
3113
1772
  });
3114
- const XSignatureHeaderSchema = z$1.string().openapi({
1773
+ const XSignatureHeaderSchema = z.string().openapi({
3115
1774
  description: "Payload signature header to verify request body integrity.",
3116
1775
  example: "FIXAxHO6QqH3M7t4MatM8U6l/nIqWj7jIEW2U6/771MGUorSywy+GmKIG3B1mxT1jR7qPtBHQ5YSO8O53iCvOh6kIhbGXtVe/3C61dsEykLbmntV3nF4DY8/HyfF8a6c2Asc5bvgHrhosGi3s/ouoNowMpsckyq66We8H5gRbXlqJm4Bl1zWWQah4aQLX548L8DLx5+EIgArNMVVG8ryCES99aovJBKrQQMpQLwss1sSFuUZ1kdBCodtvxgTOXOugnZ1UNCmUNFXryQ6bn7wY7Punml/rwR/zTQ9j4SX07iFeQC5rgm9/zi29DBluegu+b8/G8oXrf6L4hugbMEKJfLRfKjNHCrjCooKtInoYxwNEfJyJ9mhqdBoeIBca9zgPpewdbwFLXVV82TYR+xZiywDcHKQ62IzQp07NOMCl4xArSJ3vIWUftSYpLIwomyjQEbY27oGiubUF4krEKgHnMYalCn0ruYOwFik2Pa6FEfIZo0TSXDC24UHQb5mJNPYpv2hny7U5CZPmBvjaRGMVnE+WgRUT19cwqlSL3pWAfeSn1Wro7lYBp/PmlRPgYIxl9GJwNlQ0G+NzP9cMSJbmI5fwErDNgJAaPaMwZbJ3y8ikmbBkkXNPKvQrWVGCJ4nP+/f8yYzMZq272EFx984pSoo2yAeBJnrxbW+AlZxyIo="
3117
1776
  });
3118
- const XSignatureKeyHeaderSchema = z$1.string().openapi({
1777
+ const XSignatureKeyHeaderSchema = z.string().openapi({
3119
1778
  description: "Signature key identifier header to specify which key was used for payload signing.",
3120
1779
  example: "ixtal"
3121
1780
  });
@@ -3124,30 +1783,30 @@ const ALLOWED_ID_DOCUMENTS_FILTERS = {
3124
1783
  ISSUER: "filterIdDocumentIssuer"
3125
1784
  };
3126
1785
 
3127
- const idDocumentsListOutputSchema = z$1.object({
3128
- totalCount: z$1.number(),
3129
- idDocuments: z$1.array(idDocumentOutputSchema)
1786
+ const idDocumentsListOutputSchema = z.object({
1787
+ totalCount: z.number(),
1788
+ idDocuments: z.array(idDocumentOutputSchema)
3130
1789
  });
3131
- const paramsSchema$1 = z$1.object({
3132
- partyId: z$1.uuid()
1790
+ const paramsSchema$1 = z.object({
1791
+ partyId: z.uuid()
3133
1792
  });
3134
- const arrayQuery = (schema) => z$1.preprocess((val) => {
1793
+ const arrayQuery = (schema) => z.preprocess((val) => {
3135
1794
  if (typeof val === "string") {
3136
1795
  return val.includes(",") ? val.split(",") : [val];
3137
1796
  }
3138
1797
  return val;
3139
1798
  }, schema.array()).optional();
3140
- const querySchema = z$1.object({
3141
- page: z$1.coerce.number().positive().default(1),
3142
- limit: z$1.coerce.number().positive().default(20),
3143
- sortColumn: z$1.string().default("updatedAt"),
3144
- sortDirection: z$1.enum(["asc", "desc"]).default("desc"),
3145
- [ALLOWED_ID_DOCUMENTS_FILTERS.PARTY_ID]: arrayQuery(z$1.uuid()),
3146
- [ALLOWED_ID_DOCUMENTS_FILTERS.ISSUER]: arrayQuery(z$1.string()),
3147
- search: z$1.string().optional()
3148
- });
3149
- const responseBodySchema$1 = z$1.object({
3150
- message: z$1.string(),
1799
+ const querySchema = z.object({
1800
+ page: z.coerce.number().positive().default(1),
1801
+ limit: z.coerce.number().positive().default(20),
1802
+ sortColumn: z.string().default("updatedAt"),
1803
+ sortDirection: z.enum(["asc", "desc"]).default("desc"),
1804
+ [ALLOWED_ID_DOCUMENTS_FILTERS.PARTY_ID]: arrayQuery(z.uuid()),
1805
+ [ALLOWED_ID_DOCUMENTS_FILTERS.ISSUER]: arrayQuery(z.string()),
1806
+ search: z.string().optional()
1807
+ });
1808
+ const responseBodySchema$1 = z.object({
1809
+ message: z.string(),
3151
1810
  idDocumentsList: idDocumentsListOutputSchema
3152
1811
  });
3153
1812
  const getIdDocumentsListRoute = createRoute({
@@ -3173,7 +1832,7 @@ const getIdDocumentsListRoute = createRoute({
3173
1832
  description: "ID documents not found",
3174
1833
  content: {
3175
1834
  "application/json": {
3176
- schema: z$1.object({ message: z$1.string() })
1835
+ schema: z.object({ message: z.string() })
3177
1836
  }
3178
1837
  }
3179
1838
  },
@@ -3181,7 +1840,7 @@ const getIdDocumentsListRoute = createRoute({
3181
1840
  description: "Internal server error",
3182
1841
  content: {
3183
1842
  "application/json": {
3184
- schema: z$1.object({ message: z$1.string() })
1843
+ schema: z.object({ message: z.string() })
3185
1844
  }
3186
1845
  }
3187
1846
  }
@@ -3217,24 +1876,24 @@ new OpenAPIHono().openapi(
3217
1876
  }
3218
1877
  );
3219
1878
 
3220
- const paramsSchema = z$1.object({
3221
- id: z$1.uuid()
3222
- });
3223
- const idDocumentUpdateInputSchema = z$1.object({
3224
- partyId: z$1.uuid().optional(),
3225
- idDocType: z$1.enum(ID_DOC_TYPE).optional(),
3226
- idDocNumber: z$1.string().optional(),
3227
- idDocHolderName: z$1.string().optional(),
3228
- issueDate: z$1.coerce.date().optional(),
3229
- expirationDate: z$1.coerce.date().optional(),
3230
- issuer: z$1.string().optional(),
3231
- countryOfIssue: z$1.enum(COUNTRY_CODES_2).optional(),
3232
- frontImageUri: z$1.string().optional(),
3233
- backImageUri: z$1.string().optional(),
3234
- idDocStatus: z$1.enum(ID_DOC_STATUS).optional()
3235
- });
3236
- const responseBodySchema = z$1.object({
3237
- message: z$1.string(),
1879
+ const paramsSchema = z.object({
1880
+ id: z.uuid()
1881
+ });
1882
+ const idDocumentUpdateInputSchema = z.object({
1883
+ partyId: z.uuid().optional(),
1884
+ idDocType: z.enum(ID_DOC_TYPE).optional(),
1885
+ idDocNumber: z.string().optional(),
1886
+ idDocHolderName: z.string().optional(),
1887
+ issueDate: z.coerce.date().optional(),
1888
+ expirationDate: z.coerce.date().optional(),
1889
+ issuer: z.string().optional(),
1890
+ countryOfIssue: z.enum(COUNTRY_CODES_2).optional(),
1891
+ frontImageUri: z.string().optional(),
1892
+ backImageUri: z.string().optional(),
1893
+ idDocStatus: z.enum(ID_DOC_STATUS).optional()
1894
+ });
1895
+ const responseBodySchema = z.object({
1896
+ message: z.string(),
3238
1897
  idDocument: idDocumentOutputSchema
3239
1898
  });
3240
1899
  const updateIdDocumentRoute = createRoute({
@@ -3246,7 +1905,7 @@ const updateIdDocumentRoute = createRoute({
3246
1905
  middleware: [jwt, signature(), idempotency()],
3247
1906
  security: [{ JwtAuth: [] }],
3248
1907
  request: {
3249
- headers: z$1.object({
1908
+ headers: z.object({
3250
1909
  "X-Idempotency-Key": XIdempotencyKeyHeaderSchema,
3251
1910
  "X-Signature": XSignatureHeaderSchema,
3252
1911
  "X-Signature-Key": XSignatureKeyHeaderSchema
@@ -3274,7 +1933,7 @@ const updateIdDocumentRoute = createRoute({
3274
1933
  description: "ID document not found",
3275
1934
  content: {
3276
1935
  "application/json": {
3277
- schema: z$1.object({ message: z$1.string() })
1936
+ schema: z.object({ message: z.string() })
3278
1937
  }
3279
1938
  }
3280
1939
  },
@@ -3282,7 +1941,7 @@ const updateIdDocumentRoute = createRoute({
3282
1941
  description: "Internal server error",
3283
1942
  content: {
3284
1943
  "application/json": {
3285
- schema: z$1.object({ message: z$1.string() })
1944
+ schema: z.object({ message: z.string() })
3286
1945
  }
3287
1946
  }
3288
1947
  }
@@ -3318,8 +1977,8 @@ new OpenAPIHono().openapi(
3318
1977
  }
3319
1978
  );
3320
1979
 
3321
- const messageResponseSchema = z$1.object({
3322
- message: z$1.string()
1980
+ const messageResponseSchema = z.object({
1981
+ message: z.string()
3323
1982
  });
3324
1983
 
3325
- export { ADDRESS_TYPE$1 as ADDRESS_TYPE, AML_SCORE_TYPE$1 as AML_SCORE_TYPE, CLIENT_STATUS_ACTION, COMPANY_TURNOVER_RANGE$1 as COMPANY_TURNOVER_RANGE, CONTACT_TYPE$1 as CONTACT_TYPE, CUSTOMER_STATUS$1 as CUSTOMER_STATUS, DOCUMENT_SIDE, EST_TXS_VOLUME_MONTH$1 as EST_TXS_VOLUME_MONTH, EST_TXS_VOLUME_YEAR$1 as EST_TXS_VOLUME_YEAR, EXISTENCE_PERIOD$1 as EXISTENCE_PERIOD, FINANCIAL_FUNDS_SOURCE$1 as FINANCIAL_FUNDS_SOURCE, GENDER$1 as GENDER, IDENTIFICATION_TYPE, ID_DOC_STATUS$1 as ID_DOC_STATUS, ID_DOC_TYPE$1 as ID_DOC_TYPE, INCOME_SOURCE$1 as INCOME_SOURCE, KYC_STATUS$1 as KYC_STATUS, MONTHLY_INCOME_RANGE$1 as MONTHLY_INCOME_RANGE, OPERATING_COUNTRY$1 as OPERATING_COUNTRY, PARTY_RELATIONSHIP_TYPE$1 as PARTY_RELATIONSHIP_TYPE, PARTY_TYPE$1 as PARTY_TYPE, PRODUCT_TYPE$1 as PRODUCT_TYPE, REPUTATION$1 as REPUTATION, RISK_BUSINESS_AREA$1 as RISK_BUSINESS_AREA, SERVICE_PURPOSE$1 as SERVICE_PURPOSE, SERVICE_PURPOSE_COMPANY$1 as SERVICE_PURPOSE_COMPANY, SERVICE_PURPOSE_FO$1 as SERVICE_PURPOSE_FO, SIGNATURE_METHOD$1 as SIGNATURE_METHOD, TARGET_COUNTRY$1 as TARGET_COUNTRY, TAX_DOMICILE$1 as TAX_DOMICILE, TRADER_TYPE$1 as TRADER_TYPE, TRADING_SIDE$1 as TRADING_SIDE, TXS_CLIENT_TYPE$1 as TXS_CLIENT_TYPE, YEARLY_INCOME$1 as YEARLY_INCOME, YES_NO_UNKNOWN$1 as YES_NO_UNKNOWN, createMdmClient, createPartyInputSchema, idDocumentCreateInputSchema, idDocumentMultipartSchema, idDocumentOutputSchema, idDocumentUpdateInputSchema, idDocumentsListOutputSchema, messageResponseSchema, partiesOutputDataSchema, partyCreateOutputSchema, partyOutputSchema, partySchema$1 as partySchema, partyUpdateInputSchema, productsInputSchema$1 as productsInputSchema, productsOutputSchema, updatePartyOuputSchema };
1984
+ 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 };