@devizovaburza/mdm-sdk 0.0.14 → 0.0.16
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.cjs +812 -219
- package/dist/v1/index.d.cts +9554 -2315
- package/dist/v1/index.d.mts +9554 -2315
- package/dist/v1/index.d.ts +9554 -2315
- package/dist/v1/index.mjs +795 -221
- package/package.json +1 -1
package/dist/v1/index.cjs
CHANGED
|
@@ -98,6 +98,92 @@ const KYC_STATUS$1 = [
|
|
|
98
98
|
const TRADER_TYPE$1 = ["PERSON", "COMPANY", "OSVC"];
|
|
99
99
|
const PRODUCT_TYPE$1 = ["TXS", "CBS"];
|
|
100
100
|
const TXS_CLIENT_TYPE$1 = ["CLIENT", "PROVIDER"];
|
|
101
|
+
const TRADING_SIDE$1 = ["SELL", "BUY", "BOTH"];
|
|
102
|
+
const EST_TXS_VOLUME_MONTH$1 = ["UP_TO_1M", "1M_TO_5M", "OVER_5M"];
|
|
103
|
+
const EST_TXS_VOLUME_YEAR$1 = [
|
|
104
|
+
"LESS_THAN_12M",
|
|
105
|
+
"12M_TO_50M",
|
|
106
|
+
"OVER_50M"
|
|
107
|
+
];
|
|
108
|
+
const TARGET_COUNTRY$1 = ["CZ", "EU", "OUTSIDE_EU"];
|
|
109
|
+
const TAX_DOMICILE$1 = ["CZ", "EU", "US", "OTHER"];
|
|
110
|
+
const MONTHLY_INCOME_RANGE$1 = [
|
|
111
|
+
"UP_TO_40K",
|
|
112
|
+
"40K_TO_80K",
|
|
113
|
+
"OVER_80K"
|
|
114
|
+
];
|
|
115
|
+
const COMPANY_TURNOVER_RANGE$1 = [
|
|
116
|
+
"LESS_THAN_50M",
|
|
117
|
+
"50M_TO_100M",
|
|
118
|
+
"OVER_100M"
|
|
119
|
+
];
|
|
120
|
+
const YEARLY_INCOME$1 = [
|
|
121
|
+
...MONTHLY_INCOME_RANGE$1,
|
|
122
|
+
...COMPANY_TURNOVER_RANGE$1
|
|
123
|
+
];
|
|
124
|
+
const INCOME_SOURCE$1 = [
|
|
125
|
+
"EMPLOYMENT",
|
|
126
|
+
"PENSION",
|
|
127
|
+
"SAVINGS",
|
|
128
|
+
"INHERITANCE",
|
|
129
|
+
"INVESTMENTS",
|
|
130
|
+
"HOUSE_SALE",
|
|
131
|
+
"CAR_SALE",
|
|
132
|
+
"AUCTION_SALE",
|
|
133
|
+
"OTHER"
|
|
134
|
+
];
|
|
135
|
+
const FINANCIAL_FUNDS_SOURCE$1 = [
|
|
136
|
+
"BUSINESS_REVENUE",
|
|
137
|
+
"INVESTMENTS",
|
|
138
|
+
"LOAN",
|
|
139
|
+
"OTHER"
|
|
140
|
+
];
|
|
141
|
+
const SERVICE_PURPOSE_FO$1 = [
|
|
142
|
+
"PURCHASE_OF_GOODS_AND_SERVICES",
|
|
143
|
+
"INVESTMENTS",
|
|
144
|
+
"OTHER"
|
|
145
|
+
];
|
|
146
|
+
const SERVICE_PURPOSE_COMPANY$1 = [
|
|
147
|
+
"PAYMENTS_TO_CUSTOMERS",
|
|
148
|
+
"PAYMENTS_TO_SUPPLIERS",
|
|
149
|
+
"FOREIGN_INVESTMENTS",
|
|
150
|
+
"OTHER"
|
|
151
|
+
];
|
|
152
|
+
const SERVICE_PURPOSE$1 = [
|
|
153
|
+
...SERVICE_PURPOSE_FO$1,
|
|
154
|
+
...SERVICE_PURPOSE_COMPANY$1
|
|
155
|
+
];
|
|
156
|
+
const OPERATING_COUNTRY$1 = ["CZ", "EU", "OUTSIDE_EU"];
|
|
157
|
+
const YES_NO_UNKNOWN = ["YES", "NO", "UNKNOWN"];
|
|
158
|
+
const SIGNATURE_METHOD$1 = [
|
|
159
|
+
"IN_PERSON",
|
|
160
|
+
"REMOTE",
|
|
161
|
+
"COURIER",
|
|
162
|
+
"POWER_OF_ATTORNEY"
|
|
163
|
+
];
|
|
164
|
+
const EXISTENCE_PERIOD$1 = [
|
|
165
|
+
"OVER_24_MONTHS",
|
|
166
|
+
"OVER_16_MONTHS",
|
|
167
|
+
"LESS_THAN_12_MONTHS",
|
|
168
|
+
"LESS_THAN_6_MONTHS"
|
|
169
|
+
];
|
|
170
|
+
const REPUTATION$1 = [
|
|
171
|
+
"NO_NEGATIVE_RECORDS",
|
|
172
|
+
"BUSINESS_INCREASES_RISK",
|
|
173
|
+
"NEGATIVE_RECORDS",
|
|
174
|
+
"SANCTIONS_LIST_HIT"
|
|
175
|
+
];
|
|
176
|
+
const RISK_BUSINESS_AREA$1 = [
|
|
177
|
+
"PAWN_SHOPS",
|
|
178
|
+
"USED_CAR_DEALERS",
|
|
179
|
+
"CASINOS",
|
|
180
|
+
"REAL_ESTATE_AGENCIES",
|
|
181
|
+
"PRECIOUS_METALS_AND_GEMS",
|
|
182
|
+
"WEAPONS_AND_AMMUNITION",
|
|
183
|
+
"NON_BANK_CREDIT_INSTITUTIONS",
|
|
184
|
+
"CURRENCY_EXCHANGE",
|
|
185
|
+
"VIRTUAL_ASSET_SERVICES"
|
|
186
|
+
];
|
|
101
187
|
|
|
102
188
|
const ADDRESS_TYPE = [
|
|
103
189
|
"PERMANENT_ADDRESS",
|
|
@@ -154,6 +240,91 @@ const KYC_STATUS = [
|
|
|
154
240
|
];
|
|
155
241
|
const TRADER_TYPE = ["PERSON", "COMPANY", "OSVC"];
|
|
156
242
|
const PRODUCT_TYPE = ["TXS", "CBS"];
|
|
243
|
+
const TRADING_SIDE = ["SELL", "BUY", "BOTH"];
|
|
244
|
+
const EST_TXS_VOLUME_MONTH = ["UP_TO_1M", "1M_TO_5M", "OVER_5M"];
|
|
245
|
+
const EST_TXS_VOLUME_YEAR = [
|
|
246
|
+
"LESS_THAN_12M",
|
|
247
|
+
"12M_TO_50M",
|
|
248
|
+
"OVER_50M"
|
|
249
|
+
];
|
|
250
|
+
const TARGET_COUNTRY = ["CZ", "EU", "OUTSIDE_EU"];
|
|
251
|
+
const TAX_DOMICILE = ["CZ", "EU", "US", "OTHER"];
|
|
252
|
+
const MONTHLY_INCOME_RANGE = [
|
|
253
|
+
"UP_TO_40K",
|
|
254
|
+
"40K_TO_80K",
|
|
255
|
+
"OVER_80K"
|
|
256
|
+
];
|
|
257
|
+
const COMPANY_TURNOVER_RANGE = [
|
|
258
|
+
"LESS_THAN_50M",
|
|
259
|
+
"50M_TO_100M",
|
|
260
|
+
"OVER_100M"
|
|
261
|
+
];
|
|
262
|
+
const YEARLY_INCOME = [
|
|
263
|
+
...MONTHLY_INCOME_RANGE,
|
|
264
|
+
...COMPANY_TURNOVER_RANGE
|
|
265
|
+
];
|
|
266
|
+
const INCOME_SOURCE = [
|
|
267
|
+
"EMPLOYMENT",
|
|
268
|
+
"PENSION",
|
|
269
|
+
"SAVINGS",
|
|
270
|
+
"INHERITANCE",
|
|
271
|
+
"INVESTMENTS",
|
|
272
|
+
"HOUSE_SALE",
|
|
273
|
+
"CAR_SALE",
|
|
274
|
+
"AUCTION_SALE",
|
|
275
|
+
"OTHER"
|
|
276
|
+
];
|
|
277
|
+
const FINANCIAL_FUNDS_SOURCE = [
|
|
278
|
+
"BUSINESS_REVENUE",
|
|
279
|
+
"INVESTMENTS",
|
|
280
|
+
"LOAN",
|
|
281
|
+
"OTHER"
|
|
282
|
+
];
|
|
283
|
+
const SERVICE_PURPOSE_FO = [
|
|
284
|
+
"PURCHASE_OF_GOODS_AND_SERVICES",
|
|
285
|
+
"INVESTMENTS",
|
|
286
|
+
"OTHER"
|
|
287
|
+
];
|
|
288
|
+
const SERVICE_PURPOSE_COMPANY = [
|
|
289
|
+
"PAYMENTS_TO_CUSTOMERS",
|
|
290
|
+
"PAYMENTS_TO_SUPPLIERS",
|
|
291
|
+
"FOREIGN_INVESTMENTS",
|
|
292
|
+
"OTHER"
|
|
293
|
+
];
|
|
294
|
+
const SERVICE_PURPOSE = [
|
|
295
|
+
...SERVICE_PURPOSE_FO,
|
|
296
|
+
...SERVICE_PURPOSE_COMPANY
|
|
297
|
+
];
|
|
298
|
+
const OPERATING_COUNTRY = ["CZ", "EU", "OUTSIDE_EU"];
|
|
299
|
+
const SIGNATURE_METHOD = [
|
|
300
|
+
"IN_PERSON",
|
|
301
|
+
"REMOTE",
|
|
302
|
+
"COURIER",
|
|
303
|
+
"POWER_OF_ATTORNEY"
|
|
304
|
+
];
|
|
305
|
+
const EXISTENCE_PERIOD = [
|
|
306
|
+
"OVER_24_MONTHS",
|
|
307
|
+
"OVER_16_MONTHS",
|
|
308
|
+
"LESS_THAN_12_MONTHS",
|
|
309
|
+
"LESS_THAN_6_MONTHS"
|
|
310
|
+
];
|
|
311
|
+
const REPUTATION = [
|
|
312
|
+
"NO_NEGATIVE_RECORDS",
|
|
313
|
+
"BUSINESS_INCREASES_RISK",
|
|
314
|
+
"NEGATIVE_RECORDS",
|
|
315
|
+
"SANCTIONS_LIST_HIT"
|
|
316
|
+
];
|
|
317
|
+
const RISK_BUSINESS_AREA = [
|
|
318
|
+
"PAWN_SHOPS",
|
|
319
|
+
"USED_CAR_DEALERS",
|
|
320
|
+
"CASINOS",
|
|
321
|
+
"REAL_ESTATE_AGENCIES",
|
|
322
|
+
"PRECIOUS_METALS_AND_GEMS",
|
|
323
|
+
"WEAPONS_AND_AMMUNITION",
|
|
324
|
+
"NON_BANK_CREDIT_INSTITUTIONS",
|
|
325
|
+
"CURRENCY_EXCHANGE",
|
|
326
|
+
"VIRTUAL_ASSET_SERVICES"
|
|
327
|
+
];
|
|
157
328
|
|
|
158
329
|
const entityKind = Symbol.for("drizzle:entityKind");
|
|
159
330
|
function is(value, type) {
|
|
@@ -12339,7 +12510,7 @@ const party = sqliteTable("party", {
|
|
|
12339
12510
|
partyType: text("party_type", { enum: PARTY_TYPE }).notNull(),
|
|
12340
12511
|
language: text("language", { enum: generalCodes.LANGUAGE_CODES }).notNull(),
|
|
12341
12512
|
countryCode: text("country_code", { enum: generalCodes.COUNTRY_CODES_2 }),
|
|
12342
|
-
|
|
12513
|
+
isRoot: integer("is_root", { mode: "boolean" }).notNull().default(false),
|
|
12343
12514
|
legacyId: text("legacy_id")
|
|
12344
12515
|
});
|
|
12345
12516
|
|
|
@@ -12402,7 +12573,7 @@ const individual = sqliteTable("individual", {
|
|
|
12402
12573
|
citizenshipOther: text("citizenship_other", { enum: generalCodes.COUNTRY_CODES_2 }),
|
|
12403
12574
|
employer: text("employer"),
|
|
12404
12575
|
employerCountry: text("employer_country", { enum: generalCodes.COUNTRY_CODES_2 }),
|
|
12405
|
-
registeredNumber: text("registered_number")
|
|
12576
|
+
registeredNumber: text("registered_number"),
|
|
12406
12577
|
isPep: integer("is_pep", { mode: "boolean" }).notNull(),
|
|
12407
12578
|
titleBefore: text("title_before"),
|
|
12408
12579
|
titleAfter: text("title_after"),
|
|
@@ -12432,8 +12603,7 @@ const organization = sqliteTable("organization", {
|
|
|
12432
12603
|
monthlyVolumeOut: integer("monthly_volume_out").notNull(),
|
|
12433
12604
|
ownedBy: text("owned_by").notNull(),
|
|
12434
12605
|
// UBO, skutecny majitel, podle Marianovy tabulky by toto mela byt mozna relace na party
|
|
12435
|
-
companyObjects: text("company_objects").notNull(),
|
|
12436
|
-
// predmet cinnosti
|
|
12606
|
+
companyObjects: text("company_objects", { mode: "json" }).$type().notNull(),
|
|
12437
12607
|
companyObjectsDescription: text("company_objects_description").notNull(),
|
|
12438
12608
|
turnover3years: integer("turnover_3_years").notNull(),
|
|
12439
12609
|
operationCountries: text("operation_countries").notNull(),
|
|
@@ -12459,7 +12629,7 @@ const partyRelationship = sqliteTable("party_relationship", {
|
|
|
12459
12629
|
internalId: text("internal_id"),
|
|
12460
12630
|
relationshipType: text("relationship_type", {
|
|
12461
12631
|
enum: PARTY_RELATIONSHIP_TYPE
|
|
12462
|
-
}),
|
|
12632
|
+
}).notNull(),
|
|
12463
12633
|
fromPartyId: text("from_party_id").references(() => party.id),
|
|
12464
12634
|
toPartyId: text("to_party_id").references(() => party.id),
|
|
12465
12635
|
fromDate: integer("from_date", { mode: "timestamp_ms" }),
|
|
@@ -12503,24 +12673,37 @@ const aml = sqliteTable("aml", {
|
|
|
12503
12673
|
...base,
|
|
12504
12674
|
internalId: text("internal_id"),
|
|
12505
12675
|
partyId: text("party_id").notNull().unique().references(() => party.id),
|
|
12506
|
-
sourceOfWealth: text("source_of_wealth").notNull(),
|
|
12507
|
-
yearlyIncome: text("yearly_income").notNull(),
|
|
12508
|
-
|
|
12509
|
-
|
|
12676
|
+
sourceOfWealth: text("source_of_wealth", { mode: "json" }).$type().notNull(),
|
|
12677
|
+
yearlyIncome: text("yearly_income", { enum: YEARLY_INCOME }).notNull(),
|
|
12678
|
+
sourceOfIncome: text("source_of_income", { mode: "json" }).$type().notNull(),
|
|
12679
|
+
incomeSourceOther: text("income_source_other"),
|
|
12680
|
+
servicePurposes: text("service_purposes", { mode: "json" }).$type(),
|
|
12681
|
+
servicePurposesOther: text("service_purposes_other"),
|
|
12682
|
+
taxDomicile: text("tax_domicile", { enum: TAX_DOMICILE }),
|
|
12683
|
+
taxDomicileCountry: text("tax_domicile_country", { enum: generalCodes.COUNTRY_CODES_2 }),
|
|
12510
12684
|
transactionType: text("transaction_type"),
|
|
12511
12685
|
transactionTypeExpiry: integer("transaction_type_expiry", {
|
|
12512
12686
|
mode: "timestamp_ms"
|
|
12513
12687
|
}),
|
|
12514
|
-
estTxsVolumeMonth: text("est_txs_volume_month"
|
|
12515
|
-
|
|
12516
|
-
|
|
12517
|
-
|
|
12688
|
+
estTxsVolumeMonth: text("est_txs_volume_month", {
|
|
12689
|
+
enum: EST_TXS_VOLUME_MONTH
|
|
12690
|
+
}).notNull(),
|
|
12691
|
+
estTxsVolumeYear: text("est_txs_volume_year", {
|
|
12692
|
+
enum: EST_TXS_VOLUME_YEAR
|
|
12693
|
+
}).notNull(),
|
|
12694
|
+
estTxsCountMonth: integer("est_txs_count_month"),
|
|
12695
|
+
tradingCountries: text("trading_countries", { mode: "json" }).$type().notNull(),
|
|
12696
|
+
tradingCountriesOther: text("trading_countries_other", {
|
|
12697
|
+
mode: "json"
|
|
12698
|
+
}).$type(),
|
|
12699
|
+
tradingSide: text("trading_side", { enum: TRADING_SIDE }).notNull(),
|
|
12518
12700
|
acceptedAMLTermsAndConditions: integer("accepted_aml_terms_and_conditions", {
|
|
12519
12701
|
mode: "boolean"
|
|
12520
12702
|
}).notNull(),
|
|
12521
|
-
signatureMethod: text("signature_method"),
|
|
12522
|
-
existencePeriod: text("existence_period"),
|
|
12523
|
-
reputation: text("reputation"),
|
|
12703
|
+
signatureMethod: text("signature_method", { enum: SIGNATURE_METHOD }),
|
|
12704
|
+
existencePeriod: text("existence_period", { enum: EXISTENCE_PERIOD }),
|
|
12705
|
+
reputation: text("reputation", { enum: REPUTATION }),
|
|
12706
|
+
riskBusinessAreas: text("risk_business_areas", { mode: "json" }).$type(),
|
|
12524
12707
|
isDistraint: integer("is_distraint", { mode: "boolean" }).notNull().default(false),
|
|
12525
12708
|
riskLevel: text("risk_level", { enum: AML_SCORE_TYPE }).notNull(),
|
|
12526
12709
|
kycStatus: text("kyc_status", { enum: KYC_STATUS })
|
|
@@ -12631,51 +12814,148 @@ const addressSelectSchema = zodOpenapi.z.object({
|
|
|
12631
12814
|
|
|
12632
12815
|
createInsertSchema(aml);
|
|
12633
12816
|
createUpdateSchema(aml);
|
|
12634
|
-
|
|
12817
|
+
createSelectSchema(aml);
|
|
12818
|
+
const businessPartnerSchema = zodOpenapi.z.object({
|
|
12819
|
+
name: zodOpenapi.z.string(),
|
|
12820
|
+
country: zodOpenapi.z.string(),
|
|
12821
|
+
cooperationReason: zodOpenapi.z.string().nullable()
|
|
12822
|
+
});
|
|
12823
|
+
const foSourceOfWealthSchema = zodOpenapi.z.object({
|
|
12824
|
+
incomeSources: zodOpenapi.z.array(zodOpenapi.z.enum(INCOME_SOURCE)).min(1),
|
|
12825
|
+
incomeSourceOther: zodOpenapi.z.string().nullable(),
|
|
12826
|
+
monthlyIncome: zodOpenapi.z.enum(MONTHLY_INCOME_RANGE),
|
|
12827
|
+
employer: zodOpenapi.z.string().nullable(),
|
|
12828
|
+
employerCountry: zodOpenapi.z.string().nullable()
|
|
12829
|
+
});
|
|
12830
|
+
const businessSourceOfWealthSchema = zodOpenapi.z.object({
|
|
12831
|
+
financialFundsSources: zodOpenapi.z.array(zodOpenapi.z.enum(FINANCIAL_FUNDS_SOURCE)).min(1),
|
|
12832
|
+
financialFundsSourceOther: zodOpenapi.z.string().nullable(),
|
|
12833
|
+
mainBusinessSubjects: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.CZ_TRADE_LICENSE_CODES)).min(1),
|
|
12834
|
+
companyTurnover: zodOpenapi.z.enum(COMPANY_TURNOVER_RANGE),
|
|
12835
|
+
operatingCountries: zodOpenapi.z.array(zodOpenapi.z.enum(OPERATING_COUNTRY)).min(1),
|
|
12836
|
+
operatingCountriesOther: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2)).nullable(),
|
|
12837
|
+
businessPartners: zodOpenapi.z.array(businessPartnerSchema).nullable(),
|
|
12838
|
+
businessActivitiesNote: zodOpenapi.z.string().nullable()
|
|
12839
|
+
});
|
|
12840
|
+
const sourceOfWealthSchema = zodOpenapi.z.union([
|
|
12841
|
+
foSourceOfWealthSchema,
|
|
12842
|
+
businessSourceOfWealthSchema
|
|
12843
|
+
]);
|
|
12844
|
+
const businessPartnerOutputSchema$1 = zodOpenapi.z.object({
|
|
12845
|
+
name: zodOpenapi.z.string(),
|
|
12846
|
+
country: zodOpenapi.z.string(),
|
|
12847
|
+
cooperationReason: zodOpenapi.z.string().nullable()
|
|
12848
|
+
});
|
|
12849
|
+
const foSourceOfWealthOutputSchema$1 = zodOpenapi.z.object({
|
|
12850
|
+
incomeSources: zodOpenapi.z.array(zodOpenapi.z.enum(INCOME_SOURCE)),
|
|
12851
|
+
incomeSourceOther: zodOpenapi.z.string().nullable(),
|
|
12852
|
+
monthlyIncome: zodOpenapi.z.enum(MONTHLY_INCOME_RANGE),
|
|
12853
|
+
employer: zodOpenapi.z.string().nullable(),
|
|
12854
|
+
employerCountry: zodOpenapi.z.string().nullable()
|
|
12855
|
+
});
|
|
12856
|
+
const businessSourceOfWealthOutputSchema$1 = zodOpenapi.z.object({
|
|
12857
|
+
financialFundsSources: zodOpenapi.z.array(zodOpenapi.z.enum(FINANCIAL_FUNDS_SOURCE)),
|
|
12858
|
+
financialFundsSourceOther: zodOpenapi.z.string().nullable(),
|
|
12859
|
+
mainBusinessSubjects: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.CZ_TRADE_LICENSE_CODES)),
|
|
12860
|
+
companyTurnover: zodOpenapi.z.enum(COMPANY_TURNOVER_RANGE),
|
|
12861
|
+
operatingCountries: zodOpenapi.z.array(zodOpenapi.z.enum(OPERATING_COUNTRY)),
|
|
12862
|
+
operatingCountriesOther: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2)).nullable(),
|
|
12863
|
+
businessPartners: zodOpenapi.z.array(businessPartnerOutputSchema$1).nullable(),
|
|
12864
|
+
businessActivitiesNote: zodOpenapi.z.string().nullable()
|
|
12865
|
+
});
|
|
12866
|
+
const sourceOfWealthOutputSchema = zodOpenapi.z.union([
|
|
12867
|
+
foSourceOfWealthOutputSchema$1,
|
|
12868
|
+
businessSourceOfWealthOutputSchema$1
|
|
12869
|
+
]);
|
|
12635
12870
|
const amlInsertSchema = zodOpenapi.z.object({
|
|
12636
12871
|
partyId: zodOpenapi.z.uuid(),
|
|
12637
|
-
internalId: zodOpenapi.z.string().optional()
|
|
12638
|
-
sourceOfWealth:
|
|
12639
|
-
yearlyIncome: zodOpenapi.z.
|
|
12640
|
-
|
|
12641
|
-
|
|
12642
|
-
|
|
12643
|
-
|
|
12872
|
+
internalId: zodOpenapi.z.string().optional(),
|
|
12873
|
+
sourceOfWealth: sourceOfWealthSchema,
|
|
12874
|
+
yearlyIncome: zodOpenapi.z.enum(YEARLY_INCOME),
|
|
12875
|
+
sourceOfIncome: zodOpenapi.z.array(zodOpenapi.z.enum(INCOME_SOURCE)).min(1),
|
|
12876
|
+
incomeSourceOther: zodOpenapi.z.string().optional(),
|
|
12877
|
+
servicePurposes: zodOpenapi.z.array(zodOpenapi.z.enum(SERVICE_PURPOSE)).optional(),
|
|
12878
|
+
servicePurposesOther: zodOpenapi.z.string().optional(),
|
|
12879
|
+
taxDomicile: zodOpenapi.z.enum(TAX_DOMICILE).optional(),
|
|
12880
|
+
taxDomicileCountry: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional(),
|
|
12881
|
+
transactionType: zodOpenapi.z.string().optional(),
|
|
12882
|
+
transactionTypeExpiry: zodOpenapi.z.date().optional(),
|
|
12644
12883
|
isDistraint: zodOpenapi.z.boolean().default(false),
|
|
12645
|
-
estTxsVolumeMonth: zodOpenapi.z.
|
|
12646
|
-
estTxsVolumeYear: zodOpenapi.z.
|
|
12647
|
-
|
|
12648
|
-
|
|
12884
|
+
estTxsVolumeMonth: zodOpenapi.z.enum(EST_TXS_VOLUME_MONTH),
|
|
12885
|
+
estTxsVolumeYear: zodOpenapi.z.enum(EST_TXS_VOLUME_YEAR),
|
|
12886
|
+
estTxsCountMonth: zodOpenapi.z.number().int().optional(),
|
|
12887
|
+
tradingCountries: zodOpenapi.z.array(zodOpenapi.z.enum(TARGET_COUNTRY)).min(1),
|
|
12888
|
+
tradingCountriesOther: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2)).optional(),
|
|
12889
|
+
tradingSide: zodOpenapi.z.enum(TRADING_SIDE),
|
|
12649
12890
|
acceptedAMLTermsAndConditions: zodOpenapi.z.boolean(),
|
|
12650
|
-
signatureMethod: zodOpenapi.z.
|
|
12651
|
-
existencePeriod: zodOpenapi.z.
|
|
12652
|
-
reputation: zodOpenapi.z.
|
|
12653
|
-
|
|
12654
|
-
|
|
12891
|
+
signatureMethod: zodOpenapi.z.enum(SIGNATURE_METHOD).optional(),
|
|
12892
|
+
existencePeriod: zodOpenapi.z.enum(EXISTENCE_PERIOD).optional(),
|
|
12893
|
+
reputation: zodOpenapi.z.enum(REPUTATION).optional(),
|
|
12894
|
+
riskBusinessAreas: zodOpenapi.z.array(zodOpenapi.z.enum(RISK_BUSINESS_AREA)).optional(),
|
|
12895
|
+
riskLevel: zodOpenapi.z.enum(AML_SCORE_TYPE).optional(),
|
|
12896
|
+
kycStatus: zodOpenapi.z.enum(KYC_STATUS).optional()
|
|
12655
12897
|
});
|
|
12656
12898
|
const amlUpdateSchema = zodOpenapi.z.object({
|
|
12657
12899
|
id: zodOpenapi.z.uuid(),
|
|
12658
12900
|
partyId: zodOpenapi.z.uuid().optional(),
|
|
12659
|
-
internalId: zodOpenapi.z.string().optional()
|
|
12660
|
-
sourceOfWealth:
|
|
12661
|
-
yearlyIncome: zodOpenapi.z.
|
|
12662
|
-
|
|
12663
|
-
|
|
12664
|
-
|
|
12665
|
-
|
|
12901
|
+
internalId: zodOpenapi.z.string().optional(),
|
|
12902
|
+
sourceOfWealth: sourceOfWealthSchema.optional(),
|
|
12903
|
+
yearlyIncome: zodOpenapi.z.enum(YEARLY_INCOME).optional(),
|
|
12904
|
+
sourceOfIncome: zodOpenapi.z.array(zodOpenapi.z.enum(INCOME_SOURCE)).min(1).optional(),
|
|
12905
|
+
incomeSourceOther: zodOpenapi.z.string().optional(),
|
|
12906
|
+
servicePurposes: zodOpenapi.z.array(zodOpenapi.z.enum(SERVICE_PURPOSE)).optional(),
|
|
12907
|
+
servicePurposesOther: zodOpenapi.z.string().optional(),
|
|
12908
|
+
taxDomicile: zodOpenapi.z.enum(TAX_DOMICILE).optional(),
|
|
12909
|
+
taxDomicileCountry: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional(),
|
|
12910
|
+
transactionType: zodOpenapi.z.string().optional(),
|
|
12911
|
+
transactionTypeExpiry: zodOpenapi.z.date().optional(),
|
|
12666
12912
|
isDistraint: zodOpenapi.z.boolean().optional(),
|
|
12667
|
-
estTxsVolumeMonth: zodOpenapi.z.
|
|
12668
|
-
estTxsVolumeYear: zodOpenapi.z.
|
|
12669
|
-
|
|
12670
|
-
|
|
12913
|
+
estTxsVolumeMonth: zodOpenapi.z.enum(EST_TXS_VOLUME_MONTH).optional(),
|
|
12914
|
+
estTxsVolumeYear: zodOpenapi.z.enum(EST_TXS_VOLUME_YEAR).optional(),
|
|
12915
|
+
estTxsCountMonth: zodOpenapi.z.number().int().optional(),
|
|
12916
|
+
tradingCountries: zodOpenapi.z.array(zodOpenapi.z.enum(TARGET_COUNTRY)).min(1).optional(),
|
|
12917
|
+
tradingCountriesOther: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2)).optional(),
|
|
12918
|
+
tradingSide: zodOpenapi.z.enum(TRADING_SIDE).optional(),
|
|
12919
|
+
acceptedAMLTermsAndConditions: zodOpenapi.z.boolean().optional(),
|
|
12920
|
+
signatureMethod: zodOpenapi.z.enum(SIGNATURE_METHOD).optional(),
|
|
12921
|
+
existencePeriod: zodOpenapi.z.enum(EXISTENCE_PERIOD).optional(),
|
|
12922
|
+
reputation: zodOpenapi.z.enum(REPUTATION).optional(),
|
|
12923
|
+
riskBusinessAreas: zodOpenapi.z.array(zodOpenapi.z.enum(RISK_BUSINESS_AREA)).optional(),
|
|
12924
|
+
riskLevel: zodOpenapi.z.enum(AML_SCORE_TYPE).optional(),
|
|
12925
|
+
kycStatus: zodOpenapi.z.enum(KYC_STATUS).optional()
|
|
12926
|
+
});
|
|
12927
|
+
const amlSelectSchema = zodOpenapi.z.object({
|
|
12928
|
+
id: zodOpenapi.z.string(),
|
|
12929
|
+
partyId: zodOpenapi.z.string(),
|
|
12930
|
+
internalId: zodOpenapi.z.string().nullable(),
|
|
12931
|
+
sourceOfWealth: sourceOfWealthOutputSchema,
|
|
12932
|
+
yearlyIncome: zodOpenapi.z.enum(YEARLY_INCOME),
|
|
12933
|
+
sourceOfIncome: zodOpenapi.z.array(zodOpenapi.z.enum(INCOME_SOURCE)),
|
|
12934
|
+
incomeSourceOther: zodOpenapi.z.string().nullable(),
|
|
12935
|
+
servicePurposes: zodOpenapi.z.array(zodOpenapi.z.enum(SERVICE_PURPOSE)).nullable(),
|
|
12936
|
+
servicePurposesOther: zodOpenapi.z.string().nullable(),
|
|
12937
|
+
taxDomicile: zodOpenapi.z.enum(TAX_DOMICILE).nullable(),
|
|
12938
|
+
taxDomicileCountry: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).nullable(),
|
|
12939
|
+
transactionType: zodOpenapi.z.string().nullable(),
|
|
12940
|
+
transactionTypeExpiry: zodOpenapi.z.date().nullable(),
|
|
12941
|
+
isDistraint: zodOpenapi.z.boolean(),
|
|
12942
|
+
estTxsVolumeMonth: zodOpenapi.z.enum(EST_TXS_VOLUME_MONTH),
|
|
12943
|
+
estTxsVolumeYear: zodOpenapi.z.enum(EST_TXS_VOLUME_YEAR),
|
|
12944
|
+
estTxsCountMonth: zodOpenapi.z.number().int().nullable(),
|
|
12945
|
+
tradingCountries: zodOpenapi.z.array(zodOpenapi.z.enum(TARGET_COUNTRY)),
|
|
12946
|
+
tradingCountriesOther: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2)).nullable(),
|
|
12947
|
+
tradingSide: zodOpenapi.z.enum(TRADING_SIDE),
|
|
12671
12948
|
acceptedAMLTermsAndConditions: zodOpenapi.z.boolean(),
|
|
12672
|
-
signatureMethod: zodOpenapi.z.
|
|
12673
|
-
existencePeriod: zodOpenapi.z.
|
|
12674
|
-
reputation: zodOpenapi.z.
|
|
12675
|
-
|
|
12676
|
-
|
|
12949
|
+
signatureMethod: zodOpenapi.z.enum(SIGNATURE_METHOD).nullable(),
|
|
12950
|
+
existencePeriod: zodOpenapi.z.enum(EXISTENCE_PERIOD).nullable(),
|
|
12951
|
+
reputation: zodOpenapi.z.enum(REPUTATION).nullable(),
|
|
12952
|
+
riskBusinessAreas: zodOpenapi.z.array(zodOpenapi.z.enum(RISK_BUSINESS_AREA)).nullable(),
|
|
12953
|
+
riskLevel: zodOpenapi.z.enum(AML_SCORE_TYPE),
|
|
12954
|
+
kycStatus: zodOpenapi.z.enum(KYC_STATUS).nullable(),
|
|
12955
|
+
createdAt: zodOpenapi.z.date().nullable(),
|
|
12956
|
+
updatedAt: zodOpenapi.z.date().nullable(),
|
|
12957
|
+
deletedAt: zodOpenapi.z.date().nullable()
|
|
12677
12958
|
});
|
|
12678
|
-
const amlSelectSchema = amlBaseSelectSchema;
|
|
12679
12959
|
|
|
12680
12960
|
const bankAccountBaseInsertSchema = createInsertSchema(bankAccount);
|
|
12681
12961
|
createUpdateSchema(bankAccount);
|
|
@@ -12709,95 +12989,42 @@ const contactUpdateSchema = zodOpenapi.z.object({
|
|
|
12709
12989
|
phoneNumber: zodOpenapi.z.string().optional()
|
|
12710
12990
|
});
|
|
12711
12991
|
|
|
12712
|
-
|
|
12713
|
-
createUpdateSchema(individual);
|
|
12714
|
-
createSelectSchema(individual);
|
|
12715
|
-
const individualInsertSchema$1 = zodOpenapi.z.object({
|
|
12716
|
-
partyId: zodOpenapi.z.uuid(),
|
|
12717
|
-
name: zodOpenapi.z.string(),
|
|
12718
|
-
surname: zodOpenapi.z.string(),
|
|
12719
|
-
email: zodOpenapi.z.email("Invalid email format").optional().nullable(),
|
|
12720
|
-
phone: zodOpenapi.z.string().optional().nullable(),
|
|
12721
|
-
birthDate: zodOpenapi.z.string().optional().nullable(),
|
|
12722
|
-
birthPlace: zodOpenapi.z.string(),
|
|
12723
|
-
countryOfBirth: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional().nullable(),
|
|
12724
|
-
personalId: zodOpenapi.z.string(),
|
|
12725
|
-
gender: zodOpenapi.z.enum(GENDER),
|
|
12726
|
-
citizenship: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2),
|
|
12727
|
-
citizenshipOther: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional().nullable(),
|
|
12728
|
-
employer: zodOpenapi.z.string().optional().nullable(),
|
|
12729
|
-
employerCountry: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional().nullable(),
|
|
12730
|
-
registeredNumber: zodOpenapi.z.string(),
|
|
12731
|
-
isPep: zodOpenapi.z.boolean(),
|
|
12732
|
-
titleBefore: zodOpenapi.z.string().optional().nullable(),
|
|
12733
|
-
titleAfter: zodOpenapi.z.string().optional().nullable(),
|
|
12734
|
-
birthSurname: zodOpenapi.z.string().optional().nullable(),
|
|
12735
|
-
vocativeTitle: zodOpenapi.z.string().optional().nullable(),
|
|
12736
|
-
deathDate: zodOpenapi.z.date().optional().nullable(),
|
|
12737
|
-
deathNotification: zodOpenapi.z.date().optional().nullable(),
|
|
12738
|
-
pin: zodOpenapi.z.string().optional().nullable(),
|
|
12739
|
-
stayAbroad: zodOpenapi.z.boolean().optional().nullable(),
|
|
12740
|
-
stayAbroadCountries: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional().nullable()
|
|
12741
|
-
});
|
|
12742
|
-
const individualUpdateSchema$1 = zodOpenapi.z.object({
|
|
12743
|
-
partyId: zodOpenapi.z.uuid(),
|
|
12992
|
+
const insertOverrides = {
|
|
12744
12993
|
id: zodOpenapi.z.uuid(),
|
|
12745
|
-
|
|
12746
|
-
|
|
12747
|
-
|
|
12748
|
-
|
|
12749
|
-
birthDate: zodOpenapi.z.string().optional().nullable(),
|
|
12750
|
-
birthPlace: zodOpenapi.z.string().optional(),
|
|
12751
|
-
countryOfBirth: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional().nullable(),
|
|
12752
|
-
personalId: zodOpenapi.z.string().optional(),
|
|
12753
|
-
gender: zodOpenapi.z.enum(GENDER).optional(),
|
|
12754
|
-
citizenship: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional(),
|
|
12755
|
-
citizenshipOther: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional().nullable(),
|
|
12756
|
-
employer: zodOpenapi.z.string().optional().nullable(),
|
|
12757
|
-
employerCountry: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional().nullable(),
|
|
12758
|
-
registeredNumber: zodOpenapi.z.string().optional(),
|
|
12759
|
-
isPep: zodOpenapi.z.boolean().optional(),
|
|
12760
|
-
titleBefore: zodOpenapi.z.string().optional().nullable(),
|
|
12761
|
-
titleAfter: zodOpenapi.z.string().optional().nullable(),
|
|
12762
|
-
birthSurname: zodOpenapi.z.string().optional().nullable(),
|
|
12763
|
-
vocativeTitle: zodOpenapi.z.string().optional().nullable(),
|
|
12764
|
-
deathDate: zodOpenapi.z.date().optional().nullable(),
|
|
12765
|
-
deathNotification: zodOpenapi.z.date().optional().nullable(),
|
|
12766
|
-
pin: zodOpenapi.z.string().optional().nullable(),
|
|
12767
|
-
stayAbroad: zodOpenapi.z.boolean().optional().nullable(),
|
|
12768
|
-
stayAbroadCountries: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional().nullable()
|
|
12769
|
-
});
|
|
12770
|
-
const individualSelectSchema = zodOpenapi.z.object({
|
|
12994
|
+
partyId: zodOpenapi.z.uuid(),
|
|
12995
|
+
email: zodOpenapi.z.email("Invalid email format").optional()
|
|
12996
|
+
};
|
|
12997
|
+
const selectOverrides = {
|
|
12771
12998
|
id: zodOpenapi.z.uuid(),
|
|
12772
12999
|
partyId: zodOpenapi.z.uuid(),
|
|
12773
|
-
internalId: zodOpenapi.z.string().nullable(),
|
|
12774
|
-
name: zodOpenapi.z.string(),
|
|
12775
|
-
surname: zodOpenapi.z.string(),
|
|
12776
|
-
email: zodOpenapi.z.string().nullable(),
|
|
12777
|
-
phone: zodOpenapi.z.string().nullable(),
|
|
12778
|
-
birthDate: zodOpenapi.z.string().nullable(),
|
|
12779
|
-
birthPlace: zodOpenapi.z.string(),
|
|
12780
|
-
countryOfBirth: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).nullable(),
|
|
12781
|
-
personalId: zodOpenapi.z.string(),
|
|
12782
|
-
gender: zodOpenapi.z.enum(GENDER),
|
|
12783
|
-
citizenship: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2),
|
|
12784
|
-
citizenshipOther: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).nullable(),
|
|
12785
|
-
employer: zodOpenapi.z.string().nullable(),
|
|
12786
|
-
employerCountry: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).nullable(),
|
|
12787
|
-
registeredNumber: zodOpenapi.z.string(),
|
|
12788
|
-
isPep: zodOpenapi.z.boolean(),
|
|
12789
|
-
titleBefore: zodOpenapi.z.string().nullable(),
|
|
12790
|
-
titleAfter: zodOpenapi.z.string().nullable(),
|
|
12791
|
-
birthSurname: zodOpenapi.z.string().nullable(),
|
|
12792
|
-
vocativeTitle: zodOpenapi.z.string().nullable(),
|
|
12793
13000
|
deathDate: zodOpenapi.z.coerce.date().nullable(),
|
|
12794
13001
|
deathNotification: zodOpenapi.z.coerce.date().nullable(),
|
|
12795
|
-
pin: zodOpenapi.z.string().nullable(),
|
|
12796
|
-
stayAbroad: zodOpenapi.z.boolean().nullable(),
|
|
12797
|
-
stayAbroadCountries: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).nullable(),
|
|
12798
13002
|
createdAt: zodOpenapi.z.coerce.date().nullable(),
|
|
12799
13003
|
updatedAt: zodOpenapi.z.coerce.date().nullable()
|
|
13004
|
+
};
|
|
13005
|
+
const individualBaseInsertSchema = createInsertSchema(
|
|
13006
|
+
individual,
|
|
13007
|
+
insertOverrides
|
|
13008
|
+
);
|
|
13009
|
+
createUpdateSchema(
|
|
13010
|
+
individual,
|
|
13011
|
+
insertOverrides
|
|
13012
|
+
);
|
|
13013
|
+
const individualBaseSelectSchema = createSelectSchema(
|
|
13014
|
+
individual,
|
|
13015
|
+
selectOverrides
|
|
13016
|
+
);
|
|
13017
|
+
const individualInsertSchema$1 = individualBaseInsertSchema.omit({
|
|
13018
|
+
id: true,
|
|
13019
|
+
internalId: true,
|
|
13020
|
+
createdAt: true,
|
|
13021
|
+
updatedAt: true
|
|
12800
13022
|
});
|
|
13023
|
+
const individualUpdateSchema$1 = individualInsertSchema$1.partial().extend({
|
|
13024
|
+
partyId: zodOpenapi.z.uuid(),
|
|
13025
|
+
id: zodOpenapi.z.uuid()
|
|
13026
|
+
});
|
|
13027
|
+
const individualSelectSchema = individualBaseSelectSchema;
|
|
12801
13028
|
|
|
12802
13029
|
createInsertSchema(organization);
|
|
12803
13030
|
createUpdateSchema(organization);
|
|
@@ -12814,7 +13041,7 @@ const organizationInsertSchema = zodOpenapi.z.object({
|
|
|
12814
13041
|
monthlyVolumeIn: zodOpenapi.z.number(),
|
|
12815
13042
|
monthlyVolumeOut: zodOpenapi.z.number(),
|
|
12816
13043
|
ownedBy: zodOpenapi.z.string(),
|
|
12817
|
-
companyObjects: zodOpenapi.z.
|
|
13044
|
+
companyObjects: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.CZ_NACE_CODES)).min(1),
|
|
12818
13045
|
annualTurnover: zodOpenapi.z.number(),
|
|
12819
13046
|
numberOfEmployees: zodOpenapi.z.number().optional().nullable(),
|
|
12820
13047
|
prosecuted: zodOpenapi.z.string().optional().nullable(),
|
|
@@ -12840,7 +13067,7 @@ const organizationUpdateSchema$1 = zodOpenapi.z.object({
|
|
|
12840
13067
|
monthlyVolumeIn: zodOpenapi.z.number().optional(),
|
|
12841
13068
|
monthlyVolumeOut: zodOpenapi.z.number().optional(),
|
|
12842
13069
|
ownedBy: zodOpenapi.z.string().optional(),
|
|
12843
|
-
companyObjects: zodOpenapi.z.
|
|
13070
|
+
companyObjects: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.CZ_NACE_CODES)).min(1).optional(),
|
|
12844
13071
|
annualTurnover: zodOpenapi.z.number().optional(),
|
|
12845
13072
|
numberOfEmployees: zodOpenapi.z.number().optional().nullable(),
|
|
12846
13073
|
prosecuted: zodOpenapi.z.string().optional().nullable(),
|
|
@@ -12867,7 +13094,7 @@ const organizationOutputSchema = zodOpenapi.z.object({
|
|
|
12867
13094
|
monthlyVolumeIn: zodOpenapi.z.number(),
|
|
12868
13095
|
monthlyVolumeOut: zodOpenapi.z.number(),
|
|
12869
13096
|
ownedBy: zodOpenapi.z.string(),
|
|
12870
|
-
companyObjects: zodOpenapi.z.
|
|
13097
|
+
companyObjects: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.CZ_NACE_CODES)),
|
|
12871
13098
|
annualTurnover: zodOpenapi.z.number(),
|
|
12872
13099
|
numberOfEmployees: zodOpenapi.z.number().nullable(),
|
|
12873
13100
|
prosecuted: zodOpenapi.z.string().nullable(),
|
|
@@ -12900,14 +13127,16 @@ zodOpenapi.z.discriminatedUnion("partyType", [
|
|
|
12900
13127
|
const disponentCreateSchema = zodOpenapi.z.discriminatedUnion("partyType", [
|
|
12901
13128
|
zodOpenapi.z.object({
|
|
12902
13129
|
partyType: zodOpenapi.z.literal("INDIVIDUAL"),
|
|
13130
|
+
relationshipType: zodOpenapi.z.enum(PARTY_RELATIONSHIP_TYPE).optional(),
|
|
12903
13131
|
data: individualInsertSchema$1.omit({ partyId: true })
|
|
12904
13132
|
}),
|
|
12905
13133
|
zodOpenapi.z.object({
|
|
12906
13134
|
partyType: zodOpenapi.z.literal("ORGANIZATION"),
|
|
13135
|
+
relationshipType: zodOpenapi.z.enum(PARTY_RELATIONSHIP_TYPE).optional(),
|
|
12907
13136
|
data: organizationInsertSchema.omit({ partyId: true })
|
|
12908
13137
|
})
|
|
12909
13138
|
]);
|
|
12910
|
-
const disponentUpdateSchema
|
|
13139
|
+
const disponentUpdateSchema = zodOpenapi.z.discriminatedUnion("partyType", [
|
|
12911
13140
|
zodOpenapi.z.object({
|
|
12912
13141
|
partyType: zodOpenapi.z.literal("INDIVIDUAL"),
|
|
12913
13142
|
data: individualUpdateSchema$1
|
|
@@ -12917,6 +13146,18 @@ const disponentUpdateSchema$1 = zodOpenapi.z.discriminatedUnion("partyType", [
|
|
|
12917
13146
|
data: organizationUpdateSchema$1
|
|
12918
13147
|
})
|
|
12919
13148
|
]);
|
|
13149
|
+
const disponentSyncSchema$1 = zodOpenapi.z.discriminatedUnion("partyType", [
|
|
13150
|
+
zodOpenapi.z.object({
|
|
13151
|
+
partyType: zodOpenapi.z.literal("INDIVIDUAL"),
|
|
13152
|
+
relationshipType: zodOpenapi.z.enum(PARTY_RELATIONSHIP_TYPE).optional(),
|
|
13153
|
+
data: individualInsertSchema$1.omit({ partyId: true }).extend({ id: zodOpenapi.z.uuid().optional() })
|
|
13154
|
+
}),
|
|
13155
|
+
zodOpenapi.z.object({
|
|
13156
|
+
partyType: zodOpenapi.z.literal("ORGANIZATION"),
|
|
13157
|
+
relationshipType: zodOpenapi.z.enum(PARTY_RELATIONSHIP_TYPE).optional(),
|
|
13158
|
+
data: organizationInsertSchema.omit({ partyId: true }).extend({ id: zodOpenapi.z.uuid().optional() })
|
|
13159
|
+
})
|
|
13160
|
+
]);
|
|
12920
13161
|
const disponentSelectSchema = zodOpenapi.z.discriminatedUnion("partyType", [
|
|
12921
13162
|
zodOpenapi.z.object({
|
|
12922
13163
|
partyType: zodOpenapi.z.literal("INDIVIDUAL"),
|
|
@@ -12928,7 +13169,7 @@ const disponentSelectSchema = zodOpenapi.z.discriminatedUnion("partyType", [
|
|
|
12928
13169
|
})
|
|
12929
13170
|
]);
|
|
12930
13171
|
zodOpenapi.z.array(disponentSelectSchema).optional();
|
|
12931
|
-
zodOpenapi.z.array(disponentUpdateSchema
|
|
13172
|
+
zodOpenapi.z.array(disponentUpdateSchema).optional();
|
|
12932
13173
|
|
|
12933
13174
|
createInsertSchema(idDocument);
|
|
12934
13175
|
createUpdateSchema(idDocument);
|
|
@@ -13025,6 +13266,7 @@ const partySchema$2 = zodOpenapi.z.object({
|
|
|
13025
13266
|
note: zodOpenapi.z.string().optional(),
|
|
13026
13267
|
countryCode: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional(),
|
|
13027
13268
|
customerStatus: zodOpenapi.z.enum(CUSTOMER_STATUS).optional(),
|
|
13269
|
+
isRoot: zodOpenapi.z.boolean().optional(),
|
|
13028
13270
|
legacyId: zodOpenapi.z.string().optional()
|
|
13029
13271
|
});
|
|
13030
13272
|
const partyOutputSchema$1 = zodOpenapi.z.object({
|
|
@@ -13035,7 +13277,7 @@ const partyOutputSchema$1 = zodOpenapi.z.object({
|
|
|
13035
13277
|
id: zodOpenapi.z.uuid(),
|
|
13036
13278
|
note: zodOpenapi.z.string().nullable(),
|
|
13037
13279
|
countryCode: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).nullable(),
|
|
13038
|
-
|
|
13280
|
+
isRoot: zodOpenapi.z.boolean(),
|
|
13039
13281
|
createdAt: zodOpenapi.z.date().nullable(),
|
|
13040
13282
|
updatedAt: zodOpenapi.z.date().nullable()
|
|
13041
13283
|
});
|
|
@@ -13049,19 +13291,21 @@ zodOpenapi.z.object({
|
|
|
13049
13291
|
disponents: zodOpenapi.z.array(disponentCreateSchema).nullable(),
|
|
13050
13292
|
addresses: zodOpenapi.z.array(addressInsertSchema.omit({ partyId: true })),
|
|
13051
13293
|
aml: amlInsertSchema.omit({ partyId: true }),
|
|
13052
|
-
products: productsInputSchema$2.optional()
|
|
13294
|
+
products: productsInputSchema$2.optional(),
|
|
13295
|
+
traderIds: zodOpenapi.z.array(zodOpenapi.z.uuid()).optional()
|
|
13053
13296
|
});
|
|
13054
13297
|
zodOpenapi.z.object({
|
|
13055
13298
|
partyId: zodOpenapi.z.uuid(),
|
|
13056
13299
|
party: partySchema$2,
|
|
13057
13300
|
personalData: individualUpdateSchema$1.optional(),
|
|
13058
13301
|
organizationData: organizationUpdateSchema$1.optional(),
|
|
13059
|
-
bankAccounts: zodOpenapi.z.array(bankAccountUpsertSchema).optional(),
|
|
13060
|
-
recipients: zodOpenapi.z.array(recipientUpsertSchema).optional(),
|
|
13061
|
-
disponents: zodOpenapi.z.array(
|
|
13062
|
-
addresses: zodOpenapi.z.array(
|
|
13302
|
+
bankAccounts: zodOpenapi.z.array(bankAccountUpsertSchema.partial({ id: true })).optional(),
|
|
13303
|
+
recipients: zodOpenapi.z.array(recipientUpsertSchema.partial({ id: true })).optional(),
|
|
13304
|
+
disponents: zodOpenapi.z.array(disponentSyncSchema$1).optional(),
|
|
13305
|
+
addresses: zodOpenapi.z.array(addressInsertSchema).optional(),
|
|
13063
13306
|
aml: amlUpdateSchema.optional(),
|
|
13064
|
-
products: productsInputSchema$2.optional()
|
|
13307
|
+
products: productsInputSchema$2.optional(),
|
|
13308
|
+
traderIds: zodOpenapi.z.array(zodOpenapi.z.uuid()).optional()
|
|
13065
13309
|
});
|
|
13066
13310
|
const partySelectOutputSchema = zodOpenapi.z.object({
|
|
13067
13311
|
party: partyOutputSchema$1.nullable(),
|
|
@@ -13072,7 +13316,8 @@ const partySelectOutputSchema = zodOpenapi.z.object({
|
|
|
13072
13316
|
disponents: zodOpenapi.z.array(disponentSelectSchema).nullable(),
|
|
13073
13317
|
addresses: zodOpenapi.z.array(addressSelectSchema).nullable(),
|
|
13074
13318
|
recipients: zodOpenapi.z.array(recipientSelectSchema).nullable(),
|
|
13075
|
-
products: productsOutputSchema$1.nullable()
|
|
13319
|
+
products: productsOutputSchema$1.nullable(),
|
|
13320
|
+
traderIds: zodOpenapi.z.array(zodOpenapi.z.uuid()).nullable()
|
|
13076
13321
|
});
|
|
13077
13322
|
zodOpenapi.z.array(partySelectOutputSchema);
|
|
13078
13323
|
const partySelectDataSchema = zodOpenapi.z.object({
|
|
@@ -13090,7 +13335,8 @@ const partySelectArrayDataSchema = zodOpenapi.z.object({
|
|
|
13090
13335
|
zodOpenapi.z.object({
|
|
13091
13336
|
...partySelectDataSchema.shape,
|
|
13092
13337
|
...partySelectArrayDataSchema.shape,
|
|
13093
|
-
products: productsOutputSchema$1.nullable()
|
|
13338
|
+
products: productsOutputSchema$1.nullable(),
|
|
13339
|
+
traderIds: zodOpenapi.z.array(zodOpenapi.z.uuid()).nullable()
|
|
13094
13340
|
});
|
|
13095
13341
|
|
|
13096
13342
|
createInsertSchema(partyChange);
|
|
@@ -13444,7 +13690,7 @@ const individualInsertSchema = zodOpenapi.z.object({
|
|
|
13444
13690
|
citizenshipOther: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional(),
|
|
13445
13691
|
employer: zodOpenapi.z.string().optional(),
|
|
13446
13692
|
employerCountry: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional(),
|
|
13447
|
-
registeredNumber: zodOpenapi.z.string(),
|
|
13693
|
+
registeredNumber: zodOpenapi.z.string().optional(),
|
|
13448
13694
|
isPep: zodOpenapi.z.boolean(),
|
|
13449
13695
|
titleBefore: zodOpenapi.z.string().optional(),
|
|
13450
13696
|
titleAfter: zodOpenapi.z.string().optional(),
|
|
@@ -13468,7 +13714,7 @@ const createOrganizationInputSchema = zodOpenapi.z.object({
|
|
|
13468
13714
|
monthlyVolumeIn: zodOpenapi.z.number(),
|
|
13469
13715
|
monthlyVolumeOut: zodOpenapi.z.number(),
|
|
13470
13716
|
ownedBy: zodOpenapi.z.string(),
|
|
13471
|
-
companyObjects: zodOpenapi.z.
|
|
13717
|
+
companyObjects: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.CZ_NACE_CODES)).min(1),
|
|
13472
13718
|
annualTurnover: zodOpenapi.z.number(),
|
|
13473
13719
|
numberOfEmployees: zodOpenapi.z.number(),
|
|
13474
13720
|
prosecuted: zodOpenapi.z.string().optional(),
|
|
@@ -13481,7 +13727,7 @@ const createOrganizationInputSchema = zodOpenapi.z.object({
|
|
|
13481
13727
|
operationCountries: zodOpenapi.z.string(),
|
|
13482
13728
|
riskyBusinessType: zodOpenapi.z.string().optional()
|
|
13483
13729
|
});
|
|
13484
|
-
const updateBankAccountSchema
|
|
13730
|
+
const updateBankAccountSchema = zodOpenapi.z.object({
|
|
13485
13731
|
...bankAccountMetadataSchema.shape,
|
|
13486
13732
|
partyId: zodOpenapi.z.uuid(),
|
|
13487
13733
|
internalId: zodOpenapi.z.string().optional(),
|
|
@@ -13491,7 +13737,7 @@ const updateBankAccountSchema$1 = zodOpenapi.z.object({
|
|
|
13491
13737
|
countryCode: bankAccountMetadataSchema.shape.countryCode.nonoptional(),
|
|
13492
13738
|
id: bankAccountMetadataSchema.shape.id.nonoptional()
|
|
13493
13739
|
});
|
|
13494
|
-
const bankAccountInputSchema = updateBankAccountSchema
|
|
13740
|
+
const bankAccountInputSchema = updateBankAccountSchema.required({
|
|
13495
13741
|
holderName: true,
|
|
13496
13742
|
currency: true,
|
|
13497
13743
|
countryCode: true
|
|
@@ -13520,23 +13766,55 @@ const createAddressInputSchema = zodOpenapi.z.object({
|
|
|
13520
13766
|
countryCode: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2),
|
|
13521
13767
|
ruianCode: zodOpenapi.z.string().optional()
|
|
13522
13768
|
});
|
|
13769
|
+
const businessPartnerInputSchema$1 = zodOpenapi.z.object({
|
|
13770
|
+
name: zodOpenapi.z.string(),
|
|
13771
|
+
country: zodOpenapi.z.string(),
|
|
13772
|
+
cooperationReason: zodOpenapi.z.string().nullable()
|
|
13773
|
+
});
|
|
13774
|
+
const foSourceOfWealthInputSchema$1 = zodOpenapi.z.object({
|
|
13775
|
+
incomeSources: zodOpenapi.z.array(zodOpenapi.z.enum(INCOME_SOURCE)).min(1),
|
|
13776
|
+
incomeSourceOther: zodOpenapi.z.string().nullable(),
|
|
13777
|
+
monthlyIncome: zodOpenapi.z.enum(MONTHLY_INCOME_RANGE),
|
|
13778
|
+
employer: zodOpenapi.z.string().nullable(),
|
|
13779
|
+
employerCountry: zodOpenapi.z.string().nullable()
|
|
13780
|
+
});
|
|
13781
|
+
const businessSourceOfWealthInputSchema$1 = zodOpenapi.z.object({
|
|
13782
|
+
financialFundsSources: zodOpenapi.z.array(zodOpenapi.z.enum(FINANCIAL_FUNDS_SOURCE)).min(1),
|
|
13783
|
+
financialFundsSourceOther: zodOpenapi.z.string().nullable(),
|
|
13784
|
+
mainBusinessSubjects: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.CZ_TRADE_LICENSE_CODES)).min(1),
|
|
13785
|
+
companyTurnover: zodOpenapi.z.enum(COMPANY_TURNOVER_RANGE),
|
|
13786
|
+
operatingCountries: zodOpenapi.z.array(zodOpenapi.z.enum(OPERATING_COUNTRY)).min(1),
|
|
13787
|
+
operatingCountriesOther: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2)).nullable(),
|
|
13788
|
+
businessPartners: zodOpenapi.z.array(businessPartnerInputSchema$1).nullable(),
|
|
13789
|
+
businessActivitiesNote: zodOpenapi.z.string().nullable()
|
|
13790
|
+
});
|
|
13523
13791
|
const createAmlInputSchema = zodOpenapi.z.object({
|
|
13524
13792
|
internalId: zodOpenapi.z.string().optional(),
|
|
13525
|
-
sourceOfWealth: zodOpenapi.z.
|
|
13526
|
-
|
|
13527
|
-
|
|
13528
|
-
|
|
13793
|
+
sourceOfWealth: zodOpenapi.z.union([
|
|
13794
|
+
foSourceOfWealthInputSchema$1,
|
|
13795
|
+
businessSourceOfWealthInputSchema$1
|
|
13796
|
+
]),
|
|
13797
|
+
yearlyIncome: zodOpenapi.z.enum(YEARLY_INCOME),
|
|
13798
|
+
sourceOfIncome: zodOpenapi.z.array(zodOpenapi.z.enum(INCOME_SOURCE)).min(1),
|
|
13799
|
+
incomeSourceOther: zodOpenapi.z.string().optional(),
|
|
13800
|
+
servicePurposes: zodOpenapi.z.array(zodOpenapi.z.enum(SERVICE_PURPOSE)).optional(),
|
|
13801
|
+
servicePurposesOther: zodOpenapi.z.string().optional(),
|
|
13802
|
+
taxDomicile: zodOpenapi.z.enum(TAX_DOMICILE).optional(),
|
|
13803
|
+
taxDomicileCountry: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional(),
|
|
13529
13804
|
transactionType: zodOpenapi.z.string().optional(),
|
|
13530
13805
|
transactionTypeExpiry: zodOpenapi.z.date().optional(),
|
|
13531
13806
|
isDistraint: zodOpenapi.z.boolean().default(false),
|
|
13532
|
-
estTxsVolumeMonth: zodOpenapi.z.
|
|
13533
|
-
estTxsVolumeYear: zodOpenapi.z.
|
|
13534
|
-
|
|
13535
|
-
|
|
13807
|
+
estTxsVolumeMonth: zodOpenapi.z.enum(EST_TXS_VOLUME_MONTH),
|
|
13808
|
+
estTxsVolumeYear: zodOpenapi.z.enum(EST_TXS_VOLUME_YEAR),
|
|
13809
|
+
estTxsCountMonth: zodOpenapi.z.number().int().optional(),
|
|
13810
|
+
tradingCountries: zodOpenapi.z.array(zodOpenapi.z.enum(TARGET_COUNTRY)).min(1),
|
|
13811
|
+
tradingCountriesOther: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2)).optional(),
|
|
13812
|
+
tradingSide: zodOpenapi.z.enum(TRADING_SIDE),
|
|
13536
13813
|
acceptedAMLTermsAndConditions: zodOpenapi.z.boolean(),
|
|
13537
|
-
signatureMethod: zodOpenapi.z.
|
|
13538
|
-
existencePeriod: zodOpenapi.z.
|
|
13539
|
-
reputation: zodOpenapi.z.
|
|
13814
|
+
signatureMethod: zodOpenapi.z.enum(SIGNATURE_METHOD).optional(),
|
|
13815
|
+
existencePeriod: zodOpenapi.z.enum(EXISTENCE_PERIOD).optional(),
|
|
13816
|
+
reputation: zodOpenapi.z.enum(REPUTATION).optional(),
|
|
13817
|
+
riskBusinessAreas: zodOpenapi.z.array(zodOpenapi.z.enum(RISK_BUSINESS_AREA)).optional(),
|
|
13540
13818
|
riskLevel: zodOpenapi.z.enum(AML_SCORE_TYPE).optional(),
|
|
13541
13819
|
kycStatus: zodOpenapi.z.enum(KYC_STATUS).optional()
|
|
13542
13820
|
});
|
|
@@ -13549,6 +13827,48 @@ const productsInputSchema$1 = zodOpenapi.z.object({
|
|
|
13549
13827
|
}).optional(),
|
|
13550
13828
|
cbs: zodOpenapi.z.object({}).optional()
|
|
13551
13829
|
});
|
|
13830
|
+
const ownerInputSchema = zodOpenapi.z.object({
|
|
13831
|
+
titleBefore: zodOpenapi.z.string().optional(),
|
|
13832
|
+
name: zodOpenapi.z.string(),
|
|
13833
|
+
surname: zodOpenapi.z.string(),
|
|
13834
|
+
titleAfter: zodOpenapi.z.string().optional(),
|
|
13835
|
+
birthDate: zodOpenapi.z.string(),
|
|
13836
|
+
birthPlace: zodOpenapi.z.string(),
|
|
13837
|
+
personalId: zodOpenapi.z.string(),
|
|
13838
|
+
gender: zodOpenapi.z.enum(GENDER),
|
|
13839
|
+
citizenship: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2),
|
|
13840
|
+
isPep: zodOpenapi.z.boolean(),
|
|
13841
|
+
address: createAddressInputSchema,
|
|
13842
|
+
sharePercentage: zodOpenapi.z.number().max(100),
|
|
13843
|
+
shareEstablishedAt: zodOpenapi.z.date()
|
|
13844
|
+
});
|
|
13845
|
+
const idDocumentInputSchema$1 = zodOpenapi.z.object({
|
|
13846
|
+
idDocType: zodOpenapi.z.enum(ID_DOC_TYPE),
|
|
13847
|
+
idDocNumber: zodOpenapi.z.string(),
|
|
13848
|
+
issueDate: zodOpenapi.z.date().optional(),
|
|
13849
|
+
expirationDate: zodOpenapi.z.date().optional(),
|
|
13850
|
+
issuer: zodOpenapi.z.string().optional(),
|
|
13851
|
+
frontImageUri: zodOpenapi.z.string().optional(),
|
|
13852
|
+
backImageUri: zodOpenapi.z.string().optional()
|
|
13853
|
+
});
|
|
13854
|
+
const legalRepresentativeInputSchema = zodOpenapi.z.object({
|
|
13855
|
+
titleBefore: zodOpenapi.z.string().optional(),
|
|
13856
|
+
name: zodOpenapi.z.string(),
|
|
13857
|
+
surname: zodOpenapi.z.string(),
|
|
13858
|
+
titleAfter: zodOpenapi.z.string().optional(),
|
|
13859
|
+
birthDate: zodOpenapi.z.string(),
|
|
13860
|
+
birthPlace: zodOpenapi.z.string(),
|
|
13861
|
+
personalId: zodOpenapi.z.string(),
|
|
13862
|
+
gender: zodOpenapi.z.enum(GENDER),
|
|
13863
|
+
citizenship: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2),
|
|
13864
|
+
isPep: zodOpenapi.z.boolean(),
|
|
13865
|
+
phone: zodOpenapi.z.string().optional(),
|
|
13866
|
+
email: zodOpenapi.z.string().optional(),
|
|
13867
|
+
pin: zodOpenapi.z.string().optional(),
|
|
13868
|
+
identityDocuments: zodOpenapi.z.array(idDocumentInputSchema$1).optional(),
|
|
13869
|
+
address: createAddressInputSchema,
|
|
13870
|
+
dateOfEstablishment: zodOpenapi.z.date()
|
|
13871
|
+
});
|
|
13552
13872
|
const createPartyInputSchema = zodOpenapi.z.object({
|
|
13553
13873
|
party: partySchema$1.omit({ id: true }),
|
|
13554
13874
|
personalData: individualInsertSchema.nullable(),
|
|
@@ -13556,9 +13876,12 @@ const createPartyInputSchema = zodOpenapi.z.object({
|
|
|
13556
13876
|
bankAccounts: zodOpenapi.z.array(bankAccountInputSchema),
|
|
13557
13877
|
disponents: zodOpenapi.z.array(disponentSchema),
|
|
13558
13878
|
addresses: zodOpenapi.z.array(createAddressInputSchema),
|
|
13879
|
+
owners: zodOpenapi.z.array(ownerInputSchema).optional(),
|
|
13880
|
+
legalRepresentatives: zodOpenapi.z.array(legalRepresentativeInputSchema).optional(),
|
|
13559
13881
|
aml: createAmlInputSchema,
|
|
13560
13882
|
recipients: zodOpenapi.z.array(bankAccountInputSchema),
|
|
13561
|
-
products: productsInputSchema$1.optional()
|
|
13883
|
+
products: productsInputSchema$1.optional(),
|
|
13884
|
+
traderIds: zodOpenapi.z.array(zodOpenapi.z.uuid()).optional()
|
|
13562
13885
|
});
|
|
13563
13886
|
const partyCreateOutputSchema = zodOpenapi.z.object({
|
|
13564
13887
|
customerStatus: zodOpenapi.z.enum(CUSTOMER_STATUS),
|
|
@@ -13578,8 +13901,9 @@ const responseBodySchema$5 = zodOpenapi.z.object({
|
|
|
13578
13901
|
const createPartyRoute = zodOpenapi.createRoute({
|
|
13579
13902
|
method: "post",
|
|
13580
13903
|
path: "/",
|
|
13581
|
-
summary: "Create
|
|
13904
|
+
summary: "Create Party",
|
|
13582
13905
|
tags: ["Parties"],
|
|
13906
|
+
description: "Creates a new party with all associated data \u2014 personal/organization data, bank accounts, addresses, disponents, AML records, recipients, and product configuration. The party type determines whether individual or organization data is required.",
|
|
13583
13907
|
request: {
|
|
13584
13908
|
body: {
|
|
13585
13909
|
content: {
|
|
@@ -13605,8 +13929,11 @@ const createPartyRoute = zodOpenapi.createRoute({
|
|
|
13605
13929
|
new zodOpenapi.OpenAPIHono().openapi(
|
|
13606
13930
|
createPartyRoute,
|
|
13607
13931
|
async (context) => {
|
|
13608
|
-
const
|
|
13609
|
-
const { data: partyData, error } = await context.env.MASTER_DATA_MANAGEMENT_SERVICE.createParty(
|
|
13932
|
+
const { owners, legalRepresentatives, ...partyInput } = context.req.valid("json");
|
|
13933
|
+
const { data: partyData, error } = await context.env.MASTER_DATA_MANAGEMENT_SERVICE.createParty({
|
|
13934
|
+
...partyInput,
|
|
13935
|
+
party: { ...partyInput.party, isRoot: true }
|
|
13936
|
+
});
|
|
13610
13937
|
if (!partyData || error) {
|
|
13611
13938
|
return context.json(
|
|
13612
13939
|
{
|
|
@@ -13615,6 +13942,85 @@ new zodOpenapi.OpenAPIHono().openapi(
|
|
|
13615
13942
|
500
|
|
13616
13943
|
);
|
|
13617
13944
|
}
|
|
13945
|
+
const mdm = context.env.MASTER_DATA_MANAGEMENT_SERVICE;
|
|
13946
|
+
if (owners?.length) {
|
|
13947
|
+
for (const owner of owners) {
|
|
13948
|
+
const { address, sharePercentage, shareEstablishedAt, ...individual } = owner;
|
|
13949
|
+
const { data: ownerParty, error: ownerError } = await mdm.createParty({
|
|
13950
|
+
party: {
|
|
13951
|
+
partyType: "INDIVIDUAL",
|
|
13952
|
+
language: partyInput.party.language,
|
|
13953
|
+
customerStatus: "NEW"
|
|
13954
|
+
},
|
|
13955
|
+
personalData: individual,
|
|
13956
|
+
organizationData: null,
|
|
13957
|
+
bankAccounts: null,
|
|
13958
|
+
recipients: null,
|
|
13959
|
+
disponents: null,
|
|
13960
|
+
addresses: [{ ...address, addressType: "PERMANENT_ADDRESS" }],
|
|
13961
|
+
aml: partyInput.aml
|
|
13962
|
+
});
|
|
13963
|
+
if (ownerParty && !ownerError) {
|
|
13964
|
+
await mdm.linkPartyToParty({
|
|
13965
|
+
fromPartyId: ownerParty.id,
|
|
13966
|
+
toPartyId: partyData.id,
|
|
13967
|
+
relationshipType: "UBO",
|
|
13968
|
+
sharePercentage,
|
|
13969
|
+
fromDate: shareEstablishedAt
|
|
13970
|
+
});
|
|
13971
|
+
}
|
|
13972
|
+
}
|
|
13973
|
+
}
|
|
13974
|
+
if (legalRepresentatives?.length) {
|
|
13975
|
+
for (const rep of legalRepresentatives) {
|
|
13976
|
+
const {
|
|
13977
|
+
address,
|
|
13978
|
+
identityDocuments,
|
|
13979
|
+
dateOfEstablishment,
|
|
13980
|
+
...individual
|
|
13981
|
+
} = rep;
|
|
13982
|
+
const { data: repParty, error: repError } = await mdm.createParty({
|
|
13983
|
+
party: {
|
|
13984
|
+
partyType: "INDIVIDUAL",
|
|
13985
|
+
language: partyInput.party.language,
|
|
13986
|
+
customerStatus: "NEW"
|
|
13987
|
+
},
|
|
13988
|
+
personalData: individual,
|
|
13989
|
+
organizationData: null,
|
|
13990
|
+
bankAccounts: null,
|
|
13991
|
+
recipients: null,
|
|
13992
|
+
disponents: null,
|
|
13993
|
+
addresses: [{ ...address, addressType: "PERMANENT_ADDRESS" }],
|
|
13994
|
+
aml: partyInput.aml
|
|
13995
|
+
});
|
|
13996
|
+
if (repParty && !repError) {
|
|
13997
|
+
await mdm.linkPartyToParty({
|
|
13998
|
+
fromPartyId: repParty.id,
|
|
13999
|
+
toPartyId: partyData.id,
|
|
14000
|
+
relationshipType: "BOARD_MEMBER",
|
|
14001
|
+
fromDate: dateOfEstablishment
|
|
14002
|
+
});
|
|
14003
|
+
if (identityDocuments?.length) {
|
|
14004
|
+
for (const doc of identityDocuments) {
|
|
14005
|
+
await mdm.createIdDocument({
|
|
14006
|
+
partyId: repParty.id,
|
|
14007
|
+
idDocument: {
|
|
14008
|
+
partyId: repParty.id,
|
|
14009
|
+
idDocType: doc.idDocType,
|
|
14010
|
+
idDocNumber: doc.idDocNumber,
|
|
14011
|
+
idDocHolderName: `${individual.name} ${individual.surname}`,
|
|
14012
|
+
issueDate: doc.issueDate,
|
|
14013
|
+
expirationDate: doc.expirationDate,
|
|
14014
|
+
issuer: doc.issuer,
|
|
14015
|
+
frontImageUri: doc.frontImageUri,
|
|
14016
|
+
backImageUri: doc.backImageUri
|
|
14017
|
+
}
|
|
14018
|
+
});
|
|
14019
|
+
}
|
|
14020
|
+
}
|
|
14021
|
+
}
|
|
14022
|
+
}
|
|
14023
|
+
}
|
|
13618
14024
|
return context.json(
|
|
13619
14025
|
{
|
|
13620
14026
|
message: "party created",
|
|
@@ -13676,7 +14082,7 @@ const organizationUpdateSchema = zodOpenapi.z.object({
|
|
|
13676
14082
|
monthlyVolumeIn: zodOpenapi.z.number().optional(),
|
|
13677
14083
|
monthlyVolumeOut: zodOpenapi.z.number().optional(),
|
|
13678
14084
|
ownedBy: zodOpenapi.z.string().optional(),
|
|
13679
|
-
companyObjects: zodOpenapi.z.
|
|
14085
|
+
companyObjects: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.CZ_NACE_CODES)).min(1).optional(),
|
|
13680
14086
|
annualTurnover: zodOpenapi.z.number().optional(),
|
|
13681
14087
|
numberOfEmployees: zodOpenapi.z.number().optional(),
|
|
13682
14088
|
prosecuted: zodOpenapi.z.string().optional(),
|
|
@@ -13689,7 +14095,7 @@ const organizationUpdateSchema = zodOpenapi.z.object({
|
|
|
13689
14095
|
operationCountries: zodOpenapi.z.string(),
|
|
13690
14096
|
riskyBusinessType: zodOpenapi.z.string().optional()
|
|
13691
14097
|
});
|
|
13692
|
-
const
|
|
14098
|
+
const syncBankAccountSchema = zodOpenapi.z.object({
|
|
13693
14099
|
...bankAccountMetadataSchema.shape,
|
|
13694
14100
|
partyId: zodOpenapi.z.uuid(),
|
|
13695
14101
|
internalId: zodOpenapi.z.string().optional(),
|
|
@@ -13697,20 +14103,72 @@ const updateBankAccountSchema = zodOpenapi.z.object({
|
|
|
13697
14103
|
number: zodOpenapi.z.string().optional(),
|
|
13698
14104
|
currency: bankAccountMetadataSchema.shape.currency.nonoptional(),
|
|
13699
14105
|
countryCode: bankAccountMetadataSchema.shape.countryCode.nonoptional(),
|
|
13700
|
-
id:
|
|
14106
|
+
id: zodOpenapi.z.uuid().optional()
|
|
13701
14107
|
});
|
|
13702
|
-
const
|
|
14108
|
+
const disponentIndividualSyncDataSchema = zodOpenapi.z.object({
|
|
14109
|
+
id: zodOpenapi.z.uuid().optional(),
|
|
14110
|
+
name: zodOpenapi.z.string(),
|
|
14111
|
+
surname: zodOpenapi.z.string(),
|
|
14112
|
+
email: zodOpenapi.z.string().optional(),
|
|
14113
|
+
phone: zodOpenapi.z.string().optional(),
|
|
14114
|
+
birthDate: zodOpenapi.z.string().optional(),
|
|
14115
|
+
birthPlace: zodOpenapi.z.string(),
|
|
14116
|
+
countryOfBirth: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional(),
|
|
14117
|
+
personalId: zodOpenapi.z.string(),
|
|
14118
|
+
gender: zodOpenapi.z.enum(GENDER),
|
|
14119
|
+
citizenship: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2),
|
|
14120
|
+
citizenshipOther: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional(),
|
|
14121
|
+
employer: zodOpenapi.z.string().optional(),
|
|
14122
|
+
employerCountry: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional(),
|
|
14123
|
+
registeredNumber: zodOpenapi.z.string().optional(),
|
|
14124
|
+
isPep: zodOpenapi.z.boolean(),
|
|
14125
|
+
titleBefore: zodOpenapi.z.string().optional(),
|
|
14126
|
+
titleAfter: zodOpenapi.z.string().optional(),
|
|
14127
|
+
birthSurname: zodOpenapi.z.string().optional(),
|
|
14128
|
+
vocativeTitle: zodOpenapi.z.string().optional(),
|
|
14129
|
+
deathDate: zodOpenapi.z.date().optional(),
|
|
14130
|
+
deathNotification: zodOpenapi.z.date().optional(),
|
|
14131
|
+
pin: zodOpenapi.z.string().optional(),
|
|
14132
|
+
stayAbroad: zodOpenapi.z.boolean().optional(),
|
|
14133
|
+
stayAbroadCountries: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional()
|
|
14134
|
+
});
|
|
14135
|
+
const disponentOrganizationSyncDataSchema = zodOpenapi.z.object({
|
|
14136
|
+
id: zodOpenapi.z.uuid().optional(),
|
|
14137
|
+
businessName: zodOpenapi.z.string(),
|
|
14138
|
+
email: zodOpenapi.z.email("Invalid email format").optional(),
|
|
14139
|
+
phone: zodOpenapi.z.string().optional(),
|
|
14140
|
+
registeredNumber: zodOpenapi.z.string(),
|
|
14141
|
+
registeredIn: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2),
|
|
14142
|
+
operatesIn: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2),
|
|
14143
|
+
presentIn: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2),
|
|
14144
|
+
monthlyVolumeIn: zodOpenapi.z.number(),
|
|
14145
|
+
monthlyVolumeOut: zodOpenapi.z.number(),
|
|
14146
|
+
ownedBy: zodOpenapi.z.string(),
|
|
14147
|
+
companyObjects: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.CZ_NACE_CODES)).min(1),
|
|
14148
|
+
annualTurnover: zodOpenapi.z.number(),
|
|
14149
|
+
numberOfEmployees: zodOpenapi.z.number().optional(),
|
|
14150
|
+
prosecuted: zodOpenapi.z.string().optional(),
|
|
14151
|
+
location: zodOpenapi.z.string().optional(),
|
|
14152
|
+
fileNumber: zodOpenapi.z.string().optional(),
|
|
14153
|
+
websiteUrl: zodOpenapi.z.url("Invalid website URL").optional(),
|
|
14154
|
+
vatPayer: zodOpenapi.z.boolean(),
|
|
14155
|
+
companyObjectsDescription: zodOpenapi.z.string(),
|
|
14156
|
+
turnover3years: zodOpenapi.z.number(),
|
|
14157
|
+
operationCountries: zodOpenapi.z.string(),
|
|
14158
|
+
riskyBusinessType: zodOpenapi.z.string().optional()
|
|
14159
|
+
});
|
|
14160
|
+
const disponentSyncSchema = zodOpenapi.z.discriminatedUnion("partyType", [
|
|
13703
14161
|
zodOpenapi.z.object({
|
|
13704
14162
|
partyType: zodOpenapi.z.literal("INDIVIDUAL"),
|
|
13705
|
-
data:
|
|
14163
|
+
data: disponentIndividualSyncDataSchema
|
|
13706
14164
|
}),
|
|
13707
14165
|
zodOpenapi.z.object({
|
|
13708
14166
|
partyType: zodOpenapi.z.literal("ORGANIZATION"),
|
|
13709
|
-
data:
|
|
14167
|
+
data: disponentOrganizationSyncDataSchema
|
|
13710
14168
|
})
|
|
13711
14169
|
]);
|
|
13712
|
-
const
|
|
13713
|
-
id: zodOpenapi.z.uuid(),
|
|
14170
|
+
const syncAddressInputSchema = zodOpenapi.z.object({
|
|
14171
|
+
id: zodOpenapi.z.uuid().optional(),
|
|
13714
14172
|
partyId: zodOpenapi.z.uuid(),
|
|
13715
14173
|
internalId: zodOpenapi.z.string().optional(),
|
|
13716
14174
|
addressType: zodOpenapi.z.enum(ADDRESS_TYPE),
|
|
@@ -13725,25 +14183,54 @@ const updateAddressInputSchema = zodOpenapi.z.object({
|
|
|
13725
14183
|
countryCode: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2),
|
|
13726
14184
|
ruianCode: zodOpenapi.z.string().optional()
|
|
13727
14185
|
});
|
|
14186
|
+
const businessPartnerInputSchema = zodOpenapi.z.object({
|
|
14187
|
+
name: zodOpenapi.z.string(),
|
|
14188
|
+
country: zodOpenapi.z.string(),
|
|
14189
|
+
cooperationReason: zodOpenapi.z.string().nullable()
|
|
14190
|
+
});
|
|
14191
|
+
const foSourceOfWealthInputSchema = zodOpenapi.z.object({
|
|
14192
|
+
incomeSources: zodOpenapi.z.array(zodOpenapi.z.enum(INCOME_SOURCE)).min(1),
|
|
14193
|
+
incomeSourceOther: zodOpenapi.z.string().nullable(),
|
|
14194
|
+
monthlyIncome: zodOpenapi.z.enum(MONTHLY_INCOME_RANGE),
|
|
14195
|
+
employer: zodOpenapi.z.string().nullable(),
|
|
14196
|
+
employerCountry: zodOpenapi.z.string().nullable()
|
|
14197
|
+
});
|
|
14198
|
+
const businessSourceOfWealthInputSchema = zodOpenapi.z.object({
|
|
14199
|
+
financialFundsSources: zodOpenapi.z.array(zodOpenapi.z.enum(FINANCIAL_FUNDS_SOURCE)).min(1),
|
|
14200
|
+
financialFundsSourceOther: zodOpenapi.z.string().nullable(),
|
|
14201
|
+
mainBusinessSubjects: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.CZ_TRADE_LICENSE_CODES)).min(1),
|
|
14202
|
+
companyTurnover: zodOpenapi.z.enum(COMPANY_TURNOVER_RANGE),
|
|
14203
|
+
operatingCountries: zodOpenapi.z.array(zodOpenapi.z.enum(OPERATING_COUNTRY)).min(1),
|
|
14204
|
+
operatingCountriesOther: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2)).nullable(),
|
|
14205
|
+
businessPartners: zodOpenapi.z.array(businessPartnerInputSchema).nullable(),
|
|
14206
|
+
businessActivitiesNote: zodOpenapi.z.string().nullable()
|
|
14207
|
+
});
|
|
13728
14208
|
const updateAmlInputSchema = zodOpenapi.z.object({
|
|
13729
14209
|
id: zodOpenapi.z.uuid(),
|
|
13730
14210
|
partyId: zodOpenapi.z.uuid().optional(),
|
|
13731
14211
|
internalId: zodOpenapi.z.string().optional(),
|
|
13732
|
-
sourceOfWealth: zodOpenapi.z.
|
|
13733
|
-
yearlyIncome: zodOpenapi.z.
|
|
13734
|
-
|
|
13735
|
-
|
|
14212
|
+
sourceOfWealth: zodOpenapi.z.union([foSourceOfWealthInputSchema, businessSourceOfWealthInputSchema]).optional(),
|
|
14213
|
+
yearlyIncome: zodOpenapi.z.enum(YEARLY_INCOME).optional(),
|
|
14214
|
+
sourceOfIncome: zodOpenapi.z.array(zodOpenapi.z.enum(INCOME_SOURCE)).min(1).optional(),
|
|
14215
|
+
incomeSourceOther: zodOpenapi.z.string().optional(),
|
|
14216
|
+
servicePurposes: zodOpenapi.z.array(zodOpenapi.z.enum(SERVICE_PURPOSE)).optional(),
|
|
14217
|
+
servicePurposesOther: zodOpenapi.z.string().optional(),
|
|
14218
|
+
taxDomicile: zodOpenapi.z.enum(TAX_DOMICILE).optional(),
|
|
14219
|
+
taxDomicileCountry: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional(),
|
|
13736
14220
|
transactionType: zodOpenapi.z.string().optional(),
|
|
13737
14221
|
transactionTypeExpiry: zodOpenapi.z.date().optional(),
|
|
13738
14222
|
isDistraint: zodOpenapi.z.boolean().optional(),
|
|
13739
|
-
estTxsVolumeMonth: zodOpenapi.z.
|
|
13740
|
-
estTxsVolumeYear: zodOpenapi.z.
|
|
13741
|
-
|
|
13742
|
-
|
|
14223
|
+
estTxsVolumeMonth: zodOpenapi.z.enum(EST_TXS_VOLUME_MONTH),
|
|
14224
|
+
estTxsVolumeYear: zodOpenapi.z.enum(EST_TXS_VOLUME_YEAR),
|
|
14225
|
+
estTxsCountMonth: zodOpenapi.z.number().int().optional(),
|
|
14226
|
+
tradingCountries: zodOpenapi.z.array(zodOpenapi.z.enum(TARGET_COUNTRY)).min(1),
|
|
14227
|
+
tradingCountriesOther: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2)).optional(),
|
|
14228
|
+
tradingSide: zodOpenapi.z.enum(TRADING_SIDE),
|
|
13743
14229
|
acceptedAMLTermsAndConditions: zodOpenapi.z.boolean(),
|
|
13744
|
-
signatureMethod: zodOpenapi.z.
|
|
13745
|
-
existencePeriod: zodOpenapi.z.
|
|
13746
|
-
reputation: zodOpenapi.z.
|
|
14230
|
+
signatureMethod: zodOpenapi.z.enum(SIGNATURE_METHOD).optional(),
|
|
14231
|
+
existencePeriod: zodOpenapi.z.enum(EXISTENCE_PERIOD).optional(),
|
|
14232
|
+
reputation: zodOpenapi.z.enum(REPUTATION).optional(),
|
|
14233
|
+
riskBusinessAreas: zodOpenapi.z.array(zodOpenapi.z.enum(RISK_BUSINESS_AREA)).optional(),
|
|
13747
14234
|
riskLevel: zodOpenapi.z.enum(AML_SCORE_TYPE).optional(),
|
|
13748
14235
|
kycStatus: zodOpenapi.z.enum(KYC_STATUS).optional()
|
|
13749
14236
|
});
|
|
@@ -13756,16 +14243,63 @@ const productsInputSchema = zodOpenapi.z.object({
|
|
|
13756
14243
|
}).optional(),
|
|
13757
14244
|
cbs: zodOpenapi.z.object({}).optional()
|
|
13758
14245
|
});
|
|
14246
|
+
const ownerSyncSchema = zodOpenapi.z.object({
|
|
14247
|
+
id: zodOpenapi.z.uuid().optional(),
|
|
14248
|
+
titleBefore: zodOpenapi.z.string().optional(),
|
|
14249
|
+
name: zodOpenapi.z.string(),
|
|
14250
|
+
surname: zodOpenapi.z.string(),
|
|
14251
|
+
titleAfter: zodOpenapi.z.string().optional(),
|
|
14252
|
+
birthDate: zodOpenapi.z.string(),
|
|
14253
|
+
birthPlace: zodOpenapi.z.string(),
|
|
14254
|
+
personalId: zodOpenapi.z.string(),
|
|
14255
|
+
gender: zodOpenapi.z.enum(GENDER),
|
|
14256
|
+
citizenship: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2),
|
|
14257
|
+
isPep: zodOpenapi.z.boolean(),
|
|
14258
|
+
address: syncAddressInputSchema,
|
|
14259
|
+
sharePercentage: zodOpenapi.z.number().max(100),
|
|
14260
|
+
shareEstablishedAt: zodOpenapi.z.date()
|
|
14261
|
+
});
|
|
14262
|
+
const idDocumentInputSchema = zodOpenapi.z.object({
|
|
14263
|
+
idDocType: zodOpenapi.z.enum(ID_DOC_TYPE),
|
|
14264
|
+
idDocNumber: zodOpenapi.z.string(),
|
|
14265
|
+
issueDate: zodOpenapi.z.date().optional(),
|
|
14266
|
+
expirationDate: zodOpenapi.z.date().optional(),
|
|
14267
|
+
issuer: zodOpenapi.z.string().optional(),
|
|
14268
|
+
frontImageUri: zodOpenapi.z.string().optional(),
|
|
14269
|
+
backImageUri: zodOpenapi.z.string().optional()
|
|
14270
|
+
});
|
|
14271
|
+
const legalRepresentativeSyncSchema = zodOpenapi.z.object({
|
|
14272
|
+
id: zodOpenapi.z.uuid().optional(),
|
|
14273
|
+
titleBefore: zodOpenapi.z.string().optional(),
|
|
14274
|
+
name: zodOpenapi.z.string(),
|
|
14275
|
+
surname: zodOpenapi.z.string(),
|
|
14276
|
+
titleAfter: zodOpenapi.z.string().optional(),
|
|
14277
|
+
birthDate: zodOpenapi.z.string(),
|
|
14278
|
+
birthPlace: zodOpenapi.z.string(),
|
|
14279
|
+
personalId: zodOpenapi.z.string(),
|
|
14280
|
+
gender: zodOpenapi.z.enum(GENDER),
|
|
14281
|
+
citizenship: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2),
|
|
14282
|
+
isPep: zodOpenapi.z.boolean(),
|
|
14283
|
+
phone: zodOpenapi.z.string().optional(),
|
|
14284
|
+
email: zodOpenapi.z.string().optional(),
|
|
14285
|
+
pin: zodOpenapi.z.string().optional(),
|
|
14286
|
+
identityDocuments: zodOpenapi.z.array(idDocumentInputSchema).optional(),
|
|
14287
|
+
address: syncAddressInputSchema,
|
|
14288
|
+
dateOfEstablishment: zodOpenapi.z.date()
|
|
14289
|
+
});
|
|
13759
14290
|
const partyUpdateInputSchema = zodOpenapi.z.object({
|
|
13760
14291
|
party: partySchema,
|
|
13761
14292
|
personalData: individualUpdateSchema.nullable(),
|
|
13762
14293
|
organizationData: organizationUpdateSchema.nullable(),
|
|
13763
|
-
bankAccounts: zodOpenapi.z.array(
|
|
13764
|
-
disponents: zodOpenapi.z.array(
|
|
13765
|
-
addresses: zodOpenapi.z.array(
|
|
13766
|
-
|
|
14294
|
+
bankAccounts: zodOpenapi.z.array(syncBankAccountSchema),
|
|
14295
|
+
disponents: zodOpenapi.z.array(disponentSyncSchema).optional(),
|
|
14296
|
+
addresses: zodOpenapi.z.array(syncAddressInputSchema),
|
|
14297
|
+
owners: zodOpenapi.z.array(ownerSyncSchema).optional(),
|
|
14298
|
+
legalRepresentatives: zodOpenapi.z.array(legalRepresentativeSyncSchema).optional(),
|
|
14299
|
+
recipients: zodOpenapi.z.array(syncBankAccountSchema).nullable(),
|
|
13767
14300
|
aml: updateAmlInputSchema.optional(),
|
|
13768
|
-
products: productsInputSchema.optional()
|
|
14301
|
+
products: productsInputSchema.optional(),
|
|
14302
|
+
traderIds: zodOpenapi.z.array(zodOpenapi.z.uuid()).optional()
|
|
13769
14303
|
});
|
|
13770
14304
|
const updatePartyOuputSchema = zodOpenapi.z.object({
|
|
13771
14305
|
id: zodOpenapi.z.uuid(),
|
|
@@ -13781,9 +14315,10 @@ const responseBodySchema$4 = zodOpenapi.z.object({
|
|
|
13781
14315
|
});
|
|
13782
14316
|
const updatePartyRoute = zodOpenapi.createRoute({
|
|
13783
14317
|
method: "put",
|
|
13784
|
-
path: "/
|
|
13785
|
-
summary: "Update
|
|
14318
|
+
path: "/",
|
|
14319
|
+
summary: "Update Party",
|
|
13786
14320
|
tags: ["Parties"],
|
|
14321
|
+
description: "Updates an existing party and its associated child entities. All updatable fields can be provided \u2014 personal/organization data, bank accounts, addresses, disponents, AML, recipients, and products.",
|
|
13787
14322
|
security: [
|
|
13788
14323
|
{
|
|
13789
14324
|
JwtAuth: []
|
|
@@ -13827,7 +14362,8 @@ new zodOpenapi.OpenAPIHono().openapi(
|
|
|
13827
14362
|
addresses: party.addresses ?? void 0,
|
|
13828
14363
|
recipients: party.recipients ?? void 0,
|
|
13829
14364
|
aml: party.aml ?? void 0,
|
|
13830
|
-
products: party.products ?? void 0
|
|
14365
|
+
products: party.products ?? void 0,
|
|
14366
|
+
traderIds: party.traderIds ?? void 0
|
|
13831
14367
|
});
|
|
13832
14368
|
if (!updatedParty || partyError) {
|
|
13833
14369
|
return context.json({ message: "Could not update a Party" }, 404);
|
|
@@ -13852,7 +14388,7 @@ const partyBaseOutputSchema = zodOpenapi.z.object({
|
|
|
13852
14388
|
countryCode: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).nullable(),
|
|
13853
14389
|
createdAt: zodOpenapi.z.date().nullable(),
|
|
13854
14390
|
updatedAt: zodOpenapi.z.date().nullable(),
|
|
13855
|
-
|
|
14391
|
+
isRoot: zodOpenapi.z.boolean()
|
|
13856
14392
|
});
|
|
13857
14393
|
const individualOutputSchema = zodOpenapi.z.object({
|
|
13858
14394
|
id: zodOpenapi.z.uuid(),
|
|
@@ -13871,7 +14407,7 @@ const individualOutputSchema = zodOpenapi.z.object({
|
|
|
13871
14407
|
citizenshipOther: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).nullable(),
|
|
13872
14408
|
employer: zodOpenapi.z.string().nullable(),
|
|
13873
14409
|
employerCountry: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).nullable(),
|
|
13874
|
-
registeredNumber: zodOpenapi.z.string(),
|
|
14410
|
+
registeredNumber: zodOpenapi.z.string().nullable(),
|
|
13875
14411
|
isPep: zodOpenapi.z.boolean(),
|
|
13876
14412
|
titleBefore: zodOpenapi.z.string().nullable(),
|
|
13877
14413
|
titleAfter: zodOpenapi.z.string().nullable(),
|
|
@@ -13898,7 +14434,7 @@ const createOrganizationOutputSchema = zodOpenapi.z.object({
|
|
|
13898
14434
|
monthlyVolumeIn: zodOpenapi.z.number(),
|
|
13899
14435
|
monthlyVolumeOut: zodOpenapi.z.number(),
|
|
13900
14436
|
ownedBy: zodOpenapi.z.string(),
|
|
13901
|
-
companyObjects: zodOpenapi.z.
|
|
14437
|
+
companyObjects: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.CZ_NACE_CODES)),
|
|
13902
14438
|
annualTurnover: zodOpenapi.z.number(),
|
|
13903
14439
|
numberOfEmployees: zodOpenapi.z.number().nullable(),
|
|
13904
14440
|
prosecuted: zodOpenapi.z.string().nullable(),
|
|
@@ -13959,25 +14495,57 @@ const createAddressOutputSchema = zodOpenapi.z.object({
|
|
|
13959
14495
|
createdAt: zodOpenapi.z.date().nullable(),
|
|
13960
14496
|
updatedAt: zodOpenapi.z.date().nullable()
|
|
13961
14497
|
});
|
|
14498
|
+
const businessPartnerOutputSchema = zodOpenapi.z.object({
|
|
14499
|
+
name: zodOpenapi.z.string(),
|
|
14500
|
+
country: zodOpenapi.z.string(),
|
|
14501
|
+
cooperationReason: zodOpenapi.z.string().nullable()
|
|
14502
|
+
});
|
|
14503
|
+
const foSourceOfWealthOutputSchema = zodOpenapi.z.object({
|
|
14504
|
+
incomeSources: zodOpenapi.z.array(zodOpenapi.z.enum(INCOME_SOURCE)),
|
|
14505
|
+
incomeSourceOther: zodOpenapi.z.string().nullable(),
|
|
14506
|
+
monthlyIncome: zodOpenapi.z.enum(MONTHLY_INCOME_RANGE),
|
|
14507
|
+
employer: zodOpenapi.z.string().nullable(),
|
|
14508
|
+
employerCountry: zodOpenapi.z.string().nullable()
|
|
14509
|
+
});
|
|
14510
|
+
const businessSourceOfWealthOutputSchema = zodOpenapi.z.object({
|
|
14511
|
+
financialFundsSources: zodOpenapi.z.array(zodOpenapi.z.enum(FINANCIAL_FUNDS_SOURCE)),
|
|
14512
|
+
financialFundsSourceOther: zodOpenapi.z.string().nullable(),
|
|
14513
|
+
mainBusinessSubjects: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.CZ_TRADE_LICENSE_CODES)),
|
|
14514
|
+
companyTurnover: zodOpenapi.z.enum(COMPANY_TURNOVER_RANGE),
|
|
14515
|
+
operatingCountries: zodOpenapi.z.array(zodOpenapi.z.enum(OPERATING_COUNTRY)),
|
|
14516
|
+
operatingCountriesOther: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2)).nullable(),
|
|
14517
|
+
businessPartners: zodOpenapi.z.array(businessPartnerOutputSchema).nullable(),
|
|
14518
|
+
businessActivitiesNote: zodOpenapi.z.string().nullable()
|
|
14519
|
+
});
|
|
13962
14520
|
const createAmlOutputSchema = zodOpenapi.z.object({
|
|
13963
14521
|
id: zodOpenapi.z.uuid(),
|
|
13964
14522
|
partyId: zodOpenapi.z.uuid(),
|
|
13965
14523
|
internalId: zodOpenapi.z.string().nullable(),
|
|
13966
|
-
sourceOfWealth: zodOpenapi.z.
|
|
13967
|
-
|
|
13968
|
-
|
|
13969
|
-
|
|
14524
|
+
sourceOfWealth: zodOpenapi.z.union([
|
|
14525
|
+
foSourceOfWealthOutputSchema,
|
|
14526
|
+
businessSourceOfWealthOutputSchema
|
|
14527
|
+
]),
|
|
14528
|
+
yearlyIncome: zodOpenapi.z.enum(YEARLY_INCOME),
|
|
14529
|
+
sourceOfIncome: zodOpenapi.z.array(zodOpenapi.z.enum(INCOME_SOURCE)),
|
|
14530
|
+
incomeSourceOther: zodOpenapi.z.string().nullable(),
|
|
14531
|
+
servicePurposes: zodOpenapi.z.array(zodOpenapi.z.enum(SERVICE_PURPOSE)).nullable(),
|
|
14532
|
+
servicePurposesOther: zodOpenapi.z.string().nullable(),
|
|
14533
|
+
taxDomicile: zodOpenapi.z.enum(TAX_DOMICILE).nullable(),
|
|
14534
|
+
taxDomicileCountry: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).nullable(),
|
|
13970
14535
|
transactionType: zodOpenapi.z.string().nullable(),
|
|
13971
14536
|
transactionTypeExpiry: zodOpenapi.z.date().nullable(),
|
|
13972
14537
|
isDistraint: zodOpenapi.z.boolean(),
|
|
13973
|
-
estTxsVolumeMonth: zodOpenapi.z.
|
|
13974
|
-
estTxsVolumeYear: zodOpenapi.z.
|
|
13975
|
-
|
|
13976
|
-
|
|
14538
|
+
estTxsVolumeMonth: zodOpenapi.z.enum(EST_TXS_VOLUME_MONTH),
|
|
14539
|
+
estTxsVolumeYear: zodOpenapi.z.enum(EST_TXS_VOLUME_YEAR),
|
|
14540
|
+
estTxsCountMonth: zodOpenapi.z.number().int().nullable(),
|
|
14541
|
+
tradingCountries: zodOpenapi.z.array(zodOpenapi.z.enum(TARGET_COUNTRY)),
|
|
14542
|
+
tradingCountriesOther: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2)).nullable(),
|
|
14543
|
+
tradingSide: zodOpenapi.z.enum(TRADING_SIDE),
|
|
13977
14544
|
acceptedAMLTermsAndConditions: zodOpenapi.z.boolean(),
|
|
13978
|
-
signatureMethod: zodOpenapi.z.
|
|
13979
|
-
existencePeriod: zodOpenapi.z.
|
|
13980
|
-
reputation: zodOpenapi.z.
|
|
14545
|
+
signatureMethod: zodOpenapi.z.enum(SIGNATURE_METHOD).nullable(),
|
|
14546
|
+
existencePeriod: zodOpenapi.z.enum(EXISTENCE_PERIOD).nullable(),
|
|
14547
|
+
reputation: zodOpenapi.z.enum(REPUTATION).nullable(),
|
|
14548
|
+
riskBusinessAreas: zodOpenapi.z.array(zodOpenapi.z.enum(RISK_BUSINESS_AREA)).nullable(),
|
|
13981
14549
|
riskLevel: zodOpenapi.z.enum(AML_SCORE_TYPE),
|
|
13982
14550
|
kycStatus: zodOpenapi.z.enum(KYC_STATUS).nullable(),
|
|
13983
14551
|
createdAt: zodOpenapi.z.date().nullable(),
|
|
@@ -14001,7 +14569,8 @@ const partyOutputSchema = zodOpenapi.z.object({
|
|
|
14001
14569
|
addresses: zodOpenapi.z.array(createAddressOutputSchema).nullable(),
|
|
14002
14570
|
aml: createAmlOutputSchema.nullable(),
|
|
14003
14571
|
recipients: zodOpenapi.z.array(bankAccountOutputSchema).nullable(),
|
|
14004
|
-
products: productsOutputSchema.nullable()
|
|
14572
|
+
products: productsOutputSchema.nullable(),
|
|
14573
|
+
traderIds: zodOpenapi.z.array(zodOpenapi.z.uuid()).nullable()
|
|
14005
14574
|
});
|
|
14006
14575
|
const responseBodySchema$3 = zodOpenapi.z.object({
|
|
14007
14576
|
message: zodOpenapi.z.string(),
|
|
@@ -14009,9 +14578,10 @@ const responseBodySchema$3 = zodOpenapi.z.object({
|
|
|
14009
14578
|
});
|
|
14010
14579
|
const getPartyByPartyIdRoute = zodOpenapi.createRoute({
|
|
14011
14580
|
method: "get",
|
|
14012
|
-
path: "/
|
|
14013
|
-
summary: "Get
|
|
14581
|
+
path: "/",
|
|
14582
|
+
summary: "Get Party",
|
|
14014
14583
|
tags: ["Parties"],
|
|
14584
|
+
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.",
|
|
14015
14585
|
request: {
|
|
14016
14586
|
params: zodOpenapi.z.object({ partyId: zodOpenapi.z.uuid() })
|
|
14017
14587
|
},
|
|
@@ -14069,8 +14639,9 @@ const partiesOutputDataSchema = zodOpenapi.z.array(partyOutputSchema);
|
|
|
14069
14639
|
const getPartiesRoute = zodOpenapi.createRoute({
|
|
14070
14640
|
method: "get",
|
|
14071
14641
|
path: "/",
|
|
14072
|
-
summary: "List
|
|
14642
|
+
summary: "List Parties",
|
|
14073
14643
|
tags: ["Parties"],
|
|
14644
|
+
description: "Returns a paginated list of all parties. Supports sorting, pagination, filtering by IDs, and full-text search.",
|
|
14074
14645
|
request: { query: paginationAndSearchSchema },
|
|
14075
14646
|
responses: {
|
|
14076
14647
|
500: {
|
|
@@ -14188,9 +14759,10 @@ const responseBodySchema$2 = zodOpenapi.z.object({
|
|
|
14188
14759
|
});
|
|
14189
14760
|
const createDocumentRoute = zodOpenapi.createRoute({
|
|
14190
14761
|
method: "post",
|
|
14191
|
-
path: "/
|
|
14192
|
-
summary: "Create ID
|
|
14193
|
-
tags: ["Documents"],
|
|
14762
|
+
path: "/",
|
|
14763
|
+
summary: "Create ID Document",
|
|
14764
|
+
tags: ["ID Documents"],
|
|
14765
|
+
description: "Creates a new identification document for the specified party and uploads the document image (front or back side). Accepts multipart form data with the document metadata as a JSON string and the file as a binary attachment.",
|
|
14194
14766
|
// middleware: [jwt, signature(), idempotency()],
|
|
14195
14767
|
// security: [{ JwtAuth: [] }],
|
|
14196
14768
|
request: {
|
|
@@ -14240,7 +14812,7 @@ new zodOpenapi.OpenAPIHono().openapi(
|
|
|
14240
14812
|
createDocumentRoute,
|
|
14241
14813
|
async (context) => {
|
|
14242
14814
|
const rawBody = await context.req.parseBody();
|
|
14243
|
-
const { partyId } =
|
|
14815
|
+
const { partyId } = context.req.valid("param");
|
|
14244
14816
|
const idDocumentRaw = rawBody.idDocument;
|
|
14245
14817
|
const documentSide = rawBody.documentSide;
|
|
14246
14818
|
const file = rawBody.file;
|
|
@@ -14340,9 +14912,10 @@ const responseBodySchema$1 = zodOpenapi.z.object({
|
|
|
14340
14912
|
});
|
|
14341
14913
|
const getIdDocumentsListRoute = zodOpenapi.createRoute({
|
|
14342
14914
|
method: "get",
|
|
14343
|
-
path: "/
|
|
14344
|
-
summary: "List
|
|
14345
|
-
tags: ["Documents"],
|
|
14915
|
+
path: "/",
|
|
14916
|
+
summary: "List ID Documents",
|
|
14917
|
+
tags: ["ID Documents"],
|
|
14918
|
+
description: "Returns a paginated list of identification documents for the specified party. Supports filtering by party ID and issuer.",
|
|
14346
14919
|
request: {
|
|
14347
14920
|
params: paramsSchema$1,
|
|
14348
14921
|
query: querySchema
|
|
@@ -14618,9 +15191,10 @@ const responseBodySchema = zodOpenapi.z.object({
|
|
|
14618
15191
|
});
|
|
14619
15192
|
const updateIdDocumentRoute = zodOpenapi.createRoute({
|
|
14620
15193
|
method: "put",
|
|
14621
|
-
path: "/
|
|
14622
|
-
summary: "Update
|
|
14623
|
-
tags: ["Documents"],
|
|
15194
|
+
path: "/",
|
|
15195
|
+
summary: "Update ID Document",
|
|
15196
|
+
tags: ["ID Documents"],
|
|
15197
|
+
description: "Updates an existing identification document. Supports partial updates \u2014 only provided fields are changed. Merges the patch with the existing document data.",
|
|
14624
15198
|
middleware: [jwt, signature(), idempotency()],
|
|
14625
15199
|
security: [{ JwtAuth: [] }],
|
|
14626
15200
|
request: {
|
|
@@ -14703,19 +15277,38 @@ const messageResponseSchema = zodOpenapi.z.object({
|
|
|
14703
15277
|
exports.ADDRESS_TYPE = ADDRESS_TYPE$1;
|
|
14704
15278
|
exports.AML_SCORE_TYPE = AML_SCORE_TYPE$1;
|
|
14705
15279
|
exports.CLIENT_STATUS_ACTION = CLIENT_STATUS_ACTION;
|
|
15280
|
+
exports.COMPANY_TURNOVER_RANGE = COMPANY_TURNOVER_RANGE$1;
|
|
14706
15281
|
exports.CONTACT_TYPE = CONTACT_TYPE$1;
|
|
14707
15282
|
exports.CUSTOMER_STATUS = CUSTOMER_STATUS$1;
|
|
14708
15283
|
exports.DOCUMENT_SIDE = DOCUMENT_SIDE;
|
|
15284
|
+
exports.EST_TXS_VOLUME_MONTH = EST_TXS_VOLUME_MONTH$1;
|
|
15285
|
+
exports.EST_TXS_VOLUME_YEAR = EST_TXS_VOLUME_YEAR$1;
|
|
15286
|
+
exports.EXISTENCE_PERIOD = EXISTENCE_PERIOD$1;
|
|
15287
|
+
exports.FINANCIAL_FUNDS_SOURCE = FINANCIAL_FUNDS_SOURCE$1;
|
|
14709
15288
|
exports.GENDER = GENDER$1;
|
|
14710
15289
|
exports.IDENTIFICATION_TYPE = IDENTIFICATION_TYPE;
|
|
14711
15290
|
exports.ID_DOC_STATUS = ID_DOC_STATUS$1;
|
|
14712
15291
|
exports.ID_DOC_TYPE = ID_DOC_TYPE$1;
|
|
15292
|
+
exports.INCOME_SOURCE = INCOME_SOURCE$1;
|
|
14713
15293
|
exports.KYC_STATUS = KYC_STATUS$1;
|
|
15294
|
+
exports.MONTHLY_INCOME_RANGE = MONTHLY_INCOME_RANGE$1;
|
|
15295
|
+
exports.OPERATING_COUNTRY = OPERATING_COUNTRY$1;
|
|
14714
15296
|
exports.PARTY_RELATIONSHIP_TYPE = PARTY_RELATIONSHIP_TYPE$1;
|
|
14715
15297
|
exports.PARTY_TYPE = PARTY_TYPE$1;
|
|
14716
15298
|
exports.PRODUCT_TYPE = PRODUCT_TYPE$1;
|
|
15299
|
+
exports.REPUTATION = REPUTATION$1;
|
|
15300
|
+
exports.RISK_BUSINESS_AREA = RISK_BUSINESS_AREA$1;
|
|
15301
|
+
exports.SERVICE_PURPOSE = SERVICE_PURPOSE$1;
|
|
15302
|
+
exports.SERVICE_PURPOSE_COMPANY = SERVICE_PURPOSE_COMPANY$1;
|
|
15303
|
+
exports.SERVICE_PURPOSE_FO = SERVICE_PURPOSE_FO$1;
|
|
15304
|
+
exports.SIGNATURE_METHOD = SIGNATURE_METHOD$1;
|
|
15305
|
+
exports.TARGET_COUNTRY = TARGET_COUNTRY$1;
|
|
15306
|
+
exports.TAX_DOMICILE = TAX_DOMICILE$1;
|
|
14717
15307
|
exports.TRADER_TYPE = TRADER_TYPE$1;
|
|
15308
|
+
exports.TRADING_SIDE = TRADING_SIDE$1;
|
|
14718
15309
|
exports.TXS_CLIENT_TYPE = TXS_CLIENT_TYPE$1;
|
|
15310
|
+
exports.YEARLY_INCOME = YEARLY_INCOME$1;
|
|
15311
|
+
exports.YES_NO_UNKNOWN = YES_NO_UNKNOWN;
|
|
14719
15312
|
exports.createMdmClient = createMdmClient;
|
|
14720
15313
|
exports.createPartyInputSchema = createPartyInputSchema;
|
|
14721
15314
|
exports.idDocumentCreateInputSchema = idDocumentCreateInputSchema;
|