@devizovaburza/mdm-sdk 0.0.15 → 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 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(),
@@ -12977,95 +12989,42 @@ const contactUpdateSchema = zodOpenapi.z.object({
12977
12989
  phoneNumber: zodOpenapi.z.string().optional()
12978
12990
  });
12979
12991
 
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(),
12992
+ const insertOverrides = {
13012
12993
  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({
12994
+ partyId: zodOpenapi.z.uuid(),
12995
+ email: zodOpenapi.z.email("Invalid email format").optional()
12996
+ };
12997
+ const selectOverrides = {
13039
12998
  id: zodOpenapi.z.uuid(),
13040
12999
  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
13000
  deathDate: zodOpenapi.z.coerce.date().nullable(),
13062
13001
  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
13002
  createdAt: zodOpenapi.z.coerce.date().nullable(),
13067
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
13022
+ });
13023
+ const individualUpdateSchema$1 = individualInsertSchema$1.partial().extend({
13024
+ partyId: zodOpenapi.z.uuid(),
13025
+ id: zodOpenapi.z.uuid()
13068
13026
  });
13027
+ const individualSelectSchema = individualBaseSelectSchema;
13069
13028
 
13070
13029
  createInsertSchema(organization);
13071
13030
  createUpdateSchema(organization);
@@ -13168,14 +13127,16 @@ zodOpenapi.z.discriminatedUnion("partyType", [
13168
13127
  const disponentCreateSchema = zodOpenapi.z.discriminatedUnion("partyType", [
13169
13128
  zodOpenapi.z.object({
13170
13129
  partyType: zodOpenapi.z.literal("INDIVIDUAL"),
13130
+ relationshipType: zodOpenapi.z.enum(PARTY_RELATIONSHIP_TYPE).optional(),
13171
13131
  data: individualInsertSchema$1.omit({ partyId: true })
13172
13132
  }),
13173
13133
  zodOpenapi.z.object({
13174
13134
  partyType: zodOpenapi.z.literal("ORGANIZATION"),
13135
+ relationshipType: zodOpenapi.z.enum(PARTY_RELATIONSHIP_TYPE).optional(),
13175
13136
  data: organizationInsertSchema.omit({ partyId: true })
13176
13137
  })
13177
13138
  ]);
13178
- const disponentUpdateSchema$1 = zodOpenapi.z.discriminatedUnion("partyType", [
13139
+ const disponentUpdateSchema = zodOpenapi.z.discriminatedUnion("partyType", [
13179
13140
  zodOpenapi.z.object({
13180
13141
  partyType: zodOpenapi.z.literal("INDIVIDUAL"),
13181
13142
  data: individualUpdateSchema$1
@@ -13185,6 +13146,18 @@ const disponentUpdateSchema$1 = zodOpenapi.z.discriminatedUnion("partyType", [
13185
13146
  data: organizationUpdateSchema$1
13186
13147
  })
13187
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
+ ]);
13188
13161
  const disponentSelectSchema = zodOpenapi.z.discriminatedUnion("partyType", [
13189
13162
  zodOpenapi.z.object({
13190
13163
  partyType: zodOpenapi.z.literal("INDIVIDUAL"),
@@ -13196,7 +13169,7 @@ const disponentSelectSchema = zodOpenapi.z.discriminatedUnion("partyType", [
13196
13169
  })
13197
13170
  ]);
13198
13171
  zodOpenapi.z.array(disponentSelectSchema).optional();
13199
- zodOpenapi.z.array(disponentUpdateSchema$1).optional();
13172
+ zodOpenapi.z.array(disponentUpdateSchema).optional();
13200
13173
 
13201
13174
  createInsertSchema(idDocument);
13202
13175
  createUpdateSchema(idDocument);
@@ -13293,6 +13266,7 @@ const partySchema$2 = zodOpenapi.z.object({
13293
13266
  note: zodOpenapi.z.string().optional(),
13294
13267
  countryCode: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional(),
13295
13268
  customerStatus: zodOpenapi.z.enum(CUSTOMER_STATUS).optional(),
13269
+ isRoot: zodOpenapi.z.boolean().optional(),
13296
13270
  legacyId: zodOpenapi.z.string().optional()
13297
13271
  });
13298
13272
  const partyOutputSchema$1 = zodOpenapi.z.object({
@@ -13303,7 +13277,7 @@ const partyOutputSchema$1 = zodOpenapi.z.object({
13303
13277
  id: zodOpenapi.z.uuid(),
13304
13278
  note: zodOpenapi.z.string().nullable(),
13305
13279
  countryCode: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).nullable(),
13306
- isClient: zodOpenapi.z.boolean(),
13280
+ isRoot: zodOpenapi.z.boolean(),
13307
13281
  createdAt: zodOpenapi.z.date().nullable(),
13308
13282
  updatedAt: zodOpenapi.z.date().nullable()
13309
13283
  });
@@ -13317,19 +13291,21 @@ zodOpenapi.z.object({
13317
13291
  disponents: zodOpenapi.z.array(disponentCreateSchema).nullable(),
13318
13292
  addresses: zodOpenapi.z.array(addressInsertSchema.omit({ partyId: true })),
13319
13293
  aml: amlInsertSchema.omit({ partyId: true }),
13320
- products: productsInputSchema$2.optional()
13294
+ products: productsInputSchema$2.optional(),
13295
+ traderIds: zodOpenapi.z.array(zodOpenapi.z.uuid()).optional()
13321
13296
  });
13322
13297
  zodOpenapi.z.object({
13323
13298
  partyId: zodOpenapi.z.uuid(),
13324
13299
  party: partySchema$2,
13325
13300
  personalData: individualUpdateSchema$1.optional(),
13326
13301
  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(),
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(),
13331
13306
  aml: amlUpdateSchema.optional(),
13332
- products: productsInputSchema$2.optional()
13307
+ products: productsInputSchema$2.optional(),
13308
+ traderIds: zodOpenapi.z.array(zodOpenapi.z.uuid()).optional()
13333
13309
  });
13334
13310
  const partySelectOutputSchema = zodOpenapi.z.object({
13335
13311
  party: partyOutputSchema$1.nullable(),
@@ -13340,7 +13316,8 @@ const partySelectOutputSchema = zodOpenapi.z.object({
13340
13316
  disponents: zodOpenapi.z.array(disponentSelectSchema).nullable(),
13341
13317
  addresses: zodOpenapi.z.array(addressSelectSchema).nullable(),
13342
13318
  recipients: zodOpenapi.z.array(recipientSelectSchema).nullable(),
13343
- products: productsOutputSchema$1.nullable()
13319
+ products: productsOutputSchema$1.nullable(),
13320
+ traderIds: zodOpenapi.z.array(zodOpenapi.z.uuid()).nullable()
13344
13321
  });
13345
13322
  zodOpenapi.z.array(partySelectOutputSchema);
13346
13323
  const partySelectDataSchema = zodOpenapi.z.object({
@@ -13358,7 +13335,8 @@ const partySelectArrayDataSchema = zodOpenapi.z.object({
13358
13335
  zodOpenapi.z.object({
13359
13336
  ...partySelectDataSchema.shape,
13360
13337
  ...partySelectArrayDataSchema.shape,
13361
- products: productsOutputSchema$1.nullable()
13338
+ products: productsOutputSchema$1.nullable(),
13339
+ traderIds: zodOpenapi.z.array(zodOpenapi.z.uuid()).nullable()
13362
13340
  });
13363
13341
 
13364
13342
  createInsertSchema(partyChange);
@@ -13712,7 +13690,7 @@ const individualInsertSchema = zodOpenapi.z.object({
13712
13690
  citizenshipOther: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional(),
13713
13691
  employer: zodOpenapi.z.string().optional(),
13714
13692
  employerCountry: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional(),
13715
- registeredNumber: zodOpenapi.z.string(),
13693
+ registeredNumber: zodOpenapi.z.string().optional(),
13716
13694
  isPep: zodOpenapi.z.boolean(),
13717
13695
  titleBefore: zodOpenapi.z.string().optional(),
13718
13696
  titleAfter: zodOpenapi.z.string().optional(),
@@ -13749,7 +13727,7 @@ const createOrganizationInputSchema = zodOpenapi.z.object({
13749
13727
  operationCountries: zodOpenapi.z.string(),
13750
13728
  riskyBusinessType: zodOpenapi.z.string().optional()
13751
13729
  });
13752
- const updateBankAccountSchema$1 = zodOpenapi.z.object({
13730
+ const updateBankAccountSchema = zodOpenapi.z.object({
13753
13731
  ...bankAccountMetadataSchema.shape,
13754
13732
  partyId: zodOpenapi.z.uuid(),
13755
13733
  internalId: zodOpenapi.z.string().optional(),
@@ -13759,7 +13737,7 @@ const updateBankAccountSchema$1 = zodOpenapi.z.object({
13759
13737
  countryCode: bankAccountMetadataSchema.shape.countryCode.nonoptional(),
13760
13738
  id: bankAccountMetadataSchema.shape.id.nonoptional()
13761
13739
  });
13762
- const bankAccountInputSchema = updateBankAccountSchema$1.required({
13740
+ const bankAccountInputSchema = updateBankAccountSchema.required({
13763
13741
  holderName: true,
13764
13742
  currency: true,
13765
13743
  countryCode: true
@@ -13795,12 +13773,14 @@ const businessPartnerInputSchema$1 = zodOpenapi.z.object({
13795
13773
  });
13796
13774
  const foSourceOfWealthInputSchema$1 = zodOpenapi.z.object({
13797
13775
  incomeSources: zodOpenapi.z.array(zodOpenapi.z.enum(INCOME_SOURCE)).min(1),
13776
+ incomeSourceOther: zodOpenapi.z.string().nullable(),
13798
13777
  monthlyIncome: zodOpenapi.z.enum(MONTHLY_INCOME_RANGE),
13799
13778
  employer: zodOpenapi.z.string().nullable(),
13800
13779
  employerCountry: zodOpenapi.z.string().nullable()
13801
13780
  });
13802
13781
  const businessSourceOfWealthInputSchema$1 = zodOpenapi.z.object({
13803
13782
  financialFundsSources: zodOpenapi.z.array(zodOpenapi.z.enum(FINANCIAL_FUNDS_SOURCE)).min(1),
13783
+ financialFundsSourceOther: zodOpenapi.z.string().nullable(),
13804
13784
  mainBusinessSubjects: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.CZ_TRADE_LICENSE_CODES)).min(1),
13805
13785
  companyTurnover: zodOpenapi.z.enum(COMPANY_TURNOVER_RANGE),
13806
13786
  operatingCountries: zodOpenapi.z.array(zodOpenapi.z.enum(OPERATING_COUNTRY)).min(1),
@@ -13816,7 +13796,9 @@ const createAmlInputSchema = zodOpenapi.z.object({
13816
13796
  ]),
13817
13797
  yearlyIncome: zodOpenapi.z.enum(YEARLY_INCOME),
13818
13798
  sourceOfIncome: zodOpenapi.z.array(zodOpenapi.z.enum(INCOME_SOURCE)).min(1),
13799
+ incomeSourceOther: zodOpenapi.z.string().optional(),
13819
13800
  servicePurposes: zodOpenapi.z.array(zodOpenapi.z.enum(SERVICE_PURPOSE)).optional(),
13801
+ servicePurposesOther: zodOpenapi.z.string().optional(),
13820
13802
  taxDomicile: zodOpenapi.z.enum(TAX_DOMICILE).optional(),
13821
13803
  taxDomicileCountry: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional(),
13822
13804
  transactionType: zodOpenapi.z.string().optional(),
@@ -13845,6 +13827,48 @@ const productsInputSchema$1 = zodOpenapi.z.object({
13845
13827
  }).optional(),
13846
13828
  cbs: zodOpenapi.z.object({}).optional()
13847
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
+ });
13848
13872
  const createPartyInputSchema = zodOpenapi.z.object({
13849
13873
  party: partySchema$1.omit({ id: true }),
13850
13874
  personalData: individualInsertSchema.nullable(),
@@ -13852,9 +13876,12 @@ const createPartyInputSchema = zodOpenapi.z.object({
13852
13876
  bankAccounts: zodOpenapi.z.array(bankAccountInputSchema),
13853
13877
  disponents: zodOpenapi.z.array(disponentSchema),
13854
13878
  addresses: zodOpenapi.z.array(createAddressInputSchema),
13879
+ owners: zodOpenapi.z.array(ownerInputSchema).optional(),
13880
+ legalRepresentatives: zodOpenapi.z.array(legalRepresentativeInputSchema).optional(),
13855
13881
  aml: createAmlInputSchema,
13856
13882
  recipients: zodOpenapi.z.array(bankAccountInputSchema),
13857
- products: productsInputSchema$1.optional()
13883
+ products: productsInputSchema$1.optional(),
13884
+ traderIds: zodOpenapi.z.array(zodOpenapi.z.uuid()).optional()
13858
13885
  });
13859
13886
  const partyCreateOutputSchema = zodOpenapi.z.object({
13860
13887
  customerStatus: zodOpenapi.z.enum(CUSTOMER_STATUS),
@@ -13874,8 +13901,9 @@ const responseBodySchema$5 = zodOpenapi.z.object({
13874
13901
  const createPartyRoute = zodOpenapi.createRoute({
13875
13902
  method: "post",
13876
13903
  path: "/",
13877
- summary: "Create party",
13904
+ summary: "Create Party",
13878
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.",
13879
13907
  request: {
13880
13908
  body: {
13881
13909
  content: {
@@ -13901,8 +13929,11 @@ const createPartyRoute = zodOpenapi.createRoute({
13901
13929
  new zodOpenapi.OpenAPIHono().openapi(
13902
13930
  createPartyRoute,
13903
13931
  async (context) => {
13904
- const party = context.req.valid("json");
13905
- const { data: partyData, error } = await context.env.MASTER_DATA_MANAGEMENT_SERVICE.createParty(party);
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
+ });
13906
13937
  if (!partyData || error) {
13907
13938
  return context.json(
13908
13939
  {
@@ -13911,6 +13942,85 @@ new zodOpenapi.OpenAPIHono().openapi(
13911
13942
  500
13912
13943
  );
13913
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
+ }
13914
14024
  return context.json(
13915
14025
  {
13916
14026
  message: "party created",
@@ -13985,7 +14095,7 @@ const organizationUpdateSchema = zodOpenapi.z.object({
13985
14095
  operationCountries: zodOpenapi.z.string(),
13986
14096
  riskyBusinessType: zodOpenapi.z.string().optional()
13987
14097
  });
13988
- const updateBankAccountSchema = zodOpenapi.z.object({
14098
+ const syncBankAccountSchema = zodOpenapi.z.object({
13989
14099
  ...bankAccountMetadataSchema.shape,
13990
14100
  partyId: zodOpenapi.z.uuid(),
13991
14101
  internalId: zodOpenapi.z.string().optional(),
@@ -13993,20 +14103,72 @@ const updateBankAccountSchema = zodOpenapi.z.object({
13993
14103
  number: zodOpenapi.z.string().optional(),
13994
14104
  currency: bankAccountMetadataSchema.shape.currency.nonoptional(),
13995
14105
  countryCode: bankAccountMetadataSchema.shape.countryCode.nonoptional(),
13996
- id: bankAccountMetadataSchema.shape.id.nonoptional()
14106
+ id: zodOpenapi.z.uuid().optional()
13997
14107
  });
13998
- const disponentUpdateSchema = zodOpenapi.z.discriminatedUnion("partyType", [
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", [
13999
14161
  zodOpenapi.z.object({
14000
14162
  partyType: zodOpenapi.z.literal("INDIVIDUAL"),
14001
- data: individualUpdateSchema
14163
+ data: disponentIndividualSyncDataSchema
14002
14164
  }),
14003
14165
  zodOpenapi.z.object({
14004
14166
  partyType: zodOpenapi.z.literal("ORGANIZATION"),
14005
- data: organizationUpdateSchema
14167
+ data: disponentOrganizationSyncDataSchema
14006
14168
  })
14007
14169
  ]);
14008
- const updateAddressInputSchema = zodOpenapi.z.object({
14009
- id: zodOpenapi.z.uuid(),
14170
+ const syncAddressInputSchema = zodOpenapi.z.object({
14171
+ id: zodOpenapi.z.uuid().optional(),
14010
14172
  partyId: zodOpenapi.z.uuid(),
14011
14173
  internalId: zodOpenapi.z.string().optional(),
14012
14174
  addressType: zodOpenapi.z.enum(ADDRESS_TYPE),
@@ -14028,12 +14190,14 @@ const businessPartnerInputSchema = zodOpenapi.z.object({
14028
14190
  });
14029
14191
  const foSourceOfWealthInputSchema = zodOpenapi.z.object({
14030
14192
  incomeSources: zodOpenapi.z.array(zodOpenapi.z.enum(INCOME_SOURCE)).min(1),
14193
+ incomeSourceOther: zodOpenapi.z.string().nullable(),
14031
14194
  monthlyIncome: zodOpenapi.z.enum(MONTHLY_INCOME_RANGE),
14032
14195
  employer: zodOpenapi.z.string().nullable(),
14033
14196
  employerCountry: zodOpenapi.z.string().nullable()
14034
14197
  });
14035
14198
  const businessSourceOfWealthInputSchema = zodOpenapi.z.object({
14036
14199
  financialFundsSources: zodOpenapi.z.array(zodOpenapi.z.enum(FINANCIAL_FUNDS_SOURCE)).min(1),
14200
+ financialFundsSourceOther: zodOpenapi.z.string().nullable(),
14037
14201
  mainBusinessSubjects: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.CZ_TRADE_LICENSE_CODES)).min(1),
14038
14202
  companyTurnover: zodOpenapi.z.enum(COMPANY_TURNOVER_RANGE),
14039
14203
  operatingCountries: zodOpenapi.z.array(zodOpenapi.z.enum(OPERATING_COUNTRY)).min(1),
@@ -14048,7 +14212,9 @@ const updateAmlInputSchema = zodOpenapi.z.object({
14048
14212
  sourceOfWealth: zodOpenapi.z.union([foSourceOfWealthInputSchema, businessSourceOfWealthInputSchema]).optional(),
14049
14213
  yearlyIncome: zodOpenapi.z.enum(YEARLY_INCOME).optional(),
14050
14214
  sourceOfIncome: zodOpenapi.z.array(zodOpenapi.z.enum(INCOME_SOURCE)).min(1).optional(),
14215
+ incomeSourceOther: zodOpenapi.z.string().optional(),
14051
14216
  servicePurposes: zodOpenapi.z.array(zodOpenapi.z.enum(SERVICE_PURPOSE)).optional(),
14217
+ servicePurposesOther: zodOpenapi.z.string().optional(),
14052
14218
  taxDomicile: zodOpenapi.z.enum(TAX_DOMICILE).optional(),
14053
14219
  taxDomicileCountry: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).optional(),
14054
14220
  transactionType: zodOpenapi.z.string().optional(),
@@ -14077,16 +14243,63 @@ const productsInputSchema = zodOpenapi.z.object({
14077
14243
  }).optional(),
14078
14244
  cbs: zodOpenapi.z.object({}).optional()
14079
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
+ });
14080
14290
  const partyUpdateInputSchema = zodOpenapi.z.object({
14081
14291
  party: partySchema,
14082
14292
  personalData: individualUpdateSchema.nullable(),
14083
14293
  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(),
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(),
14088
14300
  aml: updateAmlInputSchema.optional(),
14089
- products: productsInputSchema.optional()
14301
+ products: productsInputSchema.optional(),
14302
+ traderIds: zodOpenapi.z.array(zodOpenapi.z.uuid()).optional()
14090
14303
  });
14091
14304
  const updatePartyOuputSchema = zodOpenapi.z.object({
14092
14305
  id: zodOpenapi.z.uuid(),
@@ -14103,8 +14316,9 @@ const responseBodySchema$4 = zodOpenapi.z.object({
14103
14316
  const updatePartyRoute = zodOpenapi.createRoute({
14104
14317
  method: "put",
14105
14318
  path: "/",
14106
- summary: "Update party",
14319
+ summary: "Update Party",
14107
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.",
14108
14322
  security: [
14109
14323
  {
14110
14324
  JwtAuth: []
@@ -14148,7 +14362,8 @@ new zodOpenapi.OpenAPIHono().openapi(
14148
14362
  addresses: party.addresses ?? void 0,
14149
14363
  recipients: party.recipients ?? void 0,
14150
14364
  aml: party.aml ?? void 0,
14151
- products: party.products ?? void 0
14365
+ products: party.products ?? void 0,
14366
+ traderIds: party.traderIds ?? void 0
14152
14367
  });
14153
14368
  if (!updatedParty || partyError) {
14154
14369
  return context.json({ message: "Could not update a Party" }, 404);
@@ -14173,7 +14388,7 @@ const partyBaseOutputSchema = zodOpenapi.z.object({
14173
14388
  countryCode: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).nullable(),
14174
14389
  createdAt: zodOpenapi.z.date().nullable(),
14175
14390
  updatedAt: zodOpenapi.z.date().nullable(),
14176
- isClient: zodOpenapi.z.boolean()
14391
+ isRoot: zodOpenapi.z.boolean()
14177
14392
  });
14178
14393
  const individualOutputSchema = zodOpenapi.z.object({
14179
14394
  id: zodOpenapi.z.uuid(),
@@ -14192,7 +14407,7 @@ const individualOutputSchema = zodOpenapi.z.object({
14192
14407
  citizenshipOther: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).nullable(),
14193
14408
  employer: zodOpenapi.z.string().nullable(),
14194
14409
  employerCountry: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).nullable(),
14195
- registeredNumber: zodOpenapi.z.string(),
14410
+ registeredNumber: zodOpenapi.z.string().nullable(),
14196
14411
  isPep: zodOpenapi.z.boolean(),
14197
14412
  titleBefore: zodOpenapi.z.string().nullable(),
14198
14413
  titleAfter: zodOpenapi.z.string().nullable(),
@@ -14287,12 +14502,14 @@ const businessPartnerOutputSchema = zodOpenapi.z.object({
14287
14502
  });
14288
14503
  const foSourceOfWealthOutputSchema = zodOpenapi.z.object({
14289
14504
  incomeSources: zodOpenapi.z.array(zodOpenapi.z.enum(INCOME_SOURCE)),
14505
+ incomeSourceOther: zodOpenapi.z.string().nullable(),
14290
14506
  monthlyIncome: zodOpenapi.z.enum(MONTHLY_INCOME_RANGE),
14291
14507
  employer: zodOpenapi.z.string().nullable(),
14292
14508
  employerCountry: zodOpenapi.z.string().nullable()
14293
14509
  });
14294
14510
  const businessSourceOfWealthOutputSchema = zodOpenapi.z.object({
14295
14511
  financialFundsSources: zodOpenapi.z.array(zodOpenapi.z.enum(FINANCIAL_FUNDS_SOURCE)),
14512
+ financialFundsSourceOther: zodOpenapi.z.string().nullable(),
14296
14513
  mainBusinessSubjects: zodOpenapi.z.array(zodOpenapi.z.enum(generalCodes.CZ_TRADE_LICENSE_CODES)),
14297
14514
  companyTurnover: zodOpenapi.z.enum(COMPANY_TURNOVER_RANGE),
14298
14515
  operatingCountries: zodOpenapi.z.array(zodOpenapi.z.enum(OPERATING_COUNTRY)),
@@ -14310,7 +14527,9 @@ const createAmlOutputSchema = zodOpenapi.z.object({
14310
14527
  ]),
14311
14528
  yearlyIncome: zodOpenapi.z.enum(YEARLY_INCOME),
14312
14529
  sourceOfIncome: zodOpenapi.z.array(zodOpenapi.z.enum(INCOME_SOURCE)),
14530
+ incomeSourceOther: zodOpenapi.z.string().nullable(),
14313
14531
  servicePurposes: zodOpenapi.z.array(zodOpenapi.z.enum(SERVICE_PURPOSE)).nullable(),
14532
+ servicePurposesOther: zodOpenapi.z.string().nullable(),
14314
14533
  taxDomicile: zodOpenapi.z.enum(TAX_DOMICILE).nullable(),
14315
14534
  taxDomicileCountry: zodOpenapi.z.enum(generalCodes.COUNTRY_CODES_2).nullable(),
14316
14535
  transactionType: zodOpenapi.z.string().nullable(),
@@ -14350,7 +14569,8 @@ const partyOutputSchema = zodOpenapi.z.object({
14350
14569
  addresses: zodOpenapi.z.array(createAddressOutputSchema).nullable(),
14351
14570
  aml: createAmlOutputSchema.nullable(),
14352
14571
  recipients: zodOpenapi.z.array(bankAccountOutputSchema).nullable(),
14353
- products: productsOutputSchema.nullable()
14572
+ products: productsOutputSchema.nullable(),
14573
+ traderIds: zodOpenapi.z.array(zodOpenapi.z.uuid()).nullable()
14354
14574
  });
14355
14575
  const responseBodySchema$3 = zodOpenapi.z.object({
14356
14576
  message: zodOpenapi.z.string(),
@@ -14359,8 +14579,9 @@ const responseBodySchema$3 = zodOpenapi.z.object({
14359
14579
  const getPartyByPartyIdRoute = zodOpenapi.createRoute({
14360
14580
  method: "get",
14361
14581
  path: "/",
14362
- summary: "Get party",
14582
+ summary: "Get Party",
14363
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.",
14364
14585
  request: {
14365
14586
  params: zodOpenapi.z.object({ partyId: zodOpenapi.z.uuid() })
14366
14587
  },
@@ -14418,8 +14639,9 @@ const partiesOutputDataSchema = zodOpenapi.z.array(partyOutputSchema);
14418
14639
  const getPartiesRoute = zodOpenapi.createRoute({
14419
14640
  method: "get",
14420
14641
  path: "/",
14421
- summary: "List parties",
14642
+ summary: "List Parties",
14422
14643
  tags: ["Parties"],
14644
+ description: "Returns a paginated list of all parties. Supports sorting, pagination, filtering by IDs, and full-text search.",
14423
14645
  request: { query: paginationAndSearchSchema },
14424
14646
  responses: {
14425
14647
  500: {
@@ -14538,8 +14760,9 @@ const responseBodySchema$2 = zodOpenapi.z.object({
14538
14760
  const createDocumentRoute = zodOpenapi.createRoute({
14539
14761
  method: "post",
14540
14762
  path: "/",
14541
- summary: "Create ID document and upload file",
14542
- tags: ["Documents"],
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.",
14543
14766
  // middleware: [jwt, signature(), idempotency()],
14544
14767
  // security: [{ JwtAuth: [] }],
14545
14768
  request: {
@@ -14690,8 +14913,9 @@ const responseBodySchema$1 = zodOpenapi.z.object({
14690
14913
  const getIdDocumentsListRoute = zodOpenapi.createRoute({
14691
14914
  method: "get",
14692
14915
  path: "/",
14693
- summary: "List party ID documents",
14694
- tags: ["Documents"],
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.",
14695
14919
  request: {
14696
14920
  params: paramsSchema$1,
14697
14921
  query: querySchema
@@ -14968,8 +15192,9 @@ const responseBodySchema = zodOpenapi.z.object({
14968
15192
  const updateIdDocumentRoute = zodOpenapi.createRoute({
14969
15193
  method: "put",
14970
15194
  path: "/",
14971
- summary: "Update party document",
14972
- tags: ["Documents"],
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.",
14973
15198
  middleware: [jwt, signature(), idempotency()],
14974
15199
  security: [{ JwtAuth: [] }],
14975
15200
  request: {