"""
Predefined SelectionSets for Agent and related entities.
Based on the Agent GraphQL schema output types:
GqlAgentDetail, GqlAgentContractDetail, AgreementDetail,
AgentLicenseDetail, LicenseLineOfAuthority, GqlOverrideDetail,
GqlDecisionDetail, GqlDecisionListDetail, GqlAgentTransactionDetail
"""
from ace.core.graphql import SelectionSet
[docs]
class LineOfAuthoritySelections:
"""Reusable selection sets for License Line of Authority fields."""
STANDARD = SelectionSet(
"id",
"lineOfAuthorityId",
"effectiveDate",
"expirationDate",
"originationDate",
"statusId",
"terminationDate",
"terminationReasonId",
)
[docs]
class LicenseSelections:
"""Reusable selection sets for Agent License fields."""
MINIMAL = SelectionSet(
"id",
"licenseNumber",
"jurisdictionId",
"statusId",
)
STANDARD = SelectionSet(
"id",
"licenseNumber",
"jurisdictionId",
"licenseClassTypeId",
"effectiveDate",
"expirationDate",
"nameOnLicense",
"originationDate",
"residentOfJurisdiction",
"statusId",
"terminationDate",
"terminationReasonId",
)
FULL = SelectionSet(
"id",
"agentId",
"licenseNumber",
"jurisdictionId",
"licenseClassTypeId",
"effectiveDate",
"expirationDate",
"nameOnLicense",
"originationDate",
"residentOfJurisdiction",
"statusId",
"terminationDate",
"terminationReasonId",
"creationDateTimeUTC",
"creationUserId",
"lastUpdateDateTimeUTC",
"lastUpdateUserId",
"deletionDateTimeUTC",
"deletionUserId",
nested={
"linesOfAuthority": LineOfAuthoritySelections.STANDARD
}
)
[docs]
class DecisionOutputSelections:
"""Reusable selection sets for Decision Output fields."""
STANDARD = SelectionSet(
"amountTypeId",
"rateValue",
)
[docs]
class DecisionSelections:
"""Reusable selection sets for Decision fields."""
MINIMAL = SelectionSet(
"id",
"decisionGuid",
"decisionTypeId",
)
STANDARD = SelectionSet(
"id",
"decisionGuid",
"decisionTypeId",
"effectiveDate",
"terminationDate",
"priority",
"amountTypeList",
"lineOfBusinessList",
"productTypeList",
nested={
"decisionOutput": DecisionOutputSelections.STANDARD
}
)
[docs]
class DecisionListSelections:
"""Reusable selection sets for Decision List fields."""
STANDARD = SelectionSet(
"decisionTypeId",
nested={
"decisions": DecisionSelections.STANDARD
}
)
[docs]
class OverrideSelections:
"""Reusable selection sets for Override fields."""
STANDARD = SelectionSet(
"id",
"agreementId",
"carrierId",
"lineOfBusinessId",
"payablePartyId",
"priorityOrder",
"productId",
"productTypeId",
"rate",
"sourceId",
)
[docs]
class AgreementSelections:
"""Reusable selection sets for Agreement fields."""
MINIMAL = SelectionSet(
"id",
"agreementRoleId",
"statusId",
)
STANDARD = SelectionSet(
"id",
"agreementRoleId",
"commissionPayableAgentId",
"commissionScheduleId",
"contractId",
"contractLevelId",
"distributionChannelId",
"effectiveDate",
"parentAgentContractId",
"statusId",
"terminationDate",
"terminationReasonId",
)
FULL = SelectionSet(
"id",
"agreementRoleId",
"commissionPayableAgentId",
"commissionScheduleId",
"contractId",
"contractLevelId",
"distributionChannelId",
"effectiveDate",
"parentAgentContractId",
"statusId",
"terminationDate",
"terminationReasonId",
"creationDateTimeUTC",
"creationUserId",
"lastUpdateDateTimeUTC",
"lastUpdateUserId",
"deletionDateTimeUTC",
"deletionUserId",
nested={
"decisions": DecisionListSelections.STANDARD,
"overrides": OverrideSelections.STANDARD,
}
)
[docs]
class AgentContractSelections:
"""Reusable selection sets for Agent Contract fields."""
MINIMAL = SelectionSet(
"id",
)
STANDARD = SelectionSet(
"id",
"agentContractNumber",
"agentId",
"carrierId",
"contractCategoryGuid",
"contractGuid",
"effectiveDate",
"statusId",
"terminationDate",
"terminationReasonId",
)
FULL = SelectionSet(
"id",
"agentContractNumber",
"agentId",
"carrierId",
"contractCategoryGuid",
"contractGuid",
"effectiveDate",
"statusId",
"terminationDate",
"terminationReasonId",
"creationDateTimeUtc",
"creationUserId",
"lastUpdateDateTime",
"lastUpdateUserId",
"deletionDateTime",
"deletionUserId",
nested={
"agreements": AgreementSelections.STANDARD,
}
)
[docs]
class AgentTransactionSelections:
"""Reusable selection sets for Agent Transaction Link fields."""
STANDARD = SelectionSet(
"transactionDetailId",
"accreditedAgentContractId",
"baseAgentContractId",
)
FULL = SelectionSet(
"transactionDetailId",
"accreditedAgentContractId",
"baseAgentContractId",
nested={
"accreditedAgentContract": AgentContractSelections.STANDARD,
"baseAgentContract": AgentContractSelections.STANDARD,
}
)
[docs]
class AgentSelections:
"""Reusable selection sets for Agent fields."""
MINIMAL = SelectionSet(
"agentNumber",
nested={
"contracts": AgentContractSelections.MINIMAL,
}
)
STANDARD = SelectionSet(
"id",
"agentNumber",
"activationDate",
"agentCategoryId",
"effectiveDate",
"hiringDate",
"statusId",
"subStatusId",
"terminationDate",
"terminationReasonId",
"vestingDate",
nested={
"contracts": AgentContractSelections.STANDARD,
}
)
FULL = SelectionSet(
"id",
"agentNumber",
"activationDate",
"agentCategoryId",
"decisionsGuids",
"effectiveDate",
"hiringDate",
"productIds",
"statusChangeDate",
"statusId",
"subStatusChangeDate",
"subStatusId",
"terminationDate",
"terminationReasonId",
"vestingDate",
"creationDateTimeUTC",
"creationUserId",
"lastUpdateDateTimeUTC",
"lastUpdateUserId",
"deletionDateTimeUTC",
"deletionUserId",
nested={
"contracts": AgentContractSelections.FULL,
"licenses": LicenseSelections.FULL,
}
)