import { IAgreementDataScheme } from "../agreement-data-schema.interface"; import { IBusinessContactPoint } from "../business-contact-point.interface"; import { IDataValueList } from "../data-value-list.interface"; import { IPartyOrganizationDetail } from "../party-organization-detail.interface"; import { IPartyPersonDetail } from "../party-personal-detail.interface"; import { IPhysicalObject } from "../physical-object.interface"; export interface Insurer { insurerKey: string; insurerPartyKey?: string; insurerFullName: string; insurerPercentage: number; insurerLeaderIndicator: boolean; } export interface AgreementHolder { agreementHolderPartyKey: string; agreementHolderFullName: string; agreementHolderContactPointKey: string; personDataSchemeKey?: string | null; companyDataSchemeKey?: string | null; companyDataScheme?: DataScheme; personDataScheme?: DataScheme; agreementHolderProductComponentKey?: string; agreementHolderProductComponentPath?: string; party: IParty; } export interface AgreementProducer { producerKey: string; agreementProducerPartyKey: string; agreementProducerFullName: string; producerPercentage: number; producerLeaderIndicator: boolean; } export interface AgreementSponsor { producerKey: string; agreementSponsorPartyKey: string; agreementSponsorFullName: string; } export interface AgreementPayer { agreementPayerPartyKey: string; agreementPayerFullName: string; agreementPayerContactPointKey: string; agreementPayerProductComponentKey: string; agreementPayerProductComponentPath: string; } export interface FinancialScheduler { financialSchedulerNumber: number | null; effectiveStartDateTime?: string | null; effectiveEndDateTime?: string | null; dayOfMonth?: number | null; firstDueDate: string | null; modalCurrencyCode: string; modalAmount: number | null; paymentFrequencyCode: string; paymentQuantity?: number; annualizationFactor?: number; productComponentKey?: string; productComponentPath?: string; productComponentMarketingName?: string; } export interface FinancialOption { financialOptionNumber?: number; typeCode?: string; collectionMethodCode?: string | null; externalIdentifier?: string | null; workDependencyTypeCode?: string | null; referencePeriodStartDate?: string | null; referencePeriodEndDate?: string | null; collectionMandateKey?: string | null; collectionAgreementKey?: string | null; productComponentKey?: string; productComponentPath?: string; productComponentMarketingName?: string; agreementPayer?: AgreementPayer; financialSchedulerList?: FinancialScheduler[]; } export interface PremiumBalance { premiumCurrencyCode?: string | null; premiumAmount?: number | null; premiumVatTaxAmount?: number | null; loadingPremiumCurrencyCode?: string | null; loadingPremiumAmount?: number | null; loadingPremiumVatTaxAmount?: number | null; basicPremiumCurrencyCode?: string | null; basicPremiumAmount?: number | null; basicPremiumVatTaxAmount?: number | null; agreedPremiumCurrencyCode?: string | null; agreedPremiumAmount?: number | null; commissionCurrencyCode?: string | null; commissionAmount?: number | null; commissionVatTaxAmount?: number | null; feeCurrencyCode?: string | null; feeAmount?: number | null; feeVatTaxAmount?: number | null; } export interface Limit { appliesToCode?: string; durationUnitCode?: string | null; durationValue?: number | null; paymentFrequencyCode?: string; paymentDurationUnitCode?: string | null; paymentDurationValue?: number | null; currencyCode?: string; minimumAmount?: number | null; maximumAmount?: number | null; fixedAmount?: number | null; valuationTypeCode?: string; percentage?: number | null; includedCode?: string; productComponentKey?: string; productComponentPath?: string; componentTypeCode?: string; productComponentMarketingName?: string; } export interface Deductible { includedCode?: string; componentTypeCode: string; typeCode: string; appliesToCode?: string; currencyCode: string; amount?: number | null; percentage?: number | null; durationUnitCode?: string | null; durationValue?: number | null; productComponentKey?: string; productComponentPath: string; productComponentMarketingName: string; } export interface RatingAttribute { code: string; name: string; value?: string | null; } export interface SurchargeDetail { underwritingRequestKey: string; underwritingItemSequence: number; itemCoverageSequence: number; coverageSurchargeSequence: number; effectiveStartDateTime: string; effectiveEndDateTime?: string | null; reasonCode: string; reasonDescription?: string | null; } export interface RestrictionDetail { underwritingRequestKey: string; underwritingItemSequence: number; itemCoverageSequence: number; coverageRestrictionSequence: number; effectiveStartDateTime: string; effectiveEndDateTime?: string | null; reasonCode: string; reasonDescription?: string | null; restrictionTypeCode: string; restrictionDescription?: string | null; } export interface ExclusionDetail { underwritingRequestKey: string; underwritingItemSequence: number; itemCoverageSequence: number; coverageExclusionSequence: number; effectiveStartDateTime: string; effectiveEndDateTime?: string | null; reasonCode: string; reasonDescription?: string | null; } export interface FinancialProvision { calculationOrder: string; displayOrder: string; effectiveStartDateTime?: string | null; effectiveEndDateTime?: string | null; typeCode: string; currencyCode: string; calculationMethodCode: string; basisAmount?: number | null; rate?: number | null; intermediate01Amount?: number | null; intermediate02Amount?: number | null; intermediate03Amount?: number | null; amount: number; discountRate?: number | null; discountAmount?: number | null; interestMethodCode?: string | null; interestRate?: number | null; interestAmount?: number | null; vatTaxRate: number; vatTaxAmount: number; surchargeDetail?: SurchargeDetail | null; productComponentKey: string; productComponentPath: string; productComponentMarketingName: string; financialOptionNumber?: number | null; } export interface Rating { includedCode?: string; originalEffectiveDateTime?: string | null; effectiveStartDateTime?: string | null; effectiveEndDateTime?: string | null; dataSchemeKey?: string; agreementDataSchemeKey?: string | null; agreementDataScheme?: IAgreementDataScheme; dataScheme?: DataScheme; insuredKey?: string | null; insuredObjectKey?: string | null; productComponentKey?: string; productComponentPath?: string; productComponentMarketingName?: string; limitList: Limit[]; deductibleList: Deductible[] | null; ratingAttributeList?: RatingAttribute[]; financialProvisionList?: FinancialProvision[]; premiumBalance: PremiumBalance | null; restrictionDetail?: RestrictionDetail[]; exclusionDetail?: ExclusionDetail | null; } export interface Clause { calculationOrder: string; displayOrder: string; includedCode: string; mandatoryIndicator: boolean; freeTextIndicator: boolean; freeTextDescription?: string | null; productComponentKey: string; productComponentPath: string; productComponentMarketingName: string; } export interface Coverage { calculationOrder?: string; displayOrder?: number; coverageClassCode: string; includedCode?: string; mandatoryIndicator: boolean; primaryCoverageIndicator?: boolean; productComponentKey?: string; productComponentPath?: string; productComponentMarketingName?: string; ratingList?: Rating[] | null; clauseList?: Clause[] | null; premiumBalance: PremiumBalance | null; description?: string | null; } export interface Insured { insuredKey: string; insuredPartyKey: string; insuredFullName: string; insuredTypeCode: string; insurableInterestTypeCode: string; dataSchemeKey?: string | null; quotationDataSchemeKey?: string | null; dataScheme?: DataScheme; quotationDataScheme?: DataScheme; minimumQuantity?: number | null; maximumQuantity?: number | null; displayOrder?: number | null; party?: IParty; insuredProductComponentKey?: string | null; insuredProductComponentPath?: string | null; } export interface InsuredObject { insuredObjectKey: string; physicalObjectKey: string; physicalObjectClassCode: string; physicalObjectDataSchemeKey?: string | null; quotationPhysicalObjectDataSchemeKey?: string | null; quotationPhysicalObjectDataScheme?: DataScheme; physicalObjectDataScheme?: DataScheme; minimumQuantity: number; maximumQuantity: number; displayOrder: number; physicalObject: IPhysicalObject; insuredObjectProductComponentKey: string; insuredObjectProductComponentPath: string; } export interface Beneficiary { beneficiaryPartyKey?: string | null; beneficiaryContactPointKey?: string | null; beneficiaryFullName?: string | null; beneficiaryTypeCode: string; irrevocableIndicator?: boolean | null; designationCode?: string | null; percentaje?: number | null; replaceToPartyKey?: string | null; personDataSchemeKey?: string | null; companyDataSchemeKey?: string | null; personDataScheme?: DataScheme; companyDataScheme?: DataScheme; minimumQuantity?: number | null; maximumQuantity?: number | null; party: IParty; beneficiaryProductComponentKey: string; beneficiaryProductComponentPath: string; } export interface Employer { employerPartyKey: string; employerFullName: string; employerContactPointKey: string; minimumQuantity: number; maximumQuantity: number; employerProductComponentKey: string; employerProductComponentPath: string; } export interface InvestmentVehicle { calculationOrder: string; displayOrder: string; includedCode: string; allocatePercentage: number; productComponentKey: string; productComponentPath: string; productComponentMarketingName: string; } export interface PolicyInvestmentAccount { calculationOrder: string; displayOrder: string; productComponentKey: string; productComponentPath: string; includedCode: string; accountNumber?: string | null; investmentTypeCode: string; taxPeriodTypeCode: string; taxRegimeCode: string; productComponentMarketingName: string; ratingList?: Rating[]; investmentVehicleList?: InvestmentVehicle[]; clauseList?: Clause[]; premiumBalance: PremiumBalance; } export interface PersonalContactPoint { personalStreet: string; personalNumber: string; personalMunicipalityCode: string; personalCityCode: string; personalRegionCode: string; personalProvinceCode: string; personalCountryCode: string; personalEmailAddress: string; personalUnit: string | null; personalTelephoneCellNumber: string | null; personalTelephoneLandlineNumber: string | null; personalWebPageAddress: string | null; } export interface IParty { partyKey?: string | null; partyClassCode?: string; identifierTypeCode?: string; identifier?: string; genderCode?: string | null; birthDate?: string; deathDate?: string | null; deathIndicator?: boolean | null; bloodTypeCode?: string | null; maritalStatusCode?: string | null; nationalityCode?: string | null; partyName?: PartyName; personDetail?: IPartyPersonDetail | null; organizationDetail?: IPartyOrganizationDetail; contactPointList?: ContactPoint[]; versionDateTime?: string | null; } export interface ContactPoint { contactPointKey: string; referenceCode?: string; partyKey: string | null; entityClass: string; entityKey: string; versionDateTime: string | null; certificationDateTime: string | null; businessContactPoint: IBusinessContactPoint | null; personalContactPoint: PersonalContactPoint | null; } export interface PartyName { classCode: string; fullName: string; givenName: string; middleName: string | null; surname1: string; surname2: string | null; usageCode: string; } export interface PersonalContactPoint { personalStreet: string; personalNumber: string; personalMunicipalityCode: string; personalCityCode: string; personalRegionCode: string; personalProvinceCode: string; personalCountryCode: string; personalEmailAddress: string; personalUnit: string | null; personalTelephoneCellNumber: string | null; personalTelephoneLandlineNumber: string | null; personalWebPageAddress: string | null; } export interface DataScheme { code: string; dataSchemeKey: string; dataSchemeAttributeList: DataSchemeAttribute[]; name: string; version?: string; } export interface DataSchemeAttribute { code: string; controlTypeCode: string; dataDomainCode: string | null; dataType: string; dataValueList: IDataValueList[] | null; defaultValue: any; description: string; format?: Format | null; incrementValue: number | null; mandatoryIndicator: boolean; maxValue: number | null; minValue: number | null; name: string; orientationTypeCode: string | null; sequence: string; updateableIndicator: boolean; widthTypeCode: string; query?: string; placeHolder?: string; hiddenIndicator?: boolean; } export interface Format { allowNegativeNumbers: string | null; mask: string | null; prefix: string | null; specialCharacters: string[] | null; suffix: string | null; thousandSeparator: string | null; dropSpecialCharacters?: boolean; customPatterns?: any; }