Source code for ace.centralize.graphql.models

"""
    Centralize GraphQL Message entities models for Centralize

    This module contains all the entities classes definition and models used to create the message sent.
    Those models define the messages' input parameters and structure the script need to use

"""
from datetime import date, datetime
from typing import List, Optional
from uuid import UUID


# ======================================================================================================================
# =================================================== MODELS ===========================================================
# ======================================================================================================================


# =================================================== SCHEDULER ========================================================
[docs] class SchedulerParameter:
[docs] def __init__( self, key: str, value: str ): self.key = key self.value = value
[docs] class CreateScheduledJobObject:
[docs] def __init__( self, entity_id: int, entity_type_id: str, job_id: int, execution_datetime: datetime, business_event_id: Optional[int] = None, user_id: Optional[int] = None, payload: Optional[str] = None, parameters: Optional[List[SchedulerParameter]] = None, entity_type_name: Optional[str] = None, job_name: Optional[str] = None ): self.businessEventId = business_event_id self.entityId = entity_id self.entityTypeId = entity_type_id self.entityTypeName = entity_type_name self.executionDateTime = execution_datetime self.jobId = job_id self.jobName = job_name self.parameters = parameters self.payload = payload self.userId = user_id
[docs] class CreateBusinessEventObject:
[docs] def __init__( self, entity_id: int, entity_type_id: str, event_datetime: datetime, event_type_id: Optional[int] = None, entity_type_name: Optional[str] = None, event_type_name: Optional[str] = None, parameters: Optional[List[SchedulerParameter]] = None, creation_user_id: int = 1 ): self.creationUserId = creation_user_id self.entityId = entity_id self.entityTypeId = entity_type_id self.entityTypeName = entity_type_name self.eventDateTime = event_datetime self.eventTypeId = event_type_id self.eventTypeName = event_type_name self.parameters = parameters
# ================================================== COVERAGES =========================================================
[docs] class CreateCoverageBenefitObject:
[docs] def __init__( self, benefit_percentage: Optional[float] = None, benefit_period_id: Optional[int] = None, current_benefit_amount: Optional[float] = None, current_benefit_currency_id: Optional[int] = None, elimination_period_id: Optional[int] = None, expiry_date: Optional[str] = None, initial_benefit_amount: Optional[float] = None, initial_benefit_currency_id: Optional[int] = None, lives_type_id: Optional[int] = None, renewal_date: Optional[date] = None ): self.benefitPercentage = benefit_percentage self.benefitPeriodId = benefit_period_id self.currentBenefitAmount = current_benefit_amount self.currentBenefitCurrencyId = current_benefit_currency_id self.eliminationPeriodId = elimination_period_id self.expiryDate = expiry_date self.initialBenefitAmount = initial_benefit_amount self.initialBenefitCurrencyId = initial_benefit_currency_id self.livesTypeId = lives_type_id self.renewalDate = renewal_date
[docs] class CreateCoverageLifeObject:
[docs] def __init__( self, conversion_date: Optional[date] = None, current_amount: Optional[float] = None, death_benefit_option_type_id: Optional[int] = None, duration_design: Optional[int] = None, expiry_date: Optional[date] = None, initial_amount: Optional[float] = None, lives_type_id: Optional[int] = None, renewal_date: Optional[date] = None, ): self.conversionDate = conversion_date self.currentAmount = current_amount self.deathBenefitOptionTypeId = death_benefit_option_type_id self.durationDesign = duration_design self.expiryDate = expiry_date self.initialAmount = initial_amount self.livesTypeId = lives_type_id self.renewalDate = renewal_date
[docs] class CreateRatingObject:
[docs] def __init__( self, employment_class_id: Optional[int] = None, issue_age: Optional[int] = None, issue_gender_id: Optional[int] = None, occupation: Optional[str] = None, tobacco_premium_basis_id: Optional[int] = None, underwriting_class_id: Optional[int] = None ): self.employmentClassId = employment_class_id self.issueAge = issue_age self.issueGenderId = issue_gender_id self.occupation = occupation self.tobaccoPremiumBasisId = tobacco_premium_basis_id self.underwritingClassId = underwriting_class_id
[docs] class CreateSubStandardRatingObject:
[docs] def __init__( self, participant_role_id: Optional[int] = None, table_rating_id: Optional[int] = None, flat_extra_amount: Optional[float] = None, falt_extra_basis_id: Optional[int] = None, effective_date: Optional[date] = None, expiration_date: Optional[date] = None ): self.participantRoleId = participant_role_id self.tableRatingId = table_rating_id self.flatExtraAmount = flat_extra_amount self.flatExtraBasisId = falt_extra_basis_id self.effectiveDate = effective_date self.expirationDate = expiration_date
[docs] class CreatePremiumObject:
[docs] def __init__( self, premium_type_id: Optional[int] = None, premium_amount: Optional[float] = None, effective_date: Optional[date] = None, expiration_date: Optional[date] = None ): self.premiumTypeId = premium_type_id self.premiumAmount = premium_amount self.effectiveDate = effective_date self.expirationDate = expiration_date
[docs] class UpdatePremiumObject:
[docs] def __init__( self, premium_id: int, premium_type_id: Optional[int] = None, premium_amount: Optional[float] = None, effective_date: Optional[date] = None, expiration_date: Optional[date] = None ): self.id = premium_id self.premiumTypeId = premium_type_id self.premiumAmount = premium_amount self.effectiveDate = effective_date self.expirationDate = expiration_date
[docs] class CreateCoverageObject:
[docs] def __init__( self, coverage_product_id: int, coverage_guid: Optional[str] = None, parent_coverage_id: Optional[int] = None, product_code: Optional[str] = None, coverage_number: Optional[str] = None, effective_date: Optional[date] = None, index: Optional[int] = None, termination_date: Optional[date] = None, termination_reason_id: Optional[int] = None, coverage_benefit: Optional[CreateCoverageBenefitObject] = None, coverage_life: Optional[CreateCoverageLifeObject] = None, rating: Optional[CreateRatingObject] = None, premiums: Optional[List[CreatePremiumObject]] = None, sub_standard_ratings: Optional[List[CreateSubStandardRatingObject]] = None, ): self.coverageProductId = coverage_product_id if coverage_guid: self.coverageGUID = coverage_guid if parent_coverage_id: self.parentCoverageId = parent_coverage_id if product_code: self.productCode = product_code if coverage_number: self.coverageNumber = coverage_number if effective_date: self.effectiveDate = effective_date if index: self.index = index if termination_date: self.terminationDate = termination_date if termination_reason_id: self.terminationReasonId = termination_reason_id if coverage_benefit: self.coverageBenefit = coverage_benefit if coverage_life: self.coverageLife = coverage_life if rating: self.rating = rating if premiums: self.premiums = premiums if sub_standard_ratings: self.substandardRatings = sub_standard_ratings
[docs] class UpdateCoverageObject:
[docs] def __init__( self, parent_coverage_id: Optional[int] = None, product_code: Optional[str] = None, annual_premium: Optional[float] = None, modal_premium: Optional[float] = None, coverage_number: Optional[str] = None, effective_date: Optional[date] = None, termination_date: Optional[date] = None, termination_reason_id: Optional[int] = None, coverage_product_id: Optional[int] = None, coverage_benefit: Optional[CreateCoverageBenefitObject] = None, coverage_life: Optional[CreateCoverageLifeObject] = None, rating: Optional[CreateRatingObject] = None, index: Optional[int] = None, premiums_to_add: Optional[List[CreatePremiumObject]] = None, premiums_to_delete: Optional[int] = None, premiums_to_update: Optional[List[UpdatePremiumObject]] = None, coverage_id: int = None ): self.id = coverage_id if coverage_product_id: self.coverageProductId = coverage_product_id if parent_coverage_id: self.parentCoverageId = parent_coverage_id if product_code: self.productCode = product_code if annual_premium: self.annualPremium = annual_premium if modal_premium: self.modalPremium = modal_premium if coverage_number: self.coverageNumber = coverage_number if effective_date: self.effectiveDate = effective_date if termination_date: self.terminationDate = termination_date if termination_reason_id: self.terminationReasonId = termination_reason_id if coverage_benefit: self.coverageBenefit = coverage_benefit if coverage_life: self.coverageLife = coverage_life if rating: self.rating = rating if index: self.index = index if premiums_to_add: self.premiumsToAdd = premiums_to_add if premiums_to_update: self.premiumsToUpdate = premiums_to_update if premiums_to_delete: self.premiumsToDelete = premiums_to_delete
[docs] class TerminateCoverageObject:
[docs] def __init__( self, termination_date: Optional[date] = None, termination_reason_id: Optional[int] = None, coverage_id: int = 0 ): self.id = coverage_id self.terminationDate = termination_date self.terminationReasonId = termination_reason_id
# =============================================== PAYMENT AGREEMENT ====================================================
[docs] class CreatePaymentAgreementObject:
[docs] def __init__( self, payment_method_id: int, payment_mode_id: int, day_of_month: Optional[int] = None ): self.paymentMethodId = payment_method_id self.paymentModeId = payment_mode_id if day_of_month: self.dayOfMonth = day_of_month
[docs] class UpdatePaymentAgreementObject:
[docs] def __init__( self, day_of_month: Optional[int] = None, payment_method_id: Optional[int] = None, payment_mode_id: Optional[int] = None ): if day_of_month: self.dayOfMonth = day_of_month if payment_method_id: self.paymentMethodId = payment_method_id if payment_mode_id: self.paymentModeId = payment_mode_id
# ===================================================== POLICY =========================================================
[docs] class UpdatePolicyPaymentObject:
[docs] def __init__( self, billed_to_date: Optional[date] = None, grace_amount: Optional[float] = None, grace_period_end_date: Optional[date] = None, next_billed_amount: Optional[float] = None, paid_to_date: Optional[date] = None, premium_paid_end_date: Optional[date] = None, premium_paid_status_id: Optional[int] = None ): if billed_to_date: self.billedToDate = billed_to_date if grace_amount: self.graceAmount = grace_amount self.gracePeriodEndDate = grace_period_end_date if next_billed_amount: self.nextBilledAmount = next_billed_amount if paid_to_date: self.paidToDate = paid_to_date if premium_paid_end_date: self.premiumPaidEndDate = premium_paid_end_date if premium_paid_status_id: self.premiumPaidStatusId = premium_paid_status_id
[docs] class CreatePolicyObject:
[docs] def __init__( self, product_id: int, effective_date: Optional[date] = None, fee_amount: Optional[float] = None, issue_date: Optional[date] = None, jurisdiction_id: Optional[int] = None, maturity_date: Optional[date] = None, policy_number: Optional[str] = None, product_code: Optional[str] = None, referral_source_id: Optional[int] = None, renewal_date: Optional[date] = None, sub_status_id: Optional[int] = None, termination_date: Optional[date] = None, termination_reason_id: Optional[int] = None, coverages: Optional[List[CreateCoverageObject]] = None, payment_agreement: Optional[CreatePaymentAgreementObject] = None, premiums: Optional[List[CreatePremiumObject]] = None, ): self.productId = product_id if policy_number: self.policyNumber = policy_number if product_code: self.productCode = product_code if jurisdiction_id: self.jurisdictionId = jurisdiction_id if maturity_date: self.maturityDate = maturity_date if effective_date: self.effectiveDate = effective_date if termination_date: self.terminationDate = termination_date if fee_amount: self.feeAmount = fee_amount if issue_date: self.issueDate = issue_date if referral_source_id: self.referralSourceId = referral_source_id if renewal_date: self.renewalDate = renewal_date if sub_status_id: self.subStatusId = sub_status_id if termination_reason_id: self.terminationReasonId = termination_reason_id if coverages: self.coverages = coverages if payment_agreement: self.premiumPaymentAgreement = payment_agreement if premiums: self.premiums = premiums
[docs] class UpdatePolicyObject:
[docs] def __init__( self, policy_id: int, coverages_to_add: Optional[List[CreateCoverageObject]] = None, coverages_to_update: Optional[List[UpdateCoverageObject]] = None, coverages_to_delete: Optional[List[int]] = None, effective_date: Optional[date] = None, issue_date: Optional[date] = None, jurisdiction_id: Optional[int] = None, maturity_date: Optional[date] = None, modal_premium: Optional[float] = None, payment_agreement: Optional[UpdatePaymentAgreementObject] = None, policy_number: Optional[str] = None, policy_payment: Optional[UpdatePolicyPaymentObject] = None, premiums_to_add: Optional[List[CreatePremiumObject]] = None, premiums_to_update: Optional[List[UpdatePremiumObject]] = None, premiums_to_delete: Optional[List[int]] = None, product_code: Optional[str] = None, product_id: Optional[int] = 0, referral_source_id: Optional[int] = None, renewal_date: Optional[date] = None, sub_status_id: Optional[int] = None, termination_date: Optional[date] = None, termination_reason_id: Optional[int] = None, ): self.id = policy_id if coverages_to_add: self.coveragesToAdd = coverages_to_add if coverages_to_update: self.coveragesToUpdate = coverages_to_update if coverages_to_delete: self.coveragesToDelete = coverages_to_delete if effective_date: self.effectiveDate = effective_date if issue_date: self.issueDate = issue_date if jurisdiction_id: self.jurisdictionId = jurisdiction_id if maturity_date: self.maturityDate = maturity_date if modal_premium: self.modalPremium = modal_premium if payment_agreement: self.premiumPaymentAgreement = payment_agreement if policy_number: self.policyNumber = policy_number if policy_payment: self.payment = policy_payment if premiums_to_add: self.premiumsToAdd = premiums_to_add if premiums_to_update: self.premiumsToUpdate = premiums_to_update if premiums_to_delete: self.premiumsToDelete = premiums_to_delete if product_code: self.productCode = product_code if product_id: self.productId = product_id if referral_source_id: self.referralSourceId = referral_source_id if renewal_date: self.renewalDate = renewal_date if sub_status_id: self.subStatusId = sub_status_id if termination_date: self.terminationDate = termination_date if termination_reason_id: self.terminationReasonId = termination_reason_id
[docs] class TerminatePolicyObject:
[docs] def __init__( self, termination_date: Optional[date] = None, termination_reason_id: Optional[int] = None, policy_id: int = 0, coverages: Optional[List[TerminateCoverageObject]] = None ): self.id = policy_id self.terminationDate = termination_date self.terminationReasonId = termination_reason_id self.coveragesToUpdate = coverages
# ================================================= APPLICATION ========================================================
[docs] class CreateApplicationObject:
[docs] def __init__( self, application_type_id: int, application_number: Optional[str] = None, approved_date: Optional[date] = None, cash_with_application_amount: Optional[float] = None, declined_date: Optional[date] = None, delivery_method_id: Optional[int] = None, effective_date: Optional[date] = None, interview_type_id: Optional[int] = None, is_calculated_in_production: Optional[bool] = None, is_delivered: Optional[bool] = None, is_replacement: Optional[bool] = None, issue_date: Optional[date] = None, reference_number: Optional[str] = None, signed_date: Optional[date] = None, signed_jurisdiction_id: Optional[int] = None, submission_type_id: Optional[int] = None, submitted_date: Optional[date] = None, sub_status_id: Optional[int] = None, termination_date: Optional[date] = None, termination_reason_id: Optional[int] = None, policy: Optional[CreatePolicyObject] = None, ): self.applicationTypeId = application_type_id if application_number: self.applicationNumber = application_number if approved_date: self.approvedDate = approved_date if cash_with_application_amount: self.cashWithApplicationAmount = cash_with_application_amount if declined_date: self.declinedDate = declined_date if delivery_method_id: self.deliveryMethodId = delivery_method_id if effective_date: self.effectiveDate = effective_date if interview_type_id: self.interviewTypeId = interview_type_id if is_calculated_in_production: self.isCalculatedInProduction = is_calculated_in_production if is_delivered: self.isDelivered = is_delivered if is_replacement: self.isReplacement = is_replacement if issue_date: self.issueDate = issue_date if reference_number: self.referenceNumber = reference_number if signed_date: self.signedDate = signed_date if signed_jurisdiction_id: self.signedJurisdictionId = signed_jurisdiction_id if submission_type_id: self.submissionTypeId = submission_type_id if submitted_date: self.submittedDate = submitted_date if sub_status_id: self.subStatusId = sub_status_id if termination_date: self.terminationDate = termination_date if termination_reason_id: self.terminationReasonId = termination_reason_id if policy: self.policy = policy
[docs] class UpdateApplicationObject:
[docs] def __init__( self, application_id: int = 0, application_number: Optional[str] = None, application_type_id: Optional[int] = None, approved_date: Optional[date] = None, cash_with_application_amount: Optional[float] = None, declined_date: Optional[date] = None, delivery_method_id: Optional[int] = None, effective_date: Optional[date] = None, interview_type_id: Optional[int] = None, is_calculated_in_production: Optional[bool] = None, is_delivered: Optional[bool] = None, is_replacement: Optional[bool] = None, issued_date: Optional[date] = None, reference_number: Optional[str] = None, signed_date: Optional[date] = None, signed_jurisdiction_id: Optional[int] = None, status_id: Optional[int] = None, sub_status_id: Optional[int] = None, submission_type_id: Optional[int] = None, submitted_date: Optional[date] = None, termination_date: Optional[date] = None, termination_reason_id: Optional[int] = None, policy: Optional[UpdatePolicyObject] = None, ): self.id = application_id if application_number: self.applicationNumber = application_number if application_type_id: self.applicationTypeId = application_type_id if approved_date: self.approvedDate = approved_date if cash_with_application_amount: self.cashWithApplicationAmount = cash_with_application_amount if declined_date: self.declinedDate = declined_date if delivery_method_id: self.deliveryMethodId = delivery_method_id if effective_date: self.effectiveDate = effective_date if interview_type_id: self.interviewTypeId = interview_type_id if is_calculated_in_production: self.isCalculatedInProduction = is_calculated_in_production if is_delivered: self.isDelivered = is_delivered if is_replacement: self.isReplacement = is_replacement if issued_date: self.issuedDate = issued_date if reference_number: self.referenceNumber = reference_number if signed_date: self.signedDate = signed_date if signed_jurisdiction_id: self.signedJurisdictionId = signed_jurisdiction_id if status_id: self.statusId = status_id if sub_status_id: self.subStatusId = sub_status_id if submission_type_id: self.submissionTypeId = submission_type_id if submitted_date: self.submittedDate = submitted_date if termination_date: self.terminationDate = termination_date if termination_reason_id: self.terminationReasonId = termination_reason_id if policy: self.policy = policy
[docs] class TerminateApplicationObject:
[docs] def __init__( self, termination_date: Optional[date] = None, termination_reason_id: Optional[int] = None, application_id: int = 0, coverages: Optional[List[TerminateCoverageObject]] = None, signed_date: Optional[date] = None, declined_date: Optional[date] = None ): self.id = application_id self.terminationDate = termination_date self.terminationReasonId = termination_reason_id self.declinedDate = declined_date if signed_date: self.signedDate = signed_date self.policy = { "id": application_id, "terminationDate": termination_date, "terminationReasonId": termination_reason_id, "coveragesToUpdate": coverages }
# ==================================================== CONTACT =========================================================
[docs] class AddressObject:
[docs] def __init__( self, address_type_id: int, additional_info: Optional[str] = None, city: Optional[str] = None, country_id: Optional[int] = None, # TODO mapping code with Party.Contact.Address.Country main: Optional[bool] = None, postal_code: Optional[str] = None, jurisdiction_id: Optional[int] = None, # code.LookUp.jurisdiction street: Optional[str] = None, ): self.additionalInfo = additional_info self.addressTypeId = address_type_id self.city = city self.countryId = country_id self.main = main self.postalCode = postal_code self.stateId = jurisdiction_id self.street = street
[docs] class EmailObject:
[docs] def __init__( self, email_type_id: int, email_address: Optional[str] = None, main: Optional[bool] = None ): self.emailAddress = email_address self.emailTypeId = email_type_id self.main = main
[docs] class PhoneObject:
[docs] def __init__( self, phone_type_id: int, extension: Optional[str] = None, main: Optional[bool] = None, phone_value: Optional[str] = None ): self.extension = extension self.main = main self.phoneTypeId = phone_type_id self.phoneValue = phone_value
[docs] class ContactObject:
[docs] def __init__( self, addresses: Optional[List[AddressObject]] = None, emails: Optional[List[EmailObject]] = None, phones: Optional[List[PhoneObject]] = None, preferred_communication_method_id: Optional[int] = None # code.LookUp.preferred_communication ): self.addresses = addresses self.emails = emails self.phones = phones self.preferredCommunicationMethodId = preferred_communication_method_id
[docs] class TranslationObject:
[docs] def __init__( self, translation_id: int = 0, # TODO mapping code translation: str = "" ): self.id = translation_id self.translation = translation
[docs] class DisplayNameObject:
[docs] def __init__( self, translations: Optional[List[TranslationObject]] = None, default: str = "" ): self.default = default self.translations = translations
[docs] class IndividualObject:
[docs] def __init__( self, display_name: DisplayNameObject, birth_date: Optional[date] = None, death_date: Optional[date] = None, first_name: Optional[str] = None, gender_id: Optional[int] = None, # code.LookUp.gender last_name: Optional[str] = None, marital_status_id: Optional[int] = None, # TODO mapping code middle_name: Optional[str] = None, occupation: Optional[str] = None, occupation_title: Optional[str] = None, orig_name: Optional[str] = None, suffix: Optional[str] = None, title: Optional[str] = None, preferred_language_id: Optional[int] = None # code.LookUp.preferred_language ): self.birthDate = birth_date self.deathDate = death_date self.displayName = display_name self.firstName = first_name self.genderId = gender_id self.lastName = last_name self.maritalStatusId = marital_status_id self.middleName = middle_name self.occupation = occupation self.occupationTitle = occupation_title self.origName = orig_name self.preferredLanguageId = preferred_language_id self.suffix = suffix self.title = title
[docs] class OrganizationObject:
[docs] def __init__( self, display_name: DisplayNameObject, dissolved_date: Optional[date] = None, established_date: Optional[date] = None, name: Optional[DisplayNameObject] = None, website: Optional[str] = None, preferred_language_id: int = 0, # code.LookUp.preferred_language ): self.displayName = display_name self.dissolvedDate = dissolved_date self.establishedDate = established_date self.name = name self.preferredLanguageId = preferred_language_id self.website = website
[docs] class EmailParamsInput: """Model for updating email"""
[docs] def __init__( self, operation: str, # "CREATE", "UPDATE", "DELETE" id: Optional[int] = None, email_address: Optional[str] = None, email_type_id: Optional[int] = None, main: Optional[bool] = None ): self.operation = operation if id is not None: self.id = id if email_address is not None: self.emailAddress = email_address if email_type_id is not None: self.emailTypeId = email_type_id if main is not None: self.main = main
[docs] class AddressParamsInput: """Model for updating address"""
[docs] def __init__( self, operation: str, # "CREATE", "UPDATE", "DELETE" id: Optional[int] = None, address_type_id: Optional[int] = None, street: Optional[str] = None, city: Optional[str] = None, state_id: Optional[int] = None, postal_code: Optional[str] = None, country_id: Optional[int] = None, additional_info: Optional[str] = None, main: Optional[bool] = None ): self.operation = operation if id is not None: self.id = id if address_type_id is not None: self.addressTypeId = address_type_id if street is not None: self.street = street if city is not None: self.city = city if state_id is not None: self.stateId = state_id if postal_code is not None: self.postalCode = postal_code if country_id is not None: self.countryId = country_id if additional_info is not None: self.additionalInfo = additional_info if main is not None: self.main = main
[docs] class PhoneParamsInput: """Model for updating phone"""
[docs] def __init__( self, operation: str, # "CREATE", "UPDATE", "DELETE" id: Optional[int] = None, phone_value: Optional[str] = None, phone_type_id: Optional[int] = None, extension: Optional[str] = None, main: Optional[bool] = None ): self.operation = operation if id is not None: self.id = id if phone_value is not None: self.phoneValue = phone_value if phone_type_id is not None: self.phoneTypeId = phone_type_id if extension is not None: self.extension = extension if main is not None: self.main = main
[docs] class ContactParamsInput: """Model for updating contact information"""
[docs] def __init__( self, addresses: Optional[List[AddressParamsInput]] = None, emails: Optional[List[EmailParamsInput]] = None, phones: Optional[List[PhoneParamsInput]] = None, preferred_communication_method_id: Optional[int] = None ): if addresses is not None: self.addresses = addresses if emails is not None: self.emails = emails if phones is not None: self.phones = phones if preferred_communication_method_id is not None: self.preferredCommunicationMethodId = preferred_communication_method_id
# ===================================================== PARTY =========================================================
[docs] class PartyObject:
[docs] def __init__( self, party_type_id: int, contact: Optional[ContactObject] = None, individual: Optional[IndividualObject] = None, organization: Optional[OrganizationObject] = None ): self.partyTypeId = party_type_id if contact: self.contact = contact if individual: self.individual = individual if organization: self.organization = organization
[docs] class PartyUpdateObject: """Model for party update mutation"""
[docs] def __init__( self, id: int, contact: Optional[ContactParamsInput] = None, party_type_id: Optional[int] = None, external_identifier: Optional[str] = None, reference_number: Optional[str] = None ): self.id = id if contact is not None: self.contact = contact if party_type_id is not None: self.partyTypeId = party_type_id if external_identifier is not None: self.externalIdentifier = external_identifier if reference_number is not None: self.referenceNumber = reference_number
# ===================================================== ROLE ===========================================================
[docs] class BeneficiaryRoleObject:
[docs] def __init__( self, beneficiary_type_id: Optional[int] = None, relationship_to_insured_id: Optional[int] = None, ): self.beneficiaryTypeId = beneficiary_type_id self.relationshipToInsuredId = relationship_to_insured_id
[docs] class TrusteeRoleObject:
[docs] def __init__( self, trust_type_id: Optional[int] = None, ): self.trustTypeId = trust_type_id
[docs] class RoleObject:
[docs] def __init__( self, party_role_id: int, agent_contract_id: Optional[int] = None, effective_date: Optional[date] = None, shared_percent: Optional[float] = None, termination_date: Optional[date] = None, termination_reason_id: Optional[int] = None, is_irrevocable: Optional[bool] = None, entity_id: Optional[int] = None, entity_type_id: Optional[str] = None, link_UUID: Optional[str] = None, beneficiary_role: Optional[BeneficiaryRoleObject] = None, trustee_role: Optional[TrusteeRoleObject] = None, ): self.partyRoleId = party_role_id if agent_contract_id: self.agentContractId = agent_contract_id if entity_id: self.entityId = entity_id if entity_type_id: self.entityTypeId = entity_type_id if link_UUID: self.linkUUID = link_UUID if effective_date: self.effectiveDate = effective_date if shared_percent: self.sharedPercent = shared_percent if termination_date: self.terminationDate = termination_date if termination_reason_id: self.terminationReasonId = termination_reason_id if is_irrevocable: self.isIrrevocable = is_irrevocable if beneficiary_role: self.beneficiary = beneficiary_role if trustee_role: self.trustee = trustee_role
[docs] class CreateParticipantObject:
[docs] def __init__( self, party_id: Optional[int] = None, party: Optional[PartyObject] = None, roles: Optional[List[RoleObject]] = None ): self.partyId = party_id if party is not None: self.party = party self.roles = roles
[docs] class ParticipantRoleEntityUpdateParamsInput:
[docs] def __init__( self, id: int, agentContractId:Optional[int] = None, partyRoleId: Optional[int] = None, sharedPercent: Optional[float] = None, entityId: Optional[int] = None, entityTypeId: Optional[str] = None, ): self.id = id if partyRoleId is not None: self.partyRoleId = partyRoleId if agentContractId is not None: self.agentContractId = agentContractId if sharedPercent is not None: self.sharedPercent = sharedPercent if entityId is not None: self.entityId = entityId if entityTypeId is not None: self.entityTypeId = entityTypeId
[docs] class UpdateParticipantObject:
[docs] def __init__( self, participant_id: Optional[int] = None, roles_to_add: Optional[List[RoleObject]] = [], roles_to_update: Optional[List[ParticipantRoleEntityUpdateParamsInput]] = [], roles_to_delete: Optional[List[int]] = [] ): self.id = participant_id self.rolesToAdd = roles_to_add self.rolesToUpdate = roles_to_update self.rolesToDelete = roles_to_delete
[docs] class ParticipantsEntityLinkUpdateParamsInputObject:
[docs] def __init__( self, participants_to_link: Optional[List[CreateParticipantObject]] = [], participants_to_unlink: Optional[List[int]] = [], participants_to_update: Optional[List[UpdateParticipantObject]] = [], ): if participants_to_link is not None: self.participantsToLink = participants_to_link if participants_to_unlink is not None: self.participantsToUnLink = participants_to_unlink if participants_to_update is not None: self.participantsToUpdate = participants_to_update
# ==================================================== FINANCE =========================================================
[docs] class CreateFinanceTransactionObject:
[docs] def __init__( self, amount: float, amount_type_id: int, basis_amount: float, currency_id: int, shared_percent: float, rate: float, transaction_date: date, transaction_type_guid: UUID, #str, status_id: int, description: Optional[str] = None, party_id: Optional[int] = None, statement_id: Optional[int] = None, reference_entity_id: Optional[int] = None, reference_entity_type_id: Optional[int] = None, ): self.amount = amount self.amountTypeId = amount_type_id self.basisAmount = basis_amount self.currencyId = currency_id self.description = description self.partyId = party_id self.sharedPercent = shared_percent self.rate = rate self.statementId = statement_id self.transactionDate = transaction_date self.transactionTypeGuid = transaction_type_guid self.statusId = status_id
# self.referenceEntityId = reference_entity_id # self.referenceEntityTypeId = reference_entity_type_id
[docs] class CreateFinanceStatementObject:
[docs] def __init__( self, statement_type_guid: str, issuer_party_id: int, recipient_party_id: int, period_start_date: date, period_end_date: date, total_amount: float, currency_id: int, status_id: int, transaction_ids: list[int] ): self.statementTypeGuid = statement_type_guid self.issuerPartyId = issuer_party_id self.recipientPartyId = recipient_party_id self.periodStartDate = period_start_date self.periodEndDate = period_end_date self.totalAmount = total_amount self.currencyId = currency_id self.statusId = status_id self.transactionIds = transaction_ids
# ==================================================== PAYMENT ACCOUNT =========================================================
[docs] class GatewayAccountObject:
[docs] def __init__( self, name: str, value: str, ): self.name = name self.value = value
[docs] class PayableEntityObject:
[docs] def __init__( self, entity_id: int, entity_type_id: str ): self.entityId = entity_id self.entityTypeId = entity_type_id
[docs] class PayableChargeObject:
[docs] def __init__( self, amount: float, entity_id: int, entity_type_id: str, amount_type_guid: str, description: str, ): self.entityTypeId = entity_type_id self.entityId = entity_id self.description = description self.amount = amount self.amountTypeGuid = amount_type_guid
[docs] class PayableEntityRequestObject:
[docs] def __init__( self, entity_id: int, entity_type_id: str, description: str, charges: List[PayableChargeObject] ): self.entityId = entity_id self.entityTypeId = entity_type_id self.description = description self.charges = charges
[docs] class CreatePaymentAccountObject:
[docs] class StripeCreditCard: # This object is to create a new Stripe Credit Card Account, along a new entity mutation
[docs] def __init__( self, account_id: Optional[int] = None, # to link to an existing account instead default_currency_id: Optional[int] = None, payment_gateway_id: Optional[int] = None, customer_id: str = None, payment_method_id: str = None ): from ace.centralize.codes import Billing gateway_account_params = [ GatewayAccountObject( name=Billing.Gateway.AccountParameters.CUSTOMER_ID.NAME, value=customer_id ), GatewayAccountObject( name=Billing.Gateway.AccountParameters.PAYMENT_METHOD_ID.NAME, value=payment_method_id ) ] if account_id: self.id = account_id else: if payment_gateway_id: self.paymentGatewayId = payment_gateway_id if default_currency_id: self.defaultCurrencyId = default_currency_id self.gatewayAccountParams = gateway_account_params
[docs] class StripeEFT: # This object is to create a new Stripe Credit Card Account, along a new entity mutation
[docs] def __init__( self, account_id: Optional[int] = None, # to link to an existing account instead default_currency_id: Optional[int] = None, payment_gateway_id: Optional[int] = None, customer_id: str = None, payment_method_id: str = None, mandate_id: str = None ): from ace.centralize.codes import Billing gateway_account_params = [ GatewayAccountObject( name=Billing.Gateway.AccountParameters.CUSTOMER_ID.NAME, value=customer_id ), GatewayAccountObject( name=Billing.Gateway.AccountParameters.PAYMENT_METHOD_ID.NAME, value=payment_method_id ), GatewayAccountObject( name=Billing.Gateway.AccountParameters.MANDATE_ID.NAME, value=mandate_id ) ] if account_id: self.id = account_id else: if payment_gateway_id: self.paymentGatewayId = payment_gateway_id if default_currency_id: self.defaultCurrencyId = default_currency_id self.gatewayAccountParams = gateway_account_params
[docs] class CreateAccountObject: # This object is to create a new Payment Account on its own, whether to link it to existing entities or not
[docs] def __init__( self, gateway_account_params: List[GatewayAccountObject], default_currency_id: Optional[int] = None, party_id: Optional[int] = None, payable_entities: List[PayableEntityObject] = None, payment_gateway_id: Optional[int] = None, ): self.defaultCurrencyId = default_currency_id self.gatewayAccountParams = gateway_account_params self.partyId = party_id self.payableEntities = payable_entities self.paymentGatewayId = payment_gateway_id
[docs] class CreatePaymentRequestObject:
[docs] def __init__( self, entities: List[PayableEntityRequestObject], request_id: str, account_id: Optional[int] = None, currency_id: Optional[int] = None, description: Optional[str] = None, payment_request_datetime_utc: Optional[datetime] = None ): self.accountId = account_id self.currencyId = currency_id self.description = description self.entities = entities self.requestId = request_id self.paymentRequestDateTimeUTC = payment_request_datetime_utc
# ===================================================== NOTE ===========================================================
[docs] class CreateNoteObject: # This object is to create a new note on its own, whether to link it to existing entities or not
[docs] def __init__( self, description: str, entity_id: int, entity_type_id: str, note_type_id: int, priority_id: int ): self.description = description self.entityId = entity_id self.entityTypeId = entity_type_id self.noteTypeId = note_type_id self.priorityId = priority_id
[docs] class CreateEntityNoteObject: # This object is to create a new note, along a new entity mutation
[docs] def __init__( self, description: str, note_type_id: Optional[int] = None, priority_id: Optional[int] = None ): self.description = description self.noteTypeId = note_type_id self.priorityId = priority_id
[docs] class UpdateEntityNoteObject: # This object is to update a note, along an entity mutation
[docs] def __init__( self, note_id: int, description: Optional[str] = None, note_type_id: Optional[int] = None, priority_id: Optional[int] = None ): self.id = note_id self.description = description self.noteTypeId = note_type_id self.priorityId = priority_id
# ===================================================== METADATA =======================================================
[docs] class MetadataKeyValueObject:
[docs] def __init__( self, key: str, value: str ): self.key = key self.value = value
[docs] class CreateMetadataObject:
[docs] def __init__( self, metadata_data: List[MetadataKeyValueObject], entity_type: Optional[str] = None, metadata_guid: Optional[str] = None ): self.entityType = entity_type self.guid = metadata_guid self.data = metadata_data
# ===================================================== AGENT =======================================================
[docs] class CreateAgentContractObject:
[docs] def __init__( self, carrier_id: int, agent_contract_number: str, effective_date: date, contract_category_guid: str ): self.carrierId = carrier_id self.agentContractNumber = agent_contract_number self.effectiveDate = effective_date self.contractCategoryGuid = contract_category_guid
[docs] class CreateAgentObject:
[docs] def __init__( self, agent_number: str, activation_date: Optional[date] = None, contracts: Optional[List[CreateAgentContractObject]] = None ): self.agentNumber = agent_number if activation_date: self.activationDate = activation_date if contracts: self.contracts = contracts
[docs] class UpdateAgentObject:
[docs] def __init__( self, agent_id: int, agent_number: Optional[str] = None, activation_date: Optional[date] = None, contracts_to_add: Optional[List[CreateAgentContractObject]] = None, termination_date: Optional[date] = None, ): self.id = agent_id if agent_number: self.agentNumber = agent_number if termination_date: self.terminationDate = termination_date if activation_date: self.activationDate = activation_date if contracts_to_add: self.contractsToAdd = contracts_to_add
# ===================================================== REQUIREMENT =======================================================
[docs] class CreateRequirementInfoObject:
[docs] def __init__( self, requirement_id: int, entity_type_id: str, entity_id: int, priority_id: int, status_id: int, sub_status_id: Optional[int] = None, applied_to_party_id: Optional[int] = None, received_date: Optional[date] = None, due_date: Optional[date] = None, requested_date: Optional[date] = None, hold_date: Optional[date] = None, fulfilled_date: Optional[date] = None, completed_date: Optional[date] = None, cancelled_date: Optional[date] = None, internal_reference_number: Optional[str] = None, source_reference_number: Optional[str] = None, ): self.requirementId = requirement_id self.entityTypeId = entity_type_id self.entityId = entity_id self.priorityId = priority_id self.statusId = status_id self.subStatusId = sub_status_id self.internalReferenceNumber = internal_reference_number if applied_to_party_id: self.appliedToPartyId = applied_to_party_id if requested_date: self.requestedDate = requested_date if source_reference_number: self.sourceReferenceNumber = source_reference_number
[docs] class UpdateRequirementInfoObject:
[docs] def __init__( self, requirement_info_id: int, requirement_id: int, entity_type_id: str, entity_id: int, priority_id: int, status_id: int, sub_status_id: Optional[int] = None, status_reason_description: Optional[str] = None, requirement_description : Optional[str] = None, applied_to_party_id: Optional[int] = None, received_date: Optional[date] = None, due_date: Optional[date] = None, requested_date: Optional[date] = None, hold_date: Optional[date] = None, fulfilled_date: Optional[date] = None, completed_date: Optional[date] = None, cancelled_date: Optional[date] = None, internal_reference_number: Optional[str] = None, source_reference_number: Optional[str] = None, ): self.requirementInfoId = requirement_info_id self.requirementId = requirement_id self.entityTypeId = entity_type_id self.entityId = entity_id self.priorityId = priority_id self.statusId = status_id self.subStatusId = sub_status_id if status_reason_description: self.statusReasonDescription = status_reason_description if requirement_description: self.requirementDescription = requirement_description if applied_to_party_id: self.appliedToPartyId = applied_to_party_id if requested_date: self.requestedDate = requested_date if source_reference_number: self.sourceReferenceNumber = source_reference_number