@devizovaburza/mdm-sdk 0.0.15 → 0.0.17

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 CHANGED
@@ -12510,7 +12510,7 @@ const party = sqliteTable("party", {
12510
12510
  partyType: text("party_type", { enum: PARTY_TYPE }).notNull(),
12511
12511
  language: text("language", { enum: generalCodes.LANGUAGE_CODES }).notNull(),
12512
12512
  countryCode: text("country_code", { enum: generalCodes.COUNTRY_CODES_2 }),
12513
- isClient: integer("is_client", { mode: "boolean" }).notNull().default(false),
12513
+ isRoot: integer("is_root", { mode: "boolean" }).notNull().default(false),
12514
12514
  legacyId: text("legacy_id")
12515
12515
  });
12516
12516
 
@@ -12573,7 +12573,7 @@ const individual = sqliteTable("individual", {
12573
12573
  citizenshipOther: text("citizenship_other", { enum: generalCodes.COUNTRY_CODES_2 }),
12574
12574
  employer: text("employer"),
12575
12575
  employerCountry: text("employer_country", { enum: generalCodes.COUNTRY_CODES_2 }),
12576
- registeredNumber: text("registered_number").notNull(),
12576
+ registeredNumber: text("registered_number"),
12577
12577
  isPep: integer("is_pep", { mode: "boolean" }).notNull(),
12578
12578
  titleBefore: text("title_before"),
12579
12579
  titleAfter: text("title_after"),
@@ -12629,7 +12629,7 @@ const partyRelationship = sqliteTable("party_relationship", {
12629
12629
  internalId: text("internal_id"),
12630
12630
  relationshipType: text("relationship_type", {
12631
12631
  enum: PARTY_RELATIONSHIP_TYPE
12632
- }),
12632
+ }).notNull(),
12633
12633
  fromPartyId: text("from_party_id").references(() => party.id),
12634
12634
  toPartyId: text("to_party_id").references(() => party.id),
12635
12635
  fromDate: integer("from_date", { mode: "timestamp_ms" }),
@@ -12676,7 +12676,9 @@ const aml = sqliteTable("aml", {
12676
12676
  sourceOfWealth: text("source_of_wealth", { mode: "json" }).$type().notNull(),
12677
12677
  yearlyIncome: text("yearly_income", { enum: YEARLY_INCOME }).notNull(),
12678
12678
  sourceOfIncome: text("source_of_income", { mode: "json" }).$type().notNull(),
12679
+ incomeSourceOther: text("income_source_other"),
12679
12680
  servicePurposes: text("service_purposes", { mode: "json" }).$type(),
12681
+ servicePurposesOther: text("service_purposes_other"),
12680
12682
  taxDomicile: text("tax_domicile", { enum: TAX_DOMICILE }),
12681
12683
  taxDomicileCountry: text("tax_domicile_country", { enum: generalCodes.COUNTRY_CODES_2 }),
12682
12684
  transactionType: text("transaction_type"),
@@ -12820,12 +12822,14 @@ const businessPartnerSchema = zodOpenapi.z.object({
12820
12822
  });
12821
12823
  const foSourceOfWealthSchema = zodOpenapi.z.object({
12822
12824
  incomeSources: zodOpenapi.z.array(zodOpenapi.z.enum(INCOME_SOURCE)).min(1),
12825
+ incomeSourceOther: zodOpenapi.z.string().nullable(),
12823
12826
  monthlyIncome: zodOpenapi.z.enum(MONTHLY_INCOME_RANGE),
12824
12827
  employer: zodOpenapi.z.string().nullable(),
12825
12828
  employerCountry: zodOpenapi.z.string().nullable()
12826
12829
  });
12827
12830
  const businessSourceOfWealthSchema = zodOpenapi.z.object({
12828
12831
  financialFundsSources: zodOpenapi.z.array(zodOpenapi.z.enum(FINANCIAL_FUNDS_SOURCE)).min(1),
12832
+ financialFundsSourceOther: zodOpenapi.z.string().nullable(),
12829
12833
  mainBusinessSubjects: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.CZ_TRADE_LICENSE_CODES)).min(1),
12830
12834
  companyTurnover: zodOpenapi.z.enum(COMPANY_TURNOVER_RANGE),
12831
12835
  operatingCountries: zodOpenapi.z.array(zodOpenapi.z.enum(OPERATING_COUNTRY)).min(1),
@@ -12844,12 +12848,14 @@ const businessPartnerOutputSchema$1 = zodOpenapi.z.object({
12844
12848
  });
12845
12849
  const foSourceOfWealthOutputSchema$1 = zodOpenapi.z.object({
12846
12850
  incomeSources: zodOpenapi.z.array(zodOpenapi.z.enum(INCOME_SOURCE)),
12851
+ incomeSourceOther: zodOpenapi.z.string().nullable(),
12847
12852
  monthlyIncome: zodOpenapi.z.enum(MONTHLY_INCOME_RANGE),
12848
12853
  employer: zodOpenapi.z.string().nullable(),
12849
12854
  employerCountry: zodOpenapi.z.string().nullable()
12850
12855
  });
12851
12856
  const businessSourceOfWealthOutputSchema$1 = zodOpenapi.z.object({
12852
12857
  financialFundsSources: zodOpenapi.z.array(zodOpenapi.z.enum(FINANCIAL_FUNDS_SOURCE)),
12858
+ financialFundsSourceOther: zodOpenapi.z.string().nullable(),
12853
12859
  mainBusinessSubjects: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.CZ_TRADE_LICENSE_CODES)),
12854
12860
  companyTurnover: zodOpenapi.z.enum(COMPANY_TURNOVER_RANGE),
12855
12861
  operatingCountries: zodOpenapi.z.array(zodOpenapi.z.enum(OPERATING_COUNTRY)),
@@ -12867,7 +12873,9 @@ const amlInsertSchema = zodOpenapi.z.object({
12867
12873
  sourceOfWealth: sourceOfWealthSchema,
12868
12874
  yearlyIncome: zodOpenapi.z.enum(YEARLY_INCOME),
12869
12875
  sourceOfIncome: zodOpenapi.z.array(zodOpenapi.z.enum(INCOME_SOURCE)).min(1),
12876
+ incomeSourceOther: zodOpenapi.z.string().optional(),
12870
12877
  servicePurposes: zodOpenapi.z.array(zodOpenapi.z.enum(SERVICE_PURPOSE)).optional(),
12878
+ servicePurposesOther: zodOpenapi.z.string().optional(),
12871
12879
  taxDomicile: zodOpenapi.z.enum(TAX_DOMICILE).optional(),
12872
12880
  taxDomicileCountry: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional(),
12873
12881
  transactionType: zodOpenapi.z.string().optional(),
@@ -12894,7 +12902,9 @@ const amlUpdateSchema = zodOpenapi.z.object({
12894
12902
  sourceOfWealth: sourceOfWealthSchema.optional(),
12895
12903
  yearlyIncome: zodOpenapi.z.enum(YEARLY_INCOME).optional(),
12896
12904
  sourceOfIncome: zodOpenapi.z.array(zodOpenapi.z.enum(INCOME_SOURCE)).min(1).optional(),
12905
+ incomeSourceOther: zodOpenapi.z.string().optional(),
12897
12906
  servicePurposes: zodOpenapi.z.array(zodOpenapi.z.enum(SERVICE_PURPOSE)).optional(),
12907
+ servicePurposesOther: zodOpenapi.z.string().optional(),
12898
12908
  taxDomicile: zodOpenapi.z.enum(TAX_DOMICILE).optional(),
12899
12909
  taxDomicileCountry: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional(),
12900
12910
  transactionType: zodOpenapi.z.string().optional(),
@@ -12921,7 +12931,9 @@ const amlSelectSchema = zodOpenapi.z.object({
12921
12931
  sourceOfWealth: sourceOfWealthOutputSchema,
12922
12932
  yearlyIncome: zodOpenapi.z.enum(YEARLY_INCOME),
12923
12933
  sourceOfIncome: zodOpenapi.z.array(zodOpenapi.z.enum(INCOME_SOURCE)),
12934
+ incomeSourceOther: zodOpenapi.z.string().nullable(),
12924
12935
  servicePurposes: zodOpenapi.z.array(zodOpenapi.z.enum(SERVICE_PURPOSE)).nullable(),
12936
+ servicePurposesOther: zodOpenapi.z.string().nullable(),
12925
12937
  taxDomicile: zodOpenapi.z.enum(TAX_DOMICILE).nullable(),
12926
12938
  taxDomicileCountry: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).nullable(),
12927
12939
  transactionType: zodOpenapi.z.string().nullable(),
@@ -12948,14 +12960,16 @@ const amlSelectSchema = zodOpenapi.z.object({
12948
12960
  const bankAccountBaseInsertSchema = createInsertSchema(bankAccount);
12949
12961
  createUpdateSchema(bankAccount);
12950
12962
  createSelectSchema(bankAccount);
12951
- const bankAccountUpdateSchema = bankAccountBaseInsertSchema.extend({ partyId: zodOpenapi.z.uuid() }).omit({});
12963
+ const bankAccountUpdateSchema = bankAccountBaseInsertSchema.extend({ partyId: zodOpenapi.z.uuid(), bankCode: zodOpenapi.z.string().nullable().optional() }).omit({});
12952
12964
  const bankAccountInsertSchema = bankAccountUpdateSchema.omit({
12953
12965
  id: true
12954
12966
  });
12955
12967
  const bankAccountUpsertSchema = bankAccountBaseInsertSchema.required({
12956
12968
  id: true
12957
12969
  });
12958
- const bankAccountSelectSchema = bankAccountUpdateSchema.required();
12970
+ const bankAccountSelectSchema = bankAccountUpdateSchema.required().extend({
12971
+ bankCode: zodOpenapi.z.string().nullable()
12972
+ });
12959
12973
  zodOpenapi.z.array(bankAccountSelectSchema);
12960
12974
 
12961
12975
  createInsertSchema(contact);
@@ -12977,95 +12991,42 @@ const contactUpdateSchema = zodOpenapi.z.object({
12977
12991
  phoneNumber: zodOpenapi.z.string().optional()
12978
12992
  });
12979
12993
 
12980
- createInsertSchema(individual);
12981
- createUpdateSchema(individual);
12982
- createSelectSchema(individual);
12983
- const individualInsertSchema$1 = zodOpenapi.z.object({
12984
- partyId: zodOpenapi.z.uuid(),
12985
- name: zodOpenapi.z.string(),
12986
- surname: zodOpenapi.z.string(),
12987
- email: zodOpenapi.z.email("Invalid email format").optional().nullable(),
12988
- phone: zodOpenapi.z.string().optional().nullable(),
12989
- birthDate: zodOpenapi.z.string().optional().nullable(),
12990
- birthPlace: zodOpenapi.z.string(),
12991
- countryOfBirth: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional().nullable(),
12992
- personalId: zodOpenapi.z.string(),
12993
- gender: zodOpenapi.z.enum(GENDER),
12994
- citizenship: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2),
12995
- citizenshipOther: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional().nullable(),
12996
- employer: zodOpenapi.z.string().optional().nullable(),
12997
- employerCountry: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional().nullable(),
12998
- registeredNumber: zodOpenapi.z.string(),
12999
- isPep: zodOpenapi.z.boolean(),
13000
- titleBefore: zodOpenapi.z.string().optional().nullable(),
13001
- titleAfter: zodOpenapi.z.string().optional().nullable(),
13002
- birthSurname: zodOpenapi.z.string().optional().nullable(),
13003
- vocativeTitle: zodOpenapi.z.string().optional().nullable(),
13004
- deathDate: zodOpenapi.z.date().optional().nullable(),
13005
- deathNotification: zodOpenapi.z.date().optional().nullable(),
13006
- pin: zodOpenapi.z.string().optional().nullable(),
13007
- stayAbroad: zodOpenapi.z.boolean().optional().nullable(),
13008
- stayAbroadCountries: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional().nullable()
13009
- });
13010
- const individualUpdateSchema$1 = zodOpenapi.z.object({
13011
- partyId: zodOpenapi.z.uuid(),
12994
+ const insertOverrides = {
13012
12995
  id: zodOpenapi.z.uuid(),
13013
- name: zodOpenapi.z.string().optional(),
13014
- surname: zodOpenapi.z.string().optional(),
13015
- email: zodOpenapi.z.email("Invalid email format").optional().nullable(),
13016
- phone: zodOpenapi.z.string().optional().nullable(),
13017
- birthDate: zodOpenapi.z.string().optional().nullable(),
13018
- birthPlace: zodOpenapi.z.string().optional(),
13019
- countryOfBirth: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional().nullable(),
13020
- personalId: zodOpenapi.z.string().optional(),
13021
- gender: zodOpenapi.z.enum(GENDER).optional(),
13022
- citizenship: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional(),
13023
- citizenshipOther: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional().nullable(),
13024
- employer: zodOpenapi.z.string().optional().nullable(),
13025
- employerCountry: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional().nullable(),
13026
- registeredNumber: zodOpenapi.z.string().optional(),
13027
- isPep: zodOpenapi.z.boolean().optional(),
13028
- titleBefore: zodOpenapi.z.string().optional().nullable(),
13029
- titleAfter: zodOpenapi.z.string().optional().nullable(),
13030
- birthSurname: zodOpenapi.z.string().optional().nullable(),
13031
- vocativeTitle: zodOpenapi.z.string().optional().nullable(),
13032
- deathDate: zodOpenapi.z.date().optional().nullable(),
13033
- deathNotification: zodOpenapi.z.date().optional().nullable(),
13034
- pin: zodOpenapi.z.string().optional().nullable(),
13035
- stayAbroad: zodOpenapi.z.boolean().optional().nullable(),
13036
- stayAbroadCountries: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional().nullable()
13037
- });
13038
- const individualSelectSchema = zodOpenapi.z.object({
12996
+ partyId: zodOpenapi.z.uuid(),
12997
+ email: zodOpenapi.z.email("Invalid email format").optional()
12998
+ };
12999
+ const selectOverrides = {
13039
13000
  id: zodOpenapi.z.uuid(),
13040
13001
  partyId: zodOpenapi.z.uuid(),
13041
- internalId: zodOpenapi.z.string().nullable(),
13042
- name: zodOpenapi.z.string(),
13043
- surname: zodOpenapi.z.string(),
13044
- email: zodOpenapi.z.string().nullable(),
13045
- phone: zodOpenapi.z.string().nullable(),
13046
- birthDate: zodOpenapi.z.string().nullable(),
13047
- birthPlace: zodOpenapi.z.string(),
13048
- countryOfBirth: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).nullable(),
13049
- personalId: zodOpenapi.z.string(),
13050
- gender: zodOpenapi.z.enum(GENDER),
13051
- citizenship: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2),
13052
- citizenshipOther: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).nullable(),
13053
- employer: zodOpenapi.z.string().nullable(),
13054
- employerCountry: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).nullable(),
13055
- registeredNumber: zodOpenapi.z.string(),
13056
- isPep: zodOpenapi.z.boolean(),
13057
- titleBefore: zodOpenapi.z.string().nullable(),
13058
- titleAfter: zodOpenapi.z.string().nullable(),
13059
- birthSurname: zodOpenapi.z.string().nullable(),
13060
- vocativeTitle: zodOpenapi.z.string().nullable(),
13061
13002
  deathDate: zodOpenapi.z.coerce.date().nullable(),
13062
13003
  deathNotification: zodOpenapi.z.coerce.date().nullable(),
13063
- pin: zodOpenapi.z.string().nullable(),
13064
- stayAbroad: zodOpenapi.z.boolean().nullable(),
13065
- stayAbroadCountries: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).nullable(),
13066
13004
  createdAt: zodOpenapi.z.coerce.date().nullable(),
13067
13005
  updatedAt: zodOpenapi.z.coerce.date().nullable()
13006
+ };
13007
+ const individualBaseInsertSchema = createInsertSchema(
13008
+ individual,
13009
+ insertOverrides
13010
+ );
13011
+ createUpdateSchema(
13012
+ individual,
13013
+ insertOverrides
13014
+ );
13015
+ const individualBaseSelectSchema = createSelectSchema(
13016
+ individual,
13017
+ selectOverrides
13018
+ );
13019
+ const individualInsertSchema$1 = individualBaseInsertSchema.omit({
13020
+ id: true,
13021
+ internalId: true,
13022
+ createdAt: true,
13023
+ updatedAt: true
13068
13024
  });
13025
+ const individualUpdateSchema$1 = individualInsertSchema$1.partial().extend({
13026
+ partyId: zodOpenapi.z.uuid(),
13027
+ id: zodOpenapi.z.uuid()
13028
+ });
13029
+ const individualSelectSchema = individualBaseSelectSchema;
13069
13030
 
13070
13031
  createInsertSchema(organization);
13071
13032
  createUpdateSchema(organization);
@@ -13168,14 +13129,16 @@ zodOpenapi.z.discriminatedUnion("partyType", [
13168
13129
  const disponentCreateSchema = zodOpenapi.z.discriminatedUnion("partyType", [
13169
13130
  zodOpenapi.z.object({
13170
13131
  partyType: zodOpenapi.z.literal("INDIVIDUAL"),
13132
+ relationshipType: zodOpenapi.z.enum(PARTY_RELATIONSHIP_TYPE).optional(),
13171
13133
  data: individualInsertSchema$1.omit({ partyId: true })
13172
13134
  }),
13173
13135
  zodOpenapi.z.object({
13174
13136
  partyType: zodOpenapi.z.literal("ORGANIZATION"),
13137
+ relationshipType: zodOpenapi.z.enum(PARTY_RELATIONSHIP_TYPE).optional(),
13175
13138
  data: organizationInsertSchema.omit({ partyId: true })
13176
13139
  })
13177
13140
  ]);
13178
- const disponentUpdateSchema$1 = zodOpenapi.z.discriminatedUnion("partyType", [
13141
+ const disponentUpdateSchema = zodOpenapi.z.discriminatedUnion("partyType", [
13179
13142
  zodOpenapi.z.object({
13180
13143
  partyType: zodOpenapi.z.literal("INDIVIDUAL"),
13181
13144
  data: individualUpdateSchema$1
@@ -13185,6 +13148,18 @@ const disponentUpdateSchema$1 = zodOpenapi.z.discriminatedUnion("partyType", [
13185
13148
  data: organizationUpdateSchema$1
13186
13149
  })
13187
13150
  ]);
13151
+ const disponentSyncSchema$1 = zodOpenapi.z.discriminatedUnion("partyType", [
13152
+ zodOpenapi.z.object({
13153
+ partyType: zodOpenapi.z.literal("INDIVIDUAL"),
13154
+ relationshipType: zodOpenapi.z.enum(PARTY_RELATIONSHIP_TYPE).optional(),
13155
+ data: individualInsertSchema$1.omit({ partyId: true }).extend({ id: zodOpenapi.z.uuid().optional() })
13156
+ }),
13157
+ zodOpenapi.z.object({
13158
+ partyType: zodOpenapi.z.literal("ORGANIZATION"),
13159
+ relationshipType: zodOpenapi.z.enum(PARTY_RELATIONSHIP_TYPE).optional(),
13160
+ data: organizationInsertSchema.omit({ partyId: true }).extend({ id: zodOpenapi.z.uuid().optional() })
13161
+ })
13162
+ ]);
13188
13163
  const disponentSelectSchema = zodOpenapi.z.discriminatedUnion("partyType", [
13189
13164
  zodOpenapi.z.object({
13190
13165
  partyType: zodOpenapi.z.literal("INDIVIDUAL"),
@@ -13196,7 +13171,7 @@ const disponentSelectSchema = zodOpenapi.z.discriminatedUnion("partyType", [
13196
13171
  })
13197
13172
  ]);
13198
13173
  zodOpenapi.z.array(disponentSelectSchema).optional();
13199
- zodOpenapi.z.array(disponentUpdateSchema$1).optional();
13174
+ zodOpenapi.z.array(disponentUpdateSchema).optional();
13200
13175
 
13201
13176
  createInsertSchema(idDocument);
13202
13177
  createUpdateSchema(idDocument);
@@ -13232,13 +13207,15 @@ const idDocumentUpdateSchema = zodOpenapi.z.object({
13232
13207
  });
13233
13208
 
13234
13209
  const recipientBaseInsertSchema = createInsertSchema(recipient);
13235
- createUpdateSchema(recipient);
13210
+ const recipientBaseUpdateSchema = createUpdateSchema(recipient);
13236
13211
  createSelectSchema(recipient);
13237
13212
  const recipientUpsertSchema = recipientBaseInsertSchema.required({
13238
13213
  id: true
13239
13214
  });
13240
13215
  const recipientInsertSchema = bankAccountInsertSchema;
13241
- const recipientUpdateSchema = bankAccountUpdateSchema;
13216
+ const recipientUpdateSchema = recipientBaseUpdateSchema.required({
13217
+ id: true
13218
+ });
13242
13219
  const recipientSelectSchema = bankAccountSelectSchema;
13243
13220
 
13244
13221
  const productTxsConfigSchema = zodOpenapi.z.object({
@@ -13293,6 +13270,7 @@ const partySchema$2 = zodOpenapi.z.object({
13293
13270
  note: zodOpenapi.z.string().optional(),
13294
13271
  countryCode: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional(),
13295
13272
  customerStatus: zodOpenapi.z.enum(CUSTOMER_STATUS).optional(),
13273
+ isRoot: zodOpenapi.z.boolean().optional(),
13296
13274
  legacyId: zodOpenapi.z.string().optional()
13297
13275
  });
13298
13276
  const partyOutputSchema$1 = zodOpenapi.z.object({
@@ -13303,7 +13281,7 @@ const partyOutputSchema$1 = zodOpenapi.z.object({
13303
13281
  id: zodOpenapi.z.uuid(),
13304
13282
  note: zodOpenapi.z.string().nullable(),
13305
13283
  countryCode: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).nullable(),
13306
- isClient: zodOpenapi.z.boolean(),
13284
+ isRoot: zodOpenapi.z.boolean(),
13307
13285
  createdAt: zodOpenapi.z.date().nullable(),
13308
13286
  updatedAt: zodOpenapi.z.date().nullable()
13309
13287
  });
@@ -13317,19 +13295,21 @@ zodOpenapi.z.object({
13317
13295
  disponents: zodOpenapi.z.array(disponentCreateSchema).nullable(),
13318
13296
  addresses: zodOpenapi.z.array(addressInsertSchema.omit({ partyId: true })),
13319
13297
  aml: amlInsertSchema.omit({ partyId: true }),
13320
- products: productsInputSchema$2.optional()
13298
+ products: productsInputSchema$2.optional(),
13299
+ traderIds: zodOpenapi.z.array(zodOpenapi.z.uuid()).optional()
13321
13300
  });
13322
13301
  zodOpenapi.z.object({
13323
13302
  partyId: zodOpenapi.z.uuid(),
13324
13303
  party: partySchema$2,
13325
13304
  personalData: individualUpdateSchema$1.optional(),
13326
13305
  organizationData: organizationUpdateSchema$1.optional(),
13327
- bankAccounts: zodOpenapi.z.array(bankAccountUpsertSchema).optional(),
13328
- recipients: zodOpenapi.z.array(recipientUpsertSchema).optional(),
13329
- disponents: zodOpenapi.z.array(disponentUpdateSchema$1).optional(),
13330
- addresses: zodOpenapi.z.array(addressUpdateSchema).optional(),
13306
+ bankAccounts: zodOpenapi.z.array(bankAccountUpsertSchema.partial({ id: true })).optional(),
13307
+ recipients: zodOpenapi.z.array(recipientUpsertSchema.partial({ id: true })).optional(),
13308
+ disponents: zodOpenapi.z.array(disponentSyncSchema$1).optional(),
13309
+ addresses: zodOpenapi.z.array(addressInsertSchema).optional(),
13331
13310
  aml: amlUpdateSchema.optional(),
13332
- products: productsInputSchema$2.optional()
13311
+ products: productsInputSchema$2.optional(),
13312
+ traderIds: zodOpenapi.z.array(zodOpenapi.z.uuid()).optional()
13333
13313
  });
13334
13314
  const partySelectOutputSchema = zodOpenapi.z.object({
13335
13315
  party: partyOutputSchema$1.nullable(),
@@ -13340,7 +13320,8 @@ const partySelectOutputSchema = zodOpenapi.z.object({
13340
13320
  disponents: zodOpenapi.z.array(disponentSelectSchema).nullable(),
13341
13321
  addresses: zodOpenapi.z.array(addressSelectSchema).nullable(),
13342
13322
  recipients: zodOpenapi.z.array(recipientSelectSchema).nullable(),
13343
- products: productsOutputSchema$1.nullable()
13323
+ products: productsOutputSchema$1.nullable(),
13324
+ traderIds: zodOpenapi.z.array(zodOpenapi.z.uuid()).nullable()
13344
13325
  });
13345
13326
  zodOpenapi.z.array(partySelectOutputSchema);
13346
13327
  const partySelectDataSchema = zodOpenapi.z.object({
@@ -13358,7 +13339,8 @@ const partySelectArrayDataSchema = zodOpenapi.z.object({
13358
13339
  zodOpenapi.z.object({
13359
13340
  ...partySelectDataSchema.shape,
13360
13341
  ...partySelectArrayDataSchema.shape,
13361
- products: productsOutputSchema$1.nullable()
13342
+ products: productsOutputSchema$1.nullable(),
13343
+ traderIds: zodOpenapi.z.array(zodOpenapi.z.uuid()).nullable()
13362
13344
  });
13363
13345
 
13364
13346
  createInsertSchema(partyChange);
@@ -13699,21 +13681,21 @@ const partySchema$1 = zodOpenapi.z.object({
13699
13681
  });
13700
13682
  const individualInsertSchema = zodOpenapi.z.object({
13701
13683
  internalId: zodOpenapi.z.string().optional(),
13702
- name: zodOpenapi.z.string(),
13703
- surname: zodOpenapi.z.string(),
13684
+ name: zodOpenapi.z.string().min(1, "Jm\xE9no je povinn\xE9"),
13685
+ surname: zodOpenapi.z.string().min(1, "P\u0159\xEDjmen\xED je povinn\xE9"),
13704
13686
  email: zodOpenapi.z.string().optional(),
13705
13687
  phone: zodOpenapi.z.string().optional(),
13706
13688
  birthDate: zodOpenapi.z.string().optional(),
13707
- birthPlace: zodOpenapi.z.string(),
13689
+ birthPlace: zodOpenapi.z.string().min(1, "M\u011Bsto narozen\xED je povinn\xE9"),
13708
13690
  countryOfBirth: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional(),
13709
- personalId: zodOpenapi.z.string(),
13710
- gender: zodOpenapi.z.enum(GENDER),
13711
- citizenship: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2),
13691
+ personalId: zodOpenapi.z.string().min(1, "\u010C\xEDslo identifika\u010Dn\xEDho dokumentu je povinn\xE9"),
13692
+ gender: zodOpenapi.z.enum(GENDER, "Pohlav\xED je povinn\xE9"),
13693
+ citizenship: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2, "St\xE1t je povinn\xFD"),
13712
13694
  citizenshipOther: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional(),
13713
13695
  employer: zodOpenapi.z.string().optional(),
13714
13696
  employerCountry: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional(),
13715
- registeredNumber: zodOpenapi.z.string(),
13716
- isPep: zodOpenapi.z.boolean(),
13697
+ registeredNumber: zodOpenapi.z.string().optional(),
13698
+ isPep: zodOpenapi.z.boolean({ error: "Politicky exponovan\xE1 osoba je povinn\xE1" }),
13717
13699
  titleBefore: zodOpenapi.z.string().optional(),
13718
13700
  titleAfter: zodOpenapi.z.string().optional(),
13719
13701
  birthSurname: zodOpenapi.z.string().optional(),
@@ -13749,17 +13731,20 @@ const createOrganizationInputSchema = zodOpenapi.z.object({
13749
13731
  operationCountries: zodOpenapi.z.string(),
13750
13732
  riskyBusinessType: zodOpenapi.z.string().optional()
13751
13733
  });
13752
- const updateBankAccountSchema$1 = zodOpenapi.z.object({
13734
+ const updateBankAccountSchema = zodOpenapi.z.object({
13753
13735
  ...bankAccountMetadataSchema.shape,
13736
+ bankCode: zodOpenapi.z.enum(generalCodes.BANK_CODES, "K\xF3d banky je povinn\xFD").optional(),
13737
+ iban: zodOpenapi.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(),
13738
+ swiftBic: zodOpenapi.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(),
13754
13739
  partyId: zodOpenapi.z.uuid(),
13755
13740
  internalId: zodOpenapi.z.string().optional(),
13756
13741
  holderName: zodOpenapi.z.string(),
13757
- number: zodOpenapi.z.string().optional(),
13758
- currency: bankAccountMetadataSchema.shape.currency.nonoptional(),
13742
+ number: zodOpenapi.z.string().min(1, "\u010C\xEDslo \xFA\u010Dtu je povinn\xE9").optional(),
13743
+ currency: zodOpenapi.z.enum(generalCodes.CURRENCY_CODES, "M\u011Bna je povinn\xE1"),
13759
13744
  countryCode: bankAccountMetadataSchema.shape.countryCode.nonoptional(),
13760
13745
  id: bankAccountMetadataSchema.shape.id.nonoptional()
13761
13746
  });
13762
- const bankAccountInputSchema = updateBankAccountSchema$1.required({
13747
+ const bankAccountInputSchema = updateBankAccountSchema.required({
13763
13748
  holderName: true,
13764
13749
  currency: true,
13765
13750
  countryCode: true
@@ -13774,39 +13759,45 @@ const disponentSchema = zodOpenapi.z.discriminatedUnion("partyType", [
13774
13759
  data: createOrganizationInputSchema
13775
13760
  })
13776
13761
  ]);
13762
+ const zipCodeRegex = /^\d{3}\s?\d{2}$/;
13777
13763
  const createAddressInputSchema = zodOpenapi.z.object({
13778
13764
  addressType: zodOpenapi.z.enum(ADDRESS_TYPE),
13779
13765
  internalId: zodOpenapi.z.string().optional(),
13780
- street: zodOpenapi.z.string(),
13781
- orientationNumber: zodOpenapi.z.string().optional(),
13782
- descriptiveNumber: zodOpenapi.z.string().optional(),
13783
- municipality: zodOpenapi.z.string().max(255),
13766
+ street: zodOpenapi.z.string().min(1, "Adresa je povinn\xE1"),
13767
+ orientationNumber: zodOpenapi.z.string().max(20, "\u010C\xEDslo orienta\u010Dn\xED je mimo povolen\xFD rozsah").optional(),
13768
+ descriptiveNumber: zodOpenapi.z.string().max(20, "\u010C\xEDslo popisn\xE9 je mimo povolen\xFD rozsah").optional(),
13769
+ municipality: zodOpenapi.z.string().min(1, "M\u011Bsto je povinn\xE9").max(255),
13784
13770
  municipalityPart: zodOpenapi.z.string().optional(),
13785
- zipCode: zodOpenapi.z.string().max(20),
13771
+ zipCode: zodOpenapi.z.string().min(1, "PS\u010C je povinn\xE9").max(20).regex(zipCodeRegex, "PS\u010C je v nespr\xE1vn\xE9m form\xE1tu"),
13786
13772
  district: zodOpenapi.z.string().max(255),
13787
13773
  region: zodOpenapi.z.string().max(255),
13788
- countryCode: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2),
13774
+ countryCode: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2, "St\xE1t je povinn\xFD"),
13789
13775
  ruianCode: zodOpenapi.z.string().optional()
13790
13776
  });
13791
13777
  const businessPartnerInputSchema$1 = zodOpenapi.z.object({
13792
- name: zodOpenapi.z.string(),
13793
- country: zodOpenapi.z.string(),
13778
+ name: zodOpenapi.z.string().min(1, "N\xE1zev partnera je povinn\xFD"),
13779
+ country: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2, "St\xE1t partnera je povinn\xFD"),
13794
13780
  cooperationReason: zodOpenapi.z.string().nullable()
13795
13781
  });
13796
13782
  const foSourceOfWealthInputSchema$1 = zodOpenapi.z.object({
13797
- incomeSources: zodOpenapi.z.array(zodOpenapi.z.enum(INCOME_SOURCE)).min(1),
13798
- monthlyIncome: zodOpenapi.z.enum(MONTHLY_INCOME_RANGE),
13799
- employer: zodOpenapi.z.string().nullable(),
13800
- employerCountry: zodOpenapi.z.string().nullable()
13783
+ incomeSources: zodOpenapi.z.array(zodOpenapi.z.enum(INCOME_SOURCE)).min(1, "Hlavn\xED zdroj p\u0159\xEDjm\u016F je povinn\xFD"),
13784
+ incomeSourceOther: zodOpenapi.z.string().nullable(),
13785
+ monthlyIncome: zodOpenapi.z.enum(MONTHLY_INCOME_RANGE, "M\u011Bs\xED\u010Dn\xED p\u0159\xEDjem je povinn\xFD"),
13786
+ employer: zodOpenapi.z.string().min(1, "N\xE1zev zam\u011Bstnavatele je povinn\xFD").nullable(),
13787
+ employerCountry: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2, "St\xE1t zam\u011Bstnavatele je povinn\xFD").nullable()
13801
13788
  });
13802
13789
  const businessSourceOfWealthInputSchema$1 = zodOpenapi.z.object({
13803
- financialFundsSources: zodOpenapi.z.array(zodOpenapi.z.enum(FINANCIAL_FUNDS_SOURCE)).min(1),
13804
- mainBusinessSubjects: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.CZ_TRADE_LICENSE_CODES)).min(1),
13805
- companyTurnover: zodOpenapi.z.enum(COMPANY_TURNOVER_RANGE),
13806
- operatingCountries: zodOpenapi.z.array(zodOpenapi.z.enum(OPERATING_COUNTRY)).min(1),
13790
+ financialFundsSources: zodOpenapi.z.array(zodOpenapi.z.enum(FINANCIAL_FUNDS_SOURCE)).min(1, "Zdroj finan\u010Dn\xEDch prost\u0159edk\u016F je povinn\xFD"),
13791
+ financialFundsSourceOther: zodOpenapi.z.string().nullable(),
13792
+ mainBusinessSubjects: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.CZ_TRADE_LICENSE_CODES)).min(1, "Hlavn\xED p\u0159edm\u011Bt podnik\xE1n\xED je povinn\xFD"),
13793
+ companyTurnover: zodOpenapi.z.enum(
13794
+ COMPANY_TURNOVER_RANGE,
13795
+ "Obrat za posledn\xED 3 roky je povinn\xFD"
13796
+ ),
13797
+ operatingCountries: zodOpenapi.z.array(zodOpenapi.z.enum(OPERATING_COUNTRY)).min(1, "Zem\u011B p\u016Fsoben\xED je povinn\xE1"),
13807
13798
  operatingCountriesOther: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2)).nullable(),
13808
- businessPartners: zodOpenapi.z.array(businessPartnerInputSchema$1).nullable(),
13809
- businessActivitiesNote: zodOpenapi.z.string().nullable()
13799
+ businessPartners: zodOpenapi.z.array(businessPartnerInputSchema$1).min(1, "Alespo\u0148 jeden partner je povinn\xFD").nullable(),
13800
+ businessActivitiesNote: zodOpenapi.z.string().min(1, "Detailn\xED popis v\u0161ech podnikatelsk\xFDch \u010Dinnost\xED je povinn\xFD").nullable()
13810
13801
  });
13811
13802
  const createAmlInputSchema = zodOpenapi.z.object({
13812
13803
  internalId: zodOpenapi.z.string().optional(),
@@ -13815,26 +13806,37 @@ const createAmlInputSchema = zodOpenapi.z.object({
13815
13806
  businessSourceOfWealthInputSchema$1
13816
13807
  ]),
13817
13808
  yearlyIncome: zodOpenapi.z.enum(YEARLY_INCOME),
13818
- sourceOfIncome: zodOpenapi.z.array(zodOpenapi.z.enum(INCOME_SOURCE)).min(1),
13819
- servicePurposes: zodOpenapi.z.array(zodOpenapi.z.enum(SERVICE_PURPOSE)).optional(),
13820
- taxDomicile: zodOpenapi.z.enum(TAX_DOMICILE).optional(),
13809
+ sourceOfIncome: zodOpenapi.z.array(zodOpenapi.z.enum(INCOME_SOURCE)).min(1, "Zdroj p\u0159\xEDjm\u016F je povinn\xFD"),
13810
+ incomeSourceOther: zodOpenapi.z.string().optional(),
13811
+ servicePurposes: zodOpenapi.z.array(zodOpenapi.z.enum(SERVICE_PURPOSE)).min(1, "\xDA\u010Del vyu\u017E\xEDv\xE1n\xED na\u0161ich slu\u017Eeb je povinn\xFD").optional(),
13812
+ servicePurposesOther: zodOpenapi.z.string().optional(),
13813
+ taxDomicile: zodOpenapi.z.enum(TAX_DOMICILE, { message: "Da\u0148ov\xE1 rezidence je povinn\xE1" }).optional(),
13821
13814
  taxDomicileCountry: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional(),
13822
13815
  transactionType: zodOpenapi.z.string().optional(),
13823
13816
  transactionTypeExpiry: zodOpenapi.z.date().optional(),
13824
13817
  isDistraint: zodOpenapi.z.boolean().default(false),
13825
- estTxsVolumeMonth: zodOpenapi.z.enum(EST_TXS_VOLUME_MONTH),
13826
- estTxsVolumeYear: zodOpenapi.z.enum(EST_TXS_VOLUME_YEAR),
13818
+ estTxsVolumeMonth: zodOpenapi.z.enum(
13819
+ EST_TXS_VOLUME_MONTH,
13820
+ "Odhadovan\xFD m\u011Bs\xED\u010Dn\xED objem transakc\xED je povinn\xFD"
13821
+ ),
13822
+ estTxsVolumeYear: zodOpenapi.z.enum(
13823
+ EST_TXS_VOLUME_YEAR,
13824
+ "Odhadovan\xFD ro\u010Dn\xED objem transakc\xED je povinn\xFD"
13825
+ ),
13827
13826
  estTxsCountMonth: zodOpenapi.z.number().int().optional(),
13828
- tradingCountries: zodOpenapi.z.array(zodOpenapi.z.enum(TARGET_COUNTRY)).min(1),
13827
+ tradingCountries: zodOpenapi.z.array(zodOpenapi.z.enum(TARGET_COUNTRY)).min(1, "Vyberte alespo\u0148 jednu c\xEDlovou zemi"),
13829
13828
  tradingCountriesOther: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2)).optional(),
13830
- tradingSide: zodOpenapi.z.enum(TRADING_SIDE),
13831
- acceptedAMLTermsAndConditions: zodOpenapi.z.boolean(),
13832
- signatureMethod: zodOpenapi.z.enum(SIGNATURE_METHOD).optional(),
13833
- existencePeriod: zodOpenapi.z.enum(EXISTENCE_PERIOD).optional(),
13829
+ tradingSide: zodOpenapi.z.enum(TRADING_SIDE, "Strana obchodov\xE1n\xED je povinn\xE1"),
13830
+ acceptedAMLTermsAndConditions: zodOpenapi.z.boolean().refine((v) => v === true, {
13831
+ message: "Mus\xEDte potvrdit souhlas s prohl\xE1\u0161en\xEDm",
13832
+ path: ["acceptedAMLTermsAndConditions"]
13833
+ }),
13834
+ signatureMethod: zodOpenapi.z.enum(SIGNATURE_METHOD, "Zp\u016Fsob nav\xE1z\xE1n\xED vztahu je povinn\xFD").optional(),
13835
+ existencePeriod: zodOpenapi.z.enum(EXISTENCE_PERIOD, "Historie klienta je povinn\xE1").optional(),
13834
13836
  reputation: zodOpenapi.z.enum(REPUTATION).optional(),
13835
13837
  riskBusinessAreas: zodOpenapi.z.array(zodOpenapi.z.enum(RISK_BUSINESS_AREA)).optional(),
13836
- riskLevel: zodOpenapi.z.enum(AML_SCORE_TYPE).optional(),
13837
- kycStatus: zodOpenapi.z.enum(KYC_STATUS).optional()
13838
+ riskLevel: zodOpenapi.z.enum(AML_SCORE_TYPE, "Rizikovost je povinn\xE1").optional(),
13839
+ kycStatus: zodOpenapi.z.enum(KYC_STATUS, "Stav kyc je povinn\xFD").optional()
13838
13840
  });
13839
13841
  const productsInputSchema$1 = zodOpenapi.z.object({
13840
13842
  txs: zodOpenapi.z.object({
@@ -13845,6 +13847,48 @@ const productsInputSchema$1 = zodOpenapi.z.object({
13845
13847
  }).optional(),
13846
13848
  cbs: zodOpenapi.z.object({}).optional()
13847
13849
  });
13850
+ const ownerInputSchema = zodOpenapi.z.object({
13851
+ titleBefore: zodOpenapi.z.string().optional(),
13852
+ name: zodOpenapi.z.string().min(1, "Jm\xE9no je povinn\xE9"),
13853
+ surname: zodOpenapi.z.string().min(1, "P\u0159\xEDjmen\xED je povinn\xE9"),
13854
+ titleAfter: zodOpenapi.z.string().optional(),
13855
+ birthDate: zodOpenapi.z.string().min(1, "Datum narozen\xED je povinn\xE9"),
13856
+ birthPlace: zodOpenapi.z.string().min(1, "M\xEDsto narozen\xED je povinn\xE9"),
13857
+ personalId: zodOpenapi.z.string().min(1, "Rodn\xE9 \u010D\xEDslo je povinn\xE9"),
13858
+ gender: zodOpenapi.z.enum(GENDER, "Pohlav\xED je povinn\xE9"),
13859
+ citizenship: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2, "St\xE1tn\xED p\u0159\xEDslu\u0161nost je povinn\xE1"),
13860
+ isPep: zodOpenapi.z.boolean({ error: "Politicky exponovan\xE1 osoba je povinn\xE1" }),
13861
+ address: createAddressInputSchema,
13862
+ sharePercentage: zodOpenapi.z.number({ error: "Pod\xEDl na spole\u010Dnosti je povinn\xFD" }).min(1, "Pod\xEDl na spole\u010Dnosti je povinn\xFD").max(100),
13863
+ shareEstablishedAt: zodOpenapi.z.string().min(1, "Datum vzniku pod\xEDlu je povinn\xFD")
13864
+ });
13865
+ const idDocumentInputSchema$1 = zodOpenapi.z.object({
13866
+ idDocType: zodOpenapi.z.enum(ID_DOC_TYPE),
13867
+ idDocNumber: zodOpenapi.z.string(),
13868
+ issueDate: zodOpenapi.z.date().optional(),
13869
+ expirationDate: zodOpenapi.z.date().optional(),
13870
+ issuer: zodOpenapi.z.string().optional(),
13871
+ frontImageUri: zodOpenapi.z.string().optional(),
13872
+ backImageUri: zodOpenapi.z.string().optional()
13873
+ });
13874
+ const legalRepresentativeInputSchema = zodOpenapi.z.object({
13875
+ titleBefore: zodOpenapi.z.string().optional(),
13876
+ name: zodOpenapi.z.string().min(1, "Jm\xE9no je povinn\xE9"),
13877
+ surname: zodOpenapi.z.string().min(1, "P\u0159\xEDjmen\xED je povinn\xE9"),
13878
+ titleAfter: zodOpenapi.z.string().optional(),
13879
+ birthDate: zodOpenapi.z.string().min(1, "Datum narozen\xED je povinn\xE9"),
13880
+ birthPlace: zodOpenapi.z.string().min(1, "M\xEDsto narozen\xED je povinn\xE9"),
13881
+ personalId: zodOpenapi.z.string().min(1, "Rodn\xE9 \u010D\xEDslo je povinn\xE9"),
13882
+ gender: zodOpenapi.z.enum(GENDER, "Pohlav\xED je povinn\xE9"),
13883
+ citizenship: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2, "St\xE1tn\xED p\u0159\xEDslu\u0161nost je povinn\xE1"),
13884
+ isPep: zodOpenapi.z.boolean({ error: "Politicky exponovan\xE1 osoba je povinn\xE1" }),
13885
+ phone: zodOpenapi.z.string().optional(),
13886
+ email: zodOpenapi.z.string().optional(),
13887
+ pin: zodOpenapi.z.string().optional(),
13888
+ identityDocuments: zodOpenapi.z.array(idDocumentInputSchema$1).optional(),
13889
+ address: createAddressInputSchema,
13890
+ dateOfEstablishment: zodOpenapi.z.string().min(1, "Datum vzniku funkce je povinn\xFD")
13891
+ });
13848
13892
  const createPartyInputSchema = zodOpenapi.z.object({
13849
13893
  party: partySchema$1.omit({ id: true }),
13850
13894
  personalData: individualInsertSchema.nullable(),
@@ -13852,9 +13896,12 @@ const createPartyInputSchema = zodOpenapi.z.object({
13852
13896
  bankAccounts: zodOpenapi.z.array(bankAccountInputSchema),
13853
13897
  disponents: zodOpenapi.z.array(disponentSchema),
13854
13898
  addresses: zodOpenapi.z.array(createAddressInputSchema),
13899
+ owners: zodOpenapi.z.array(ownerInputSchema).optional(),
13900
+ legalRepresentatives: zodOpenapi.z.array(legalRepresentativeInputSchema).optional(),
13855
13901
  aml: createAmlInputSchema,
13856
13902
  recipients: zodOpenapi.z.array(bankAccountInputSchema),
13857
- products: productsInputSchema$1.optional()
13903
+ products: productsInputSchema$1.optional(),
13904
+ traderIds: zodOpenapi.z.array(zodOpenapi.z.uuid()).optional()
13858
13905
  });
13859
13906
  const partyCreateOutputSchema = zodOpenapi.z.object({
13860
13907
  customerStatus: zodOpenapi.z.enum(CUSTOMER_STATUS),
@@ -13874,8 +13921,9 @@ const responseBodySchema$5 = zodOpenapi.z.object({
13874
13921
  const createPartyRoute = zodOpenapi.createRoute({
13875
13922
  method: "post",
13876
13923
  path: "/",
13877
- summary: "Create party",
13924
+ summary: "Create Party",
13878
13925
  tags: ["Parties"],
13926
+ 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.",
13879
13927
  request: {
13880
13928
  body: {
13881
13929
  content: {
@@ -13901,8 +13949,11 @@ const createPartyRoute = zodOpenapi.createRoute({
13901
13949
  new zodOpenapi.OpenAPIHono().openapi(
13902
13950
  createPartyRoute,
13903
13951
  async (context) => {
13904
- const party = context.req.valid("json");
13905
- const { data: partyData, error } = await context.env.MASTER_DATA_MANAGEMENT_SERVICE.createParty(party);
13952
+ const { owners, legalRepresentatives, ...partyInput } = context.req.valid("json");
13953
+ const { data: partyData, error } = await context.env.MASTER_DATA_MANAGEMENT_SERVICE.createParty({
13954
+ ...partyInput,
13955
+ party: { ...partyInput.party, isRoot: true }
13956
+ });
13906
13957
  if (!partyData || error) {
13907
13958
  return context.json(
13908
13959
  {
@@ -13911,6 +13962,85 @@ new zodOpenapi.OpenAPIHono().openapi(
13911
13962
  500
13912
13963
  );
13913
13964
  }
13965
+ const mdm = context.env.MASTER_DATA_MANAGEMENT_SERVICE;
13966
+ if (owners?.length) {
13967
+ for (const owner of owners) {
13968
+ const { address, sharePercentage, shareEstablishedAt, ...individual } = owner;
13969
+ const { data: ownerParty, error: ownerError } = await mdm.createParty({
13970
+ party: {
13971
+ partyType: "INDIVIDUAL",
13972
+ language: partyInput.party.language,
13973
+ customerStatus: "NEW"
13974
+ },
13975
+ personalData: individual,
13976
+ organizationData: null,
13977
+ bankAccounts: null,
13978
+ recipients: null,
13979
+ disponents: null,
13980
+ addresses: [{ ...address, addressType: "PERMANENT_ADDRESS" }],
13981
+ aml: partyInput.aml
13982
+ });
13983
+ if (ownerParty && !ownerError) {
13984
+ await mdm.linkPartyToParty({
13985
+ fromPartyId: ownerParty.id,
13986
+ toPartyId: partyData.id,
13987
+ relationshipType: "UBO",
13988
+ sharePercentage,
13989
+ fromDate: new Date(shareEstablishedAt)
13990
+ });
13991
+ }
13992
+ }
13993
+ }
13994
+ if (legalRepresentatives?.length) {
13995
+ for (const rep of legalRepresentatives) {
13996
+ const {
13997
+ address,
13998
+ identityDocuments,
13999
+ dateOfEstablishment,
14000
+ ...individual
14001
+ } = rep;
14002
+ const { data: repParty, error: repError } = await mdm.createParty({
14003
+ party: {
14004
+ partyType: "INDIVIDUAL",
14005
+ language: partyInput.party.language,
14006
+ customerStatus: "NEW"
14007
+ },
14008
+ personalData: individual,
14009
+ organizationData: null,
14010
+ bankAccounts: null,
14011
+ recipients: null,
14012
+ disponents: null,
14013
+ addresses: [{ ...address, addressType: "PERMANENT_ADDRESS" }],
14014
+ aml: partyInput.aml
14015
+ });
14016
+ if (repParty && !repError) {
14017
+ await mdm.linkPartyToParty({
14018
+ fromPartyId: repParty.id,
14019
+ toPartyId: partyData.id,
14020
+ relationshipType: "BOARD_MEMBER",
14021
+ fromDate: new Date(dateOfEstablishment)
14022
+ });
14023
+ if (identityDocuments?.length) {
14024
+ for (const doc of identityDocuments) {
14025
+ await mdm.createIdDocument({
14026
+ partyId: repParty.id,
14027
+ idDocument: {
14028
+ partyId: repParty.id,
14029
+ idDocType: doc.idDocType,
14030
+ idDocNumber: doc.idDocNumber,
14031
+ idDocHolderName: `${individual.name} ${individual.surname}`,
14032
+ issueDate: doc.issueDate,
14033
+ expirationDate: doc.expirationDate,
14034
+ issuer: doc.issuer,
14035
+ frontImageUri: doc.frontImageUri,
14036
+ backImageUri: doc.backImageUri
14037
+ }
14038
+ });
14039
+ }
14040
+ }
14041
+ }
14042
+ }
14043
+ }
13914
14044
  return context.json(
13915
14045
  {
13916
14046
  message: "party created",
@@ -13985,7 +14115,7 @@ const organizationUpdateSchema = zodOpenapi.z.object({
13985
14115
  operationCountries: zodOpenapi.z.string(),
13986
14116
  riskyBusinessType: zodOpenapi.z.string().optional()
13987
14117
  });
13988
- const updateBankAccountSchema = zodOpenapi.z.object({
14118
+ const syncBankAccountSchema = zodOpenapi.z.object({
13989
14119
  ...bankAccountMetadataSchema.shape,
13990
14120
  partyId: zodOpenapi.z.uuid(),
13991
14121
  internalId: zodOpenapi.z.string().optional(),
@@ -13993,20 +14123,72 @@ const updateBankAccountSchema = zodOpenapi.z.object({
13993
14123
  number: zodOpenapi.z.string().optional(),
13994
14124
  currency: bankAccountMetadataSchema.shape.currency.nonoptional(),
13995
14125
  countryCode: bankAccountMetadataSchema.shape.countryCode.nonoptional(),
13996
- id: bankAccountMetadataSchema.shape.id.nonoptional()
14126
+ id: zodOpenapi.z.uuid().optional()
13997
14127
  });
13998
- const disponentUpdateSchema = zodOpenapi.z.discriminatedUnion("partyType", [
14128
+ const disponentIndividualSyncDataSchema = zodOpenapi.z.object({
14129
+ id: zodOpenapi.z.uuid().optional(),
14130
+ name: zodOpenapi.z.string(),
14131
+ surname: zodOpenapi.z.string(),
14132
+ email: zodOpenapi.z.string().optional(),
14133
+ phone: zodOpenapi.z.string().optional(),
14134
+ birthDate: zodOpenapi.z.string().optional(),
14135
+ birthPlace: zodOpenapi.z.string(),
14136
+ countryOfBirth: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional(),
14137
+ personalId: zodOpenapi.z.string(),
14138
+ gender: zodOpenapi.z.enum(GENDER),
14139
+ citizenship: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2),
14140
+ citizenshipOther: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional(),
14141
+ employer: zodOpenapi.z.string().optional(),
14142
+ employerCountry: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional(),
14143
+ registeredNumber: zodOpenapi.z.string().optional(),
14144
+ isPep: zodOpenapi.z.boolean(),
14145
+ titleBefore: zodOpenapi.z.string().optional(),
14146
+ titleAfter: zodOpenapi.z.string().optional(),
14147
+ birthSurname: zodOpenapi.z.string().optional(),
14148
+ vocativeTitle: zodOpenapi.z.string().optional(),
14149
+ deathDate: zodOpenapi.z.date().optional(),
14150
+ deathNotification: zodOpenapi.z.date().optional(),
14151
+ pin: zodOpenapi.z.string().optional(),
14152
+ stayAbroad: zodOpenapi.z.boolean().optional(),
14153
+ stayAbroadCountries: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional()
14154
+ });
14155
+ const disponentOrganizationSyncDataSchema = zodOpenapi.z.object({
14156
+ id: zodOpenapi.z.uuid().optional(),
14157
+ businessName: zodOpenapi.z.string(),
14158
+ email: zodOpenapi.z.email("Invalid email format").optional(),
14159
+ phone: zodOpenapi.z.string().optional(),
14160
+ registeredNumber: zodOpenapi.z.string(),
14161
+ registeredIn: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2),
14162
+ operatesIn: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2),
14163
+ presentIn: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2),
14164
+ monthlyVolumeIn: zodOpenapi.z.number(),
14165
+ monthlyVolumeOut: zodOpenapi.z.number(),
14166
+ ownedBy: zodOpenapi.z.string(),
14167
+ companyObjects: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.CZ_NACE_CODES)).min(1),
14168
+ annualTurnover: zodOpenapi.z.number(),
14169
+ numberOfEmployees: zodOpenapi.z.number().optional(),
14170
+ prosecuted: zodOpenapi.z.string().optional(),
14171
+ location: zodOpenapi.z.string().optional(),
14172
+ fileNumber: zodOpenapi.z.string().optional(),
14173
+ websiteUrl: zodOpenapi.z.url("Invalid website URL").optional(),
14174
+ vatPayer: zodOpenapi.z.boolean(),
14175
+ companyObjectsDescription: zodOpenapi.z.string(),
14176
+ turnover3years: zodOpenapi.z.number(),
14177
+ operationCountries: zodOpenapi.z.string(),
14178
+ riskyBusinessType: zodOpenapi.z.string().optional()
14179
+ });
14180
+ const disponentSyncSchema = zodOpenapi.z.discriminatedUnion("partyType", [
13999
14181
  zodOpenapi.z.object({
14000
14182
  partyType: zodOpenapi.z.literal("INDIVIDUAL"),
14001
- data: individualUpdateSchema
14183
+ data: disponentIndividualSyncDataSchema
14002
14184
  }),
14003
14185
  zodOpenapi.z.object({
14004
14186
  partyType: zodOpenapi.z.literal("ORGANIZATION"),
14005
- data: organizationUpdateSchema
14187
+ data: disponentOrganizationSyncDataSchema
14006
14188
  })
14007
14189
  ]);
14008
- const updateAddressInputSchema = zodOpenapi.z.object({
14009
- id: zodOpenapi.z.uuid(),
14190
+ const syncAddressInputSchema = zodOpenapi.z.object({
14191
+ id: zodOpenapi.z.uuid().optional(),
14010
14192
  partyId: zodOpenapi.z.uuid(),
14011
14193
  internalId: zodOpenapi.z.string().optional(),
14012
14194
  addressType: zodOpenapi.z.enum(ADDRESS_TYPE),
@@ -14022,24 +14204,29 @@ const updateAddressInputSchema = zodOpenapi.z.object({
14022
14204
  ruianCode: zodOpenapi.z.string().optional()
14023
14205
  });
14024
14206
  const businessPartnerInputSchema = zodOpenapi.z.object({
14025
- name: zodOpenapi.z.string(),
14026
- country: zodOpenapi.z.string(),
14207
+ name: zodOpenapi.z.string().min(1, "N\xE1zev partnera je povinn\xFD"),
14208
+ country: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2, "St\xE1t partnera je povinn\xFD"),
14027
14209
  cooperationReason: zodOpenapi.z.string().nullable()
14028
14210
  });
14029
14211
  const foSourceOfWealthInputSchema = zodOpenapi.z.object({
14030
- incomeSources: zodOpenapi.z.array(zodOpenapi.z.enum(INCOME_SOURCE)).min(1),
14031
- monthlyIncome: zodOpenapi.z.enum(MONTHLY_INCOME_RANGE),
14032
- employer: zodOpenapi.z.string().nullable(),
14033
- employerCountry: zodOpenapi.z.string().nullable()
14212
+ incomeSources: zodOpenapi.z.array(zodOpenapi.z.enum(INCOME_SOURCE)).min(1, "Hlavn\xED zdroj p\u0159\xEDjm\u016F je povinn\xFD"),
14213
+ incomeSourceOther: zodOpenapi.z.string().nullable(),
14214
+ monthlyIncome: zodOpenapi.z.enum(MONTHLY_INCOME_RANGE, "M\u011Bs\xED\u010Dn\xED p\u0159\xEDjem je povinn\xFD"),
14215
+ employer: zodOpenapi.z.string().min(1, "N\xE1zev zam\u011Bstnavatele je povinn\xFD").nullable(),
14216
+ employerCountry: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2, "St\xE1t zam\u011Bstnavatele je povinn\xFD").nullable()
14034
14217
  });
14035
14218
  const businessSourceOfWealthInputSchema = zodOpenapi.z.object({
14036
- financialFundsSources: zodOpenapi.z.array(zodOpenapi.z.enum(FINANCIAL_FUNDS_SOURCE)).min(1),
14037
- mainBusinessSubjects: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.CZ_TRADE_LICENSE_CODES)).min(1),
14038
- companyTurnover: zodOpenapi.z.enum(COMPANY_TURNOVER_RANGE),
14039
- operatingCountries: zodOpenapi.z.array(zodOpenapi.z.enum(OPERATING_COUNTRY)).min(1),
14219
+ financialFundsSources: zodOpenapi.z.array(zodOpenapi.z.enum(FINANCIAL_FUNDS_SOURCE)).min(1, "Zdroj finan\u010Dn\xEDch prost\u0159edk\u016F je povinn\xFD"),
14220
+ financialFundsSourceOther: zodOpenapi.z.string().nullable(),
14221
+ mainBusinessSubjects: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.CZ_TRADE_LICENSE_CODES)).min(1, "Hlavn\xED p\u0159edm\u011Bt podnik\xE1n\xED je povinn\xFD"),
14222
+ companyTurnover: zodOpenapi.z.enum(
14223
+ COMPANY_TURNOVER_RANGE,
14224
+ "Obrat za posledn\xED 3 roky je povinn\xFD"
14225
+ ),
14226
+ operatingCountries: zodOpenapi.z.array(zodOpenapi.z.enum(OPERATING_COUNTRY)).min(1, "Zem\u011B p\u016Fsoben\xED je povinn\xE1"),
14040
14227
  operatingCountriesOther: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2)).nullable(),
14041
- businessPartners: zodOpenapi.z.array(businessPartnerInputSchema).nullable(),
14042
- businessActivitiesNote: zodOpenapi.z.string().nullable()
14228
+ businessPartners: zodOpenapi.z.array(businessPartnerInputSchema).min(1, "Alespo\u0148 jeden partner je povinn\xFD").nullable(),
14229
+ businessActivitiesNote: zodOpenapi.z.string().min(1, "Detailn\xED popis v\u0161ech podnikatelsk\xFDch \u010Dinnost\xED je povinn\xFD").nullable()
14043
14230
  });
14044
14231
  const updateAmlInputSchema = zodOpenapi.z.object({
14045
14232
  id: zodOpenapi.z.uuid(),
@@ -14048,7 +14235,9 @@ const updateAmlInputSchema = zodOpenapi.z.object({
14048
14235
  sourceOfWealth: zodOpenapi.z.union([foSourceOfWealthInputSchema, businessSourceOfWealthInputSchema]).optional(),
14049
14236
  yearlyIncome: zodOpenapi.z.enum(YEARLY_INCOME).optional(),
14050
14237
  sourceOfIncome: zodOpenapi.z.array(zodOpenapi.z.enum(INCOME_SOURCE)).min(1).optional(),
14238
+ incomeSourceOther: zodOpenapi.z.string().optional(),
14051
14239
  servicePurposes: zodOpenapi.z.array(zodOpenapi.z.enum(SERVICE_PURPOSE)).optional(),
14240
+ servicePurposesOther: zodOpenapi.z.string().optional(),
14052
14241
  taxDomicile: zodOpenapi.z.enum(TAX_DOMICILE).optional(),
14053
14242
  taxDomicileCountry: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional(),
14054
14243
  transactionType: zodOpenapi.z.string().optional(),
@@ -14077,16 +14266,63 @@ const productsInputSchema = zodOpenapi.z.object({
14077
14266
  }).optional(),
14078
14267
  cbs: zodOpenapi.z.object({}).optional()
14079
14268
  });
14269
+ const ownerSyncSchema = zodOpenapi.z.object({
14270
+ id: zodOpenapi.z.uuid().optional(),
14271
+ titleBefore: zodOpenapi.z.string().optional(),
14272
+ name: zodOpenapi.z.string(),
14273
+ surname: zodOpenapi.z.string(),
14274
+ titleAfter: zodOpenapi.z.string().optional(),
14275
+ birthDate: zodOpenapi.z.string(),
14276
+ birthPlace: zodOpenapi.z.string(),
14277
+ personalId: zodOpenapi.z.string(),
14278
+ gender: zodOpenapi.z.enum(GENDER),
14279
+ citizenship: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2),
14280
+ isPep: zodOpenapi.z.boolean(),
14281
+ address: syncAddressInputSchema,
14282
+ sharePercentage: zodOpenapi.z.number().max(100),
14283
+ shareEstablishedAt: zodOpenapi.z.string().min(1, "Datum vzniku pod\xEDlu je povinn\xFD")
14284
+ });
14285
+ const idDocumentInputSchema = zodOpenapi.z.object({
14286
+ idDocType: zodOpenapi.z.enum(ID_DOC_TYPE),
14287
+ idDocNumber: zodOpenapi.z.string(),
14288
+ issueDate: zodOpenapi.z.date().optional(),
14289
+ expirationDate: zodOpenapi.z.date().optional(),
14290
+ issuer: zodOpenapi.z.string().optional(),
14291
+ frontImageUri: zodOpenapi.z.string().optional(),
14292
+ backImageUri: zodOpenapi.z.string().optional()
14293
+ });
14294
+ const legalRepresentativeSyncSchema = zodOpenapi.z.object({
14295
+ id: zodOpenapi.z.uuid().optional(),
14296
+ titleBefore: zodOpenapi.z.string().optional(),
14297
+ name: zodOpenapi.z.string(),
14298
+ surname: zodOpenapi.z.string(),
14299
+ titleAfter: zodOpenapi.z.string().optional(),
14300
+ birthDate: zodOpenapi.z.string(),
14301
+ birthPlace: zodOpenapi.z.string(),
14302
+ personalId: zodOpenapi.z.string(),
14303
+ gender: zodOpenapi.z.enum(GENDER),
14304
+ citizenship: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2),
14305
+ isPep: zodOpenapi.z.boolean(),
14306
+ phone: zodOpenapi.z.string().optional(),
14307
+ email: zodOpenapi.z.string().optional(),
14308
+ pin: zodOpenapi.z.string().optional(),
14309
+ identityDocuments: zodOpenapi.z.array(idDocumentInputSchema).optional(),
14310
+ address: syncAddressInputSchema,
14311
+ dateOfEstablishment: zodOpenapi.z.string().min(1, "Datum vzniku funkce je povinn\xFD")
14312
+ });
14080
14313
  const partyUpdateInputSchema = zodOpenapi.z.object({
14081
14314
  party: partySchema,
14082
14315
  personalData: individualUpdateSchema.nullable(),
14083
14316
  organizationData: organizationUpdateSchema.nullable(),
14084
- bankAccounts: zodOpenapi.z.array(updateBankAccountSchema),
14085
- disponents: zodOpenapi.z.array(disponentUpdateSchema).optional(),
14086
- addresses: zodOpenapi.z.array(updateAddressInputSchema),
14087
- recipients: zodOpenapi.z.array(updateBankAccountSchema).nullable(),
14317
+ bankAccounts: zodOpenapi.z.array(syncBankAccountSchema),
14318
+ disponents: zodOpenapi.z.array(disponentSyncSchema).optional(),
14319
+ addresses: zodOpenapi.z.array(syncAddressInputSchema),
14320
+ owners: zodOpenapi.z.array(ownerSyncSchema).optional(),
14321
+ legalRepresentatives: zodOpenapi.z.array(legalRepresentativeSyncSchema).optional(),
14322
+ recipients: zodOpenapi.z.array(syncBankAccountSchema).nullable(),
14088
14323
  aml: updateAmlInputSchema.optional(),
14089
- products: productsInputSchema.optional()
14324
+ products: productsInputSchema.optional(),
14325
+ traderIds: zodOpenapi.z.array(zodOpenapi.z.uuid()).optional()
14090
14326
  });
14091
14327
  const updatePartyOuputSchema = zodOpenapi.z.object({
14092
14328
  id: zodOpenapi.z.uuid(),
@@ -14103,8 +14339,9 @@ const responseBodySchema$4 = zodOpenapi.z.object({
14103
14339
  const updatePartyRoute = zodOpenapi.createRoute({
14104
14340
  method: "put",
14105
14341
  path: "/",
14106
- summary: "Update party",
14342
+ summary: "Update Party",
14107
14343
  tags: ["Parties"],
14344
+ 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.",
14108
14345
  security: [
14109
14346
  {
14110
14347
  JwtAuth: []
@@ -14148,7 +14385,8 @@ new zodOpenapi.OpenAPIHono().openapi(
14148
14385
  addresses: party.addresses ?? void 0,
14149
14386
  recipients: party.recipients ?? void 0,
14150
14387
  aml: party.aml ?? void 0,
14151
- products: party.products ?? void 0
14388
+ products: party.products ?? void 0,
14389
+ traderIds: party.traderIds ?? void 0
14152
14390
  });
14153
14391
  if (!updatedParty || partyError) {
14154
14392
  return context.json({ message: "Could not update a Party" }, 404);
@@ -14173,7 +14411,7 @@ const partyBaseOutputSchema = zodOpenapi.z.object({
14173
14411
  countryCode: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).nullable(),
14174
14412
  createdAt: zodOpenapi.z.date().nullable(),
14175
14413
  updatedAt: zodOpenapi.z.date().nullable(),
14176
- isClient: zodOpenapi.z.boolean()
14414
+ isRoot: zodOpenapi.z.boolean()
14177
14415
  });
14178
14416
  const individualOutputSchema = zodOpenapi.z.object({
14179
14417
  id: zodOpenapi.z.uuid(),
@@ -14192,7 +14430,7 @@ const individualOutputSchema = zodOpenapi.z.object({
14192
14430
  citizenshipOther: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).nullable(),
14193
14431
  employer: zodOpenapi.z.string().nullable(),
14194
14432
  employerCountry: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).nullable(),
14195
- registeredNumber: zodOpenapi.z.string(),
14433
+ registeredNumber: zodOpenapi.z.string().nullable(),
14196
14434
  isPep: zodOpenapi.z.boolean(),
14197
14435
  titleBefore: zodOpenapi.z.string().nullable(),
14198
14436
  titleAfter: zodOpenapi.z.string().nullable(),
@@ -14287,12 +14525,14 @@ const businessPartnerOutputSchema = zodOpenapi.z.object({
14287
14525
  });
14288
14526
  const foSourceOfWealthOutputSchema = zodOpenapi.z.object({
14289
14527
  incomeSources: zodOpenapi.z.array(zodOpenapi.z.enum(INCOME_SOURCE)),
14528
+ incomeSourceOther: zodOpenapi.z.string().nullable(),
14290
14529
  monthlyIncome: zodOpenapi.z.enum(MONTHLY_INCOME_RANGE),
14291
14530
  employer: zodOpenapi.z.string().nullable(),
14292
14531
  employerCountry: zodOpenapi.z.string().nullable()
14293
14532
  });
14294
14533
  const businessSourceOfWealthOutputSchema = zodOpenapi.z.object({
14295
14534
  financialFundsSources: zodOpenapi.z.array(zodOpenapi.z.enum(FINANCIAL_FUNDS_SOURCE)),
14535
+ financialFundsSourceOther: zodOpenapi.z.string().nullable(),
14296
14536
  mainBusinessSubjects: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.CZ_TRADE_LICENSE_CODES)),
14297
14537
  companyTurnover: zodOpenapi.z.enum(COMPANY_TURNOVER_RANGE),
14298
14538
  operatingCountries: zodOpenapi.z.array(zodOpenapi.z.enum(OPERATING_COUNTRY)),
@@ -14310,7 +14550,9 @@ const createAmlOutputSchema = zodOpenapi.z.object({
14310
14550
  ]),
14311
14551
  yearlyIncome: zodOpenapi.z.enum(YEARLY_INCOME),
14312
14552
  sourceOfIncome: zodOpenapi.z.array(zodOpenapi.z.enum(INCOME_SOURCE)),
14553
+ incomeSourceOther: zodOpenapi.z.string().nullable(),
14313
14554
  servicePurposes: zodOpenapi.z.array(zodOpenapi.z.enum(SERVICE_PURPOSE)).nullable(),
14555
+ servicePurposesOther: zodOpenapi.z.string().nullable(),
14314
14556
  taxDomicile: zodOpenapi.z.enum(TAX_DOMICILE).nullable(),
14315
14557
  taxDomicileCountry: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).nullable(),
14316
14558
  transactionType: zodOpenapi.z.string().nullable(),
@@ -14332,6 +14574,40 @@ const createAmlOutputSchema = zodOpenapi.z.object({
14332
14574
  createdAt: zodOpenapi.z.date().nullable(),
14333
14575
  updatedAt: zodOpenapi.z.date().nullable()
14334
14576
  });
14577
+ const ownerOutputSchema = zodOpenapi.z.object({
14578
+ id: zodOpenapi.z.uuid().optional(),
14579
+ name: zodOpenapi.z.string(),
14580
+ surname: zodOpenapi.z.string(),
14581
+ titleBefore: zodOpenapi.z.string().nullable(),
14582
+ titleAfter: zodOpenapi.z.string().nullable(),
14583
+ birthDate: zodOpenapi.z.string().nullable(),
14584
+ birthPlace: zodOpenapi.z.string(),
14585
+ personalId: zodOpenapi.z.string(),
14586
+ gender: zodOpenapi.z.enum(GENDER),
14587
+ citizenship: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2),
14588
+ isPep: zodOpenapi.z.boolean(),
14589
+ sharePercentage: zodOpenapi.z.number(),
14590
+ shareEstablishedAt: zodOpenapi.z.string().nullable(),
14591
+ address: createAddressOutputSchema.nullable()
14592
+ });
14593
+ const legalRepresentativeOutputSchema = zodOpenapi.z.object({
14594
+ id: zodOpenapi.z.uuid().optional(),
14595
+ name: zodOpenapi.z.string(),
14596
+ surname: zodOpenapi.z.string(),
14597
+ titleBefore: zodOpenapi.z.string().nullable(),
14598
+ titleAfter: zodOpenapi.z.string().nullable(),
14599
+ birthDate: zodOpenapi.z.string().nullable(),
14600
+ birthPlace: zodOpenapi.z.string(),
14601
+ personalId: zodOpenapi.z.string(),
14602
+ gender: zodOpenapi.z.enum(GENDER),
14603
+ citizenship: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2),
14604
+ isPep: zodOpenapi.z.boolean(),
14605
+ phone: zodOpenapi.z.string().nullable(),
14606
+ email: zodOpenapi.z.string().nullable(),
14607
+ pin: zodOpenapi.z.string().nullable(),
14608
+ dateOfEstablishment: zodOpenapi.z.string().nullable(),
14609
+ address: createAddressOutputSchema.nullable()
14610
+ });
14335
14611
  const productsOutputSchema = zodOpenapi.z.object({
14336
14612
  txs: zodOpenapi.z.object({
14337
14613
  fee: zodOpenapi.z.number(),
@@ -14350,7 +14626,10 @@ const partyOutputSchema = zodOpenapi.z.object({
14350
14626
  addresses: zodOpenapi.z.array(createAddressOutputSchema).nullable(),
14351
14627
  aml: createAmlOutputSchema.nullable(),
14352
14628
  recipients: zodOpenapi.z.array(bankAccountOutputSchema).nullable(),
14353
- products: productsOutputSchema.nullable()
14629
+ products: productsOutputSchema.nullable(),
14630
+ traderIds: zodOpenapi.z.array(zodOpenapi.z.uuid()).nullable(),
14631
+ owners: zodOpenapi.z.array(ownerOutputSchema).optional(),
14632
+ legalRepresentatives: zodOpenapi.z.array(legalRepresentativeOutputSchema).optional()
14354
14633
  });
14355
14634
  const responseBodySchema$3 = zodOpenapi.z.object({
14356
14635
  message: zodOpenapi.z.string(),
@@ -14359,8 +14638,9 @@ const responseBodySchema$3 = zodOpenapi.z.object({
14359
14638
  const getPartyByPartyIdRoute = zodOpenapi.createRoute({
14360
14639
  method: "get",
14361
14640
  path: "/",
14362
- summary: "Get party",
14641
+ summary: "Get Party",
14363
14642
  tags: ["Parties"],
14643
+ 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.",
14364
14644
  request: {
14365
14645
  params: zodOpenapi.z.object({ partyId: zodOpenapi.z.uuid() })
14366
14646
  },
@@ -14418,8 +14698,9 @@ const partiesOutputDataSchema = zodOpenapi.z.array(partyOutputSchema);
14418
14698
  const getPartiesRoute = zodOpenapi.createRoute({
14419
14699
  method: "get",
14420
14700
  path: "/",
14421
- summary: "List parties",
14701
+ summary: "List Parties",
14422
14702
  tags: ["Parties"],
14703
+ description: "Returns a paginated list of all parties. Supports sorting, pagination, filtering by IDs, and full-text search.",
14423
14704
  request: { query: paginationAndSearchSchema },
14424
14705
  responses: {
14425
14706
  500: {
@@ -14538,8 +14819,9 @@ const responseBodySchema$2 = zodOpenapi.z.object({
14538
14819
  const createDocumentRoute = zodOpenapi.createRoute({
14539
14820
  method: "post",
14540
14821
  path: "/",
14541
- summary: "Create ID document and upload file",
14542
- tags: ["Documents"],
14822
+ summary: "Create ID Document",
14823
+ tags: ["ID Documents"],
14824
+ 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.",
14543
14825
  // middleware: [jwt, signature(), idempotency()],
14544
14826
  // security: [{ JwtAuth: [] }],
14545
14827
  request: {
@@ -14690,8 +14972,9 @@ const responseBodySchema$1 = zodOpenapi.z.object({
14690
14972
  const getIdDocumentsListRoute = zodOpenapi.createRoute({
14691
14973
  method: "get",
14692
14974
  path: "/",
14693
- summary: "List party ID documents",
14694
- tags: ["Documents"],
14975
+ summary: "List ID Documents",
14976
+ tags: ["ID Documents"],
14977
+ description: "Returns a paginated list of identification documents for the specified party. Supports filtering by party ID and issuer.",
14695
14978
  request: {
14696
14979
  params: paramsSchema$1,
14697
14980
  query: querySchema
@@ -14968,8 +15251,9 @@ const responseBodySchema = zodOpenapi.z.object({
14968
15251
  const updateIdDocumentRoute = zodOpenapi.createRoute({
14969
15252
  method: "put",
14970
15253
  path: "/",
14971
- summary: "Update party document",
14972
- tags: ["Documents"],
15254
+ summary: "Update ID Document",
15255
+ tags: ["ID Documents"],
15256
+ description: "Updates an existing identification document. Supports partial updates \u2014 only provided fields are changed. Merges the patch with the existing document data.",
14973
15257
  middleware: [jwt, signature(), idempotency()],
14974
15258
  security: [{ JwtAuth: [] }],
14975
15259
  request: {