@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.d.mts +13872 -16934
- package/dist/v1/index.d.ts +13872 -16934
- package/dist/v1/index.mjs +862 -2203
- package/package.json +1 -1
package/dist/v1/index.mjs
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
import { hc } from 'hono/client';
|
|
2
|
-
import { z
|
|
3
|
-
import { COUNTRY_CODES_2, LANGUAGE_CODES,
|
|
4
|
-
import {
|
|
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
|
|
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
|
|
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
|
|
81
|
-
const PRODUCT_TYPE
|
|
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
|
|
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
|
|
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
|
|
136
|
-
...SERVICE_PURPOSE_COMPANY
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
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
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
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
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
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
|
|
581
|
-
|
|
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
|
-
|
|
639
|
-
|
|
640
|
-
|
|
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
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
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
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
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
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
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
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
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
|
|
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.
|
|
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
|
|
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(
|
|
707
|
-
|
|
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(
|
|
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
|
|
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:
|
|
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(
|
|
731
|
-
|
|
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
|
-
|
|
738
|
-
|
|
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(
|
|
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
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
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
|
|
776
|
-
|
|
777
|
-
|
|
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
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
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
|
|
2148
|
-
partyType: z
|
|
2149
|
-
language: z
|
|
2150
|
-
id: z
|
|
2151
|
-
internalId: z
|
|
2152
|
-
note: z
|
|
2153
|
-
countryCode: z
|
|
2154
|
-
});
|
|
2155
|
-
const idDocumentInputSchema = z
|
|
2156
|
-
id: z
|
|
2157
|
-
idDocType: z
|
|
2158
|
-
idDocNumber: z
|
|
2159
|
-
issueDate: z
|
|
2160
|
-
expirationDate: z
|
|
2161
|
-
issuer: z
|
|
2162
|
-
frontImageUri: z
|
|
2163
|
-
backImageUri: z
|
|
2164
|
-
});
|
|
2165
|
-
const individualUpdateSchema = z
|
|
2166
|
-
id: z
|
|
2167
|
-
partyId: z
|
|
2168
|
-
internalId: z
|
|
2169
|
-
name: z
|
|
2170
|
-
surname: z
|
|
2171
|
-
email: z
|
|
2172
|
-
phone: z
|
|
2173
|
-
birthDate: z
|
|
2174
|
-
birthPlace: z
|
|
2175
|
-
countryOfBirth: z
|
|
2176
|
-
personalId: z
|
|
2177
|
-
gender: z
|
|
2178
|
-
citizenship: z
|
|
2179
|
-
citizenshipOther: z
|
|
2180
|
-
employer: z
|
|
2181
|
-
employerCountry: z
|
|
2182
|
-
registeredNumber: z
|
|
2183
|
-
isPep: z
|
|
2184
|
-
titleBefore: z
|
|
2185
|
-
titleAfter: z
|
|
2186
|
-
birthSurname: z
|
|
2187
|
-
vocativeTitle: z
|
|
2188
|
-
deathDate: z
|
|
2189
|
-
deathNotification: z
|
|
2190
|
-
pin: z
|
|
2191
|
-
stayAbroad: z
|
|
2192
|
-
stayAbroadCountries: z
|
|
2193
|
-
identityDocuments: z
|
|
2194
|
-
});
|
|
2195
|
-
const organizationUpdateSchema = z
|
|
2196
|
-
id: z
|
|
2197
|
-
partyId: z
|
|
2198
|
-
internalId: z
|
|
2199
|
-
businessName: z
|
|
2200
|
-
email: z
|
|
2201
|
-
phone: z
|
|
2202
|
-
registeredNumber: z
|
|
2203
|
-
registeredIn: z
|
|
2204
|
-
operatesIn: z
|
|
2205
|
-
presentIn: z
|
|
2206
|
-
monthlyVolumeIn: z
|
|
2207
|
-
monthlyVolumeOut: z
|
|
2208
|
-
ownedBy: z
|
|
2209
|
-
companyObjects: z
|
|
2210
|
-
annualTurnover: z
|
|
2211
|
-
numberOfEmployees: z
|
|
2212
|
-
prosecuted: z
|
|
2213
|
-
location: z
|
|
2214
|
-
fileNumber: z
|
|
2215
|
-
websiteUrl: z
|
|
2216
|
-
vatPayer: z
|
|
2217
|
-
companyObjectsDescription: z
|
|
2218
|
-
turnover3years: z
|
|
2219
|
-
operationCountries: z
|
|
2220
|
-
riskyBusinessType: z
|
|
2221
|
-
vatId: z
|
|
2222
|
-
court: z
|
|
2223
|
-
registerUri: z
|
|
2224
|
-
});
|
|
2225
|
-
const syncBankAccountSchema = z
|
|
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
|
|
2228
|
-
internalId: z
|
|
2229
|
-
holderName: z
|
|
2230
|
-
number: z
|
|
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
|
|
2234
|
-
statementUri: z
|
|
2235
|
-
});
|
|
2236
|
-
const disponentIndividualSyncDataSchema = z
|
|
2237
|
-
id: z
|
|
2238
|
-
name: z
|
|
2239
|
-
surname: z
|
|
2240
|
-
email: z
|
|
2241
|
-
phone: z
|
|
2242
|
-
birthDate: z
|
|
2243
|
-
birthPlace: z
|
|
2244
|
-
countryOfBirth: z
|
|
2245
|
-
personalId: z
|
|
2246
|
-
gender: z
|
|
2247
|
-
citizenship: z
|
|
2248
|
-
citizenshipOther: z
|
|
2249
|
-
employer: z
|
|
2250
|
-
employerCountry: z
|
|
2251
|
-
registeredNumber: z
|
|
2252
|
-
isPep: z
|
|
2253
|
-
titleBefore: z
|
|
2254
|
-
titleAfter: z
|
|
2255
|
-
birthSurname: z
|
|
2256
|
-
vocativeTitle: z
|
|
2257
|
-
deathDate: z
|
|
2258
|
-
deathNotification: z
|
|
2259
|
-
pin: z
|
|
2260
|
-
stayAbroad: z
|
|
2261
|
-
stayAbroadCountries: z
|
|
2262
|
-
identityDocuments: z
|
|
2263
|
-
});
|
|
2264
|
-
const
|
|
2265
|
-
|
|
2266
|
-
|
|
2267
|
-
|
|
2268
|
-
|
|
2269
|
-
|
|
2270
|
-
|
|
2271
|
-
|
|
2272
|
-
|
|
2273
|
-
|
|
2274
|
-
|
|
2275
|
-
|
|
2276
|
-
|
|
2277
|
-
|
|
2278
|
-
|
|
2279
|
-
|
|
2280
|
-
|
|
2281
|
-
|
|
2282
|
-
|
|
2283
|
-
|
|
2284
|
-
|
|
2285
|
-
|
|
2286
|
-
|
|
2287
|
-
|
|
2288
|
-
|
|
2289
|
-
|
|
2290
|
-
|
|
2291
|
-
z
|
|
2292
|
-
|
|
2293
|
-
|
|
2294
|
-
|
|
2295
|
-
|
|
2296
|
-
|
|
2297
|
-
|
|
2298
|
-
|
|
2299
|
-
|
|
2300
|
-
|
|
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
|
|
2337
|
-
operatingCountriesOther: z
|
|
2338
|
-
businessPartners: z
|
|
2339
|
-
businessActivitiesNote: z
|
|
2340
|
-
});
|
|
2341
|
-
const updateAmlInputSchema = z
|
|
2342
|
-
id: z
|
|
2343
|
-
partyId: z
|
|
2344
|
-
internalId: z
|
|
2345
|
-
sourceOfWealth: z
|
|
2346
|
-
yearlyIncome: z
|
|
2347
|
-
sourceOfIncome: z
|
|
2348
|
-
incomeSourceOther: z
|
|
2349
|
-
servicePurposes: z
|
|
2350
|
-
servicePurposesOther: z
|
|
2351
|
-
taxDomicile: z
|
|
2352
|
-
taxDomicileCountry: z
|
|
2353
|
-
transactionType: z
|
|
2354
|
-
transactionTypeExpiry: z
|
|
2355
|
-
isDistraint: z
|
|
2356
|
-
estTxsVolumeMonth: z
|
|
2357
|
-
estTxsVolumeYear: z
|
|
2358
|
-
estTxsCountMonth: z
|
|
2359
|
-
tradingCountries: z
|
|
2360
|
-
tradingCountriesOther: z
|
|
2361
|
-
tradingSide: z
|
|
2362
|
-
acceptedAMLTermsAndConditions: z
|
|
2363
|
-
signatureMethod: z
|
|
2364
|
-
existencePeriod: z
|
|
2365
|
-
reputation: z
|
|
2366
|
-
riskBusinessAreas: z
|
|
2367
|
-
riskLevel: z
|
|
2368
|
-
kycStatus: z
|
|
2369
|
-
residencyAnswers: z
|
|
2370
|
-
z
|
|
2371
|
-
personName: z
|
|
2372
|
-
personRole: z
|
|
2373
|
-
answer: z
|
|
2374
|
-
country: z
|
|
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()
|
|
2377
|
-
});
|
|
2378
|
-
const productsInputSchema = z
|
|
2379
|
-
txs: z
|
|
2380
|
-
fee: z
|
|
2381
|
-
margin: z
|
|
2382
|
-
reportingEmail: z
|
|
2383
|
-
clientType: z
|
|
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
|
|
2386
|
-
});
|
|
2387
|
-
const ownerSyncSchema = z
|
|
2388
|
-
id: z
|
|
2389
|
-
titleBefore: z
|
|
2390
|
-
name: z
|
|
2391
|
-
surname: z
|
|
2392
|
-
titleAfter: z
|
|
2393
|
-
email: z
|
|
2394
|
-
birthDate: z
|
|
2395
|
-
birthPlace: z
|
|
2396
|
-
personalId: z
|
|
2397
|
-
gender: z
|
|
2398
|
-
citizenship: z
|
|
2399
|
-
isPep: z
|
|
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
|
|
2402
|
-
shareEstablishedAt: z
|
|
2403
|
-
});
|
|
2404
|
-
const legalRepresentativeSyncSchema = z
|
|
2405
|
-
id: z
|
|
2406
|
-
titleBefore: z
|
|
2407
|
-
name: z
|
|
2408
|
-
surname: z
|
|
2409
|
-
titleAfter: z
|
|
2410
|
-
email: z
|
|
2411
|
-
birthDate: z
|
|
2412
|
-
birthPlace: z
|
|
2413
|
-
personalId: z
|
|
2414
|
-
gender: z
|
|
2415
|
-
citizenship: z
|
|
2416
|
-
isPep: z
|
|
2417
|
-
phone: z
|
|
2418
|
-
pin: z
|
|
2419
|
-
identityDocuments: z
|
|
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
|
|
1092
|
+
dateOfEstablishment: z.string().min(1, "Datum vzniku funkce je povinn\xFD")
|
|
2422
1093
|
});
|
|
2423
|
-
const partyUpdateInputSchema = z
|
|
1094
|
+
const partyUpdateInputSchema = z.object({
|
|
2424
1095
|
party: partySchema,
|
|
2425
1096
|
personalData: individualUpdateSchema.nullable(),
|
|
2426
1097
|
organizationData: organizationUpdateSchema.nullable(),
|
|
2427
|
-
bankAccounts: z
|
|
2428
|
-
disponents: z
|
|
2429
|
-
addresses: z
|
|
2430
|
-
owners: z
|
|
2431
|
-
legalRepresentatives: z
|
|
2432
|
-
recipients: z
|
|
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
|
|
2436
|
-
});
|
|
2437
|
-
const updatePartyOuputSchema = z
|
|
2438
|
-
id: z
|
|
2439
|
-
customerStatus: z
|
|
2440
|
-
partyType: z
|
|
2441
|
-
language: z
|
|
2442
|
-
note: z
|
|
2443
|
-
countryCode: z
|
|
2444
|
-
});
|
|
2445
|
-
const responseBodySchema$4 = z
|
|
2446
|
-
message: z
|
|
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
|
|
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
|
|
2590
|
-
partyId: z
|
|
2591
|
-
});
|
|
2592
|
-
const idDocumentCreateInputSchema = z
|
|
2593
|
-
partyId: z
|
|
2594
|
-
idDocType: z
|
|
2595
|
-
idDocNumber: z
|
|
2596
|
-
idDocHolderName: z
|
|
2597
|
-
issueDate: z
|
|
2598
|
-
expirationDate: z
|
|
2599
|
-
issuer: z
|
|
2600
|
-
countryOfIssue: z
|
|
2601
|
-
idDocStatus: z
|
|
2602
|
-
});
|
|
2603
|
-
const idDocumentMultipartSchema = z
|
|
2604
|
-
idDocument: z
|
|
2605
|
-
documentSide: z
|
|
2606
|
-
file: z
|
|
2607
|
-
});
|
|
2608
|
-
const multipartOpenApiSchema = z
|
|
2609
|
-
idDocument: z
|
|
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
|
|
2613
|
-
file: z
|
|
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
|
|
2619
|
-
id: z
|
|
2620
|
-
createdAt: z
|
|
2621
|
-
updatedAt: z
|
|
2622
|
-
deletedAt: z
|
|
2623
|
-
partyId: z
|
|
2624
|
-
idDocType: z
|
|
2625
|
-
idDocNumber: z
|
|
2626
|
-
idDocHolderName: z
|
|
2627
|
-
issueDate: z
|
|
2628
|
-
expirationDate: z
|
|
2629
|
-
issuer: z
|
|
2630
|
-
countryOfIssue: z
|
|
2631
|
-
frontImageUri: z
|
|
2632
|
-
backImageUri: z
|
|
2633
|
-
idDocStatus: z
|
|
2634
|
-
});
|
|
2635
|
-
const responseBodySchema$3 = z
|
|
2636
|
-
message: z
|
|
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
|
|
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
|
|
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
|
|
2750
|
-
customerStatus: z
|
|
2751
|
-
partyType: z
|
|
2752
|
-
language: z
|
|
2753
|
-
id: z
|
|
2754
|
-
internalId: z
|
|
2755
|
-
note: z
|
|
2756
|
-
countryCode: z
|
|
2757
|
-
createdAt: z
|
|
2758
|
-
updatedAt: z
|
|
2759
|
-
|
|
2760
|
-
|
|
2761
|
-
|
|
2762
|
-
|
|
2763
|
-
|
|
2764
|
-
|
|
2765
|
-
|
|
2766
|
-
|
|
2767
|
-
|
|
2768
|
-
|
|
2769
|
-
|
|
2770
|
-
|
|
2771
|
-
|
|
2772
|
-
|
|
2773
|
-
|
|
2774
|
-
|
|
2775
|
-
|
|
2776
|
-
|
|
2777
|
-
|
|
2778
|
-
|
|
2779
|
-
|
|
2780
|
-
|
|
2781
|
-
|
|
2782
|
-
|
|
2783
|
-
|
|
2784
|
-
|
|
2785
|
-
|
|
2786
|
-
|
|
2787
|
-
|
|
2788
|
-
|
|
2789
|
-
|
|
2790
|
-
|
|
2791
|
-
|
|
2792
|
-
|
|
2793
|
-
|
|
2794
|
-
|
|
2795
|
-
|
|
2796
|
-
|
|
2797
|
-
|
|
2798
|
-
|
|
2799
|
-
|
|
2800
|
-
|
|
2801
|
-
|
|
2802
|
-
|
|
2803
|
-
|
|
2804
|
-
|
|
2805
|
-
|
|
2806
|
-
|
|
2807
|
-
|
|
2808
|
-
|
|
2809
|
-
|
|
2810
|
-
|
|
2811
|
-
|
|
2812
|
-
|
|
2813
|
-
|
|
2814
|
-
|
|
2815
|
-
|
|
2816
|
-
|
|
2817
|
-
|
|
2818
|
-
|
|
2819
|
-
|
|
2820
|
-
|
|
2821
|
-
|
|
2822
|
-
|
|
2823
|
-
|
|
2824
|
-
|
|
2825
|
-
|
|
2826
|
-
|
|
2827
|
-
|
|
2828
|
-
|
|
2829
|
-
|
|
2830
|
-
|
|
2831
|
-
|
|
2832
|
-
|
|
2833
|
-
|
|
2834
|
-
|
|
2835
|
-
|
|
2836
|
-
|
|
2837
|
-
|
|
2838
|
-
|
|
2839
|
-
|
|
2840
|
-
|
|
2841
|
-
|
|
2842
|
-
|
|
2843
|
-
|
|
2844
|
-
z
|
|
2845
|
-
|
|
2846
|
-
|
|
2847
|
-
|
|
2848
|
-
|
|
2849
|
-
|
|
2850
|
-
|
|
2851
|
-
|
|
2852
|
-
|
|
2853
|
-
|
|
2854
|
-
|
|
2855
|
-
|
|
2856
|
-
|
|
2857
|
-
|
|
2858
|
-
|
|
2859
|
-
|
|
2860
|
-
|
|
2861
|
-
|
|
2862
|
-
|
|
2863
|
-
|
|
2864
|
-
|
|
2865
|
-
|
|
2866
|
-
|
|
2867
|
-
|
|
2868
|
-
|
|
2869
|
-
|
|
2870
|
-
|
|
2871
|
-
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
2875
|
-
|
|
2876
|
-
|
|
2877
|
-
|
|
2878
|
-
|
|
2879
|
-
|
|
2880
|
-
|
|
2881
|
-
|
|
2882
|
-
|
|
2883
|
-
|
|
2884
|
-
|
|
2885
|
-
|
|
2886
|
-
|
|
2887
|
-
|
|
2888
|
-
|
|
2889
|
-
|
|
2890
|
-
|
|
2891
|
-
|
|
2892
|
-
|
|
2893
|
-
|
|
2894
|
-
|
|
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
|
|
2902
|
-
sourceOfIncome: z
|
|
2903
|
-
incomeSourceOther: z
|
|
2904
|
-
servicePurposes: z
|
|
2905
|
-
servicePurposesOther: z
|
|
2906
|
-
taxDomicile: z
|
|
2907
|
-
taxDomicileCountry: z
|
|
2908
|
-
transactionType: z
|
|
2909
|
-
transactionTypeExpiry: z
|
|
2910
|
-
isDistraint: z
|
|
2911
|
-
estTxsVolumeMonth: z
|
|
2912
|
-
estTxsVolumeYear: z
|
|
2913
|
-
estTxsCountMonth: z
|
|
2914
|
-
tradingCountries: z
|
|
2915
|
-
tradingCountriesOther: z
|
|
2916
|
-
tradingSide: z
|
|
2917
|
-
acceptedAMLTermsAndConditions: z
|
|
2918
|
-
signatureMethod: z
|
|
2919
|
-
existencePeriod: z
|
|
2920
|
-
reputation: z
|
|
2921
|
-
riskBusinessAreas: z
|
|
2922
|
-
riskLevel: z
|
|
2923
|
-
kycStatus: z
|
|
2924
|
-
residencyAnswers: z
|
|
2925
|
-
z
|
|
2926
|
-
personName: z
|
|
2927
|
-
personRole: z
|
|
2928
|
-
answer: z
|
|
2929
|
-
country: z
|
|
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
|
|
2933
|
-
updatedAt: z
|
|
2934
|
-
});
|
|
2935
|
-
const ownerOutputSchema = z
|
|
2936
|
-
id: z
|
|
2937
|
-
name: z
|
|
2938
|
-
surname: z
|
|
2939
|
-
titleBefore: z
|
|
2940
|
-
titleAfter: z
|
|
2941
|
-
email: z
|
|
2942
|
-
birthDate: z
|
|
2943
|
-
birthPlace: z
|
|
2944
|
-
personalId: z
|
|
2945
|
-
gender: z
|
|
2946
|
-
citizenship: z
|
|
2947
|
-
isPep: z
|
|
2948
|
-
sharePercentage: z
|
|
2949
|
-
shareEstablishedAt: z
|
|
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
|
|
2953
|
-
id: z
|
|
2954
|
-
name: z
|
|
2955
|
-
surname: z
|
|
2956
|
-
titleBefore: z
|
|
2957
|
-
titleAfter: z
|
|
2958
|
-
email: z
|
|
2959
|
-
birthDate: z
|
|
2960
|
-
birthPlace: z
|
|
2961
|
-
personalId: z
|
|
2962
|
-
gender: z
|
|
2963
|
-
citizenship: z
|
|
2964
|
-
isPep: z
|
|
2965
|
-
phone: z
|
|
2966
|
-
pin: z
|
|
2967
|
-
|
|
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
|
|
2971
|
-
txs: z
|
|
2972
|
-
fee: z
|
|
2973
|
-
margin: z
|
|
2974
|
-
reportingEmail: z
|
|
2975
|
-
clientType: z
|
|
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
|
|
1647
|
+
cbs: z.object({}).nullable()
|
|
2978
1648
|
});
|
|
2979
1649
|
const recipientOutputSchema = bankAccountOutputSchema.omit({
|
|
2980
1650
|
statementUri: true
|
|
2981
1651
|
});
|
|
2982
|
-
const partyOutputSchema = z
|
|
1652
|
+
const partyOutputSchema = z.object({
|
|
2983
1653
|
party: partyBaseOutputSchema.nullable(),
|
|
2984
1654
|
personalData: individualOutputSchema.nullable(),
|
|
2985
1655
|
organizationData: createOrganizationOutputSchema.nullable(),
|
|
2986
|
-
bankAccounts: z
|
|
2987
|
-
disponents: z
|
|
2988
|
-
addresses: z
|
|
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
|
|
1660
|
+
recipients: z.array(recipientOutputSchema).nullable(),
|
|
2991
1661
|
products: productsOutputSchema.nullable(),
|
|
2992
|
-
traderIds: z
|
|
2993
|
-
owners: z
|
|
2994
|
-
legalRepresentatives: z
|
|
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
|
|
2997
|
-
message: z
|
|
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
|
|
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
|
|
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:
|
|
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
|
|
3060
|
-
message: z
|
|
3061
|
-
data: z
|
|
1738
|
+
schema: z.object({
|
|
1739
|
+
message: z.string(),
|
|
1740
|
+
data: z.object({
|
|
3062
1741
|
parties: partiesOutputDataSchema,
|
|
3063
|
-
totalCount: z
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
3128
|
-
totalCount: z
|
|
3129
|
-
idDocuments: z
|
|
1786
|
+
const idDocumentsListOutputSchema = z.object({
|
|
1787
|
+
totalCount: z.number(),
|
|
1788
|
+
idDocuments: z.array(idDocumentOutputSchema)
|
|
3130
1789
|
});
|
|
3131
|
-
const paramsSchema$1 = z
|
|
3132
|
-
partyId: z
|
|
1790
|
+
const paramsSchema$1 = z.object({
|
|
1791
|
+
partyId: z.uuid()
|
|
3133
1792
|
});
|
|
3134
|
-
const arrayQuery = (schema) => z
|
|
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
|
|
3141
|
-
page: z
|
|
3142
|
-
limit: z
|
|
3143
|
-
sortColumn: z
|
|
3144
|
-
sortDirection: z
|
|
3145
|
-
[ALLOWED_ID_DOCUMENTS_FILTERS.PARTY_ID]: arrayQuery(z
|
|
3146
|
-
[ALLOWED_ID_DOCUMENTS_FILTERS.ISSUER]: arrayQuery(z
|
|
3147
|
-
search: z
|
|
3148
|
-
});
|
|
3149
|
-
const responseBodySchema$1 = z
|
|
3150
|
-
message: z
|
|
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
|
|
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
|
|
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
|
|
3221
|
-
id: z
|
|
3222
|
-
});
|
|
3223
|
-
const idDocumentUpdateInputSchema = z
|
|
3224
|
-
partyId: z
|
|
3225
|
-
idDocType: z
|
|
3226
|
-
idDocNumber: z
|
|
3227
|
-
idDocHolderName: z
|
|
3228
|
-
issueDate: z
|
|
3229
|
-
expirationDate: z
|
|
3230
|
-
issuer: z
|
|
3231
|
-
countryOfIssue: z
|
|
3232
|
-
frontImageUri: z
|
|
3233
|
-
backImageUri: z
|
|
3234
|
-
idDocStatus: z
|
|
3235
|
-
});
|
|
3236
|
-
const responseBodySchema = z
|
|
3237
|
-
message: z
|
|
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
|
|
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
|
|
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
|
|
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
|
|
3322
|
-
message: z
|
|
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
|
|
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 };
|