Source code for ace.centralize.models.lead

"""
    Lead models for Centralize

    Models for leads and opportunities.

    Based on the Lead GraphQL schema (CreateLeadInput, UpdateLeadInput,
    CreateOpportunityInput, UpdateOpportunityInput)
"""
from datetime import date
from typing import List, Optional

from ace.centralize.models.base import ModelBase


# ================================================== OPPORTUNITY =======================================================

[docs] class CreateOpportunityInput(ModelBase): """Maps to CreateOpportunityInput in GraphQL schema."""
[docs] def __init__( self, priority_id: int, closed_date: Optional[date] = None, description: Optional[str] = None, estimated_value: Optional[float] = None, expected_closed_date: Optional[date] = None, identified_by: Optional[str] = None, identified_date: Optional[date] = None, lead_id: Optional[int] = None, on_hold_date: Optional[date] = None, opportunity_number: Optional[str] = None, opportunity_type_id: Optional[int] = None, reference_number: Optional[str] = None, risk_level_id: Optional[int] = None, start_date: Optional[date] = None, status_change_date: Optional[date] = None, status_id: Optional[int] = None, sub_status_change_date: Optional[date] = None, sub_status_id: Optional[int] = None, win_date: Optional[date] = None, ): self.priorityId = priority_id if closed_date is not None: self.closedDate = closed_date if description is not None: self.description = description if estimated_value is not None: self.estimatedValue = estimated_value if expected_closed_date is not None: self.expectedClosedDate = expected_closed_date if identified_by is not None: self.identifiedBy = identified_by if identified_date is not None: self.identifiedDate = identified_date if lead_id is not None: self.leadId = lead_id if on_hold_date is not None: self.onHoldDate = on_hold_date if opportunity_number is not None: self.opportunityNumber = opportunity_number if opportunity_type_id is not None: self.opportunityTypeId = opportunity_type_id if reference_number is not None: self.referenceNumber = reference_number if risk_level_id is not None: self.riskLevelId = risk_level_id if start_date is not None: self.startDate = start_date if status_change_date is not None: self.statusChangeDate = status_change_date if status_id is not None: self.statusId = status_id if sub_status_change_date is not None: self.subStatusChangeDate = sub_status_change_date if sub_status_id is not None: self.subStatusId = sub_status_id if win_date is not None: self.winDate = win_date
[docs] class UpdateOpportunityInput(ModelBase): """Maps to UpdateOpportunityInput in GraphQL schema."""
[docs] def __init__( self, opportunity_id: int, closed_date: Optional[date] = None, description: Optional[str] = None, estimated_value: Optional[float] = None, expected_closed_date: Optional[date] = None, identified_by: Optional[str] = None, identified_date: Optional[date] = None, lead_id: Optional[int] = None, on_hold_date: Optional[date] = None, opportunity_number: Optional[str] = None, opportunity_type_id: Optional[int] = None, priority_id: Optional[int] = None, reference_number: Optional[str] = None, risk_level_id: Optional[int] = None, start_date: Optional[date] = None, status_change_date: Optional[date] = None, status_id: Optional[int] = None, sub_status_change_date: Optional[date] = None, sub_status_id: Optional[int] = None, win_date: Optional[date] = None, ): self.opportunityId = opportunity_id if closed_date is not None: self.closedDate = closed_date if description is not None: self.description = description if estimated_value is not None: self.estimatedValue = estimated_value if expected_closed_date is not None: self.expectedClosedDate = expected_closed_date if identified_by is not None: self.identifiedBy = identified_by if identified_date is not None: self.identifiedDate = identified_date if lead_id is not None: self.leadId = lead_id if on_hold_date is not None: self.onHoldDate = on_hold_date if opportunity_number is not None: self.opportunityNumber = opportunity_number if opportunity_type_id is not None: self.opportunityTypeId = opportunity_type_id if priority_id is not None: self.priorityId = priority_id if reference_number is not None: self.referenceNumber = reference_number if risk_level_id is not None: self.riskLevelId = risk_level_id if start_date is not None: self.startDate = start_date if status_change_date is not None: self.statusChangeDate = status_change_date if status_id is not None: self.statusId = status_id if sub_status_change_date is not None: self.subStatusChangeDate = sub_status_change_date if sub_status_id is not None: self.subStatusId = sub_status_id if win_date is not None: self.winDate = win_date
# ===================================================== LEAD ==========================================================
[docs] class CreateLeadInput(ModelBase): """Maps to CreateLeadInput in GraphQL schema."""
[docs] def __init__( self, is_archived: bool, lead_number: str, name: str, priority_id: int, closed_date: Optional[date] = None, contacted_date: Optional[date] = None, converted_date: Optional[date] = None, estimated_value: Optional[float] = None, lead_type_id: Optional[int] = None, opportunities: Optional[List[CreateOpportunityInput]] = None, qualified_date: Optional[date] = None, reference_number: Optional[str] = None, referral_source_id: Optional[int] = None, status_change_date: Optional[date] = None, status_id: Optional[int] = None, sub_status_change_date: Optional[date] = None, sub_status_id: Optional[int] = None, ): self.isArchived = is_archived self.leadNumber = lead_number self.name = name self.priorityId = priority_id if closed_date is not None: self.closedDate = closed_date if contacted_date is not None: self.contactedDate = contacted_date if converted_date is not None: self.convertedDate = converted_date if estimated_value is not None: self.estimatedValue = estimated_value if lead_type_id is not None: self.leadTypeId = lead_type_id if opportunities is not None: self.opportunities = opportunities if qualified_date is not None: self.qualifiedDate = qualified_date if reference_number is not None: self.referenceNumber = reference_number if referral_source_id is not None: self.referralSourceId = referral_source_id if status_change_date is not None: self.statusChangeDate = status_change_date if status_id is not None: self.statusId = status_id if sub_status_change_date is not None: self.subStatusChangeDate = sub_status_change_date if sub_status_id is not None: self.subStatusId = sub_status_id
# Backward-compatible alias CreateLeadInputObject = CreateLeadInput
[docs] class UpdateLeadInput(ModelBase): """Maps to UpdateLeadInput in GraphQL schema."""
[docs] def __init__( self, lead_id: int, closed_date: Optional[date] = None, contacted_date: Optional[date] = None, converted_date: Optional[date] = None, estimated_value: Optional[float] = None, is_archived: Optional[bool] = None, lead_number: Optional[str] = None, lead_type_id: Optional[int] = None, name: Optional[str] = None, opportunities: Optional[List[UpdateOpportunityInput]] = None, priority_id: Optional[int] = None, qualified_date: Optional[date] = None, reference_number: Optional[str] = None, referral_source_id: Optional[int] = None, status_change_date: Optional[date] = None, status_id: Optional[int] = None, sub_status_change_date: Optional[date] = None, sub_status_id: Optional[int] = None, ): self.leadId = lead_id if closed_date is not None: self.closedDate = closed_date if contacted_date is not None: self.contactedDate = contacted_date if converted_date is not None: self.convertedDate = converted_date if estimated_value is not None: self.estimatedValue = estimated_value if is_archived is not None: self.isArchived = is_archived if lead_number is not None: self.leadNumber = lead_number if lead_type_id is not None: self.leadTypeId = lead_type_id if name is not None: self.name = name if opportunities is not None: self.opportunities = opportunities if priority_id is not None: self.priorityId = priority_id if qualified_date is not None: self.qualifiedDate = qualified_date if reference_number is not None: self.referenceNumber = reference_number if referral_source_id is not None: self.referralSourceId = referral_source_id if status_change_date is not None: self.statusChangeDate = status_change_date if status_id is not None: self.statusId = status_id if sub_status_change_date is not None: self.subStatusChangeDate = sub_status_change_date if sub_status_id is not None: self.subStatusId = sub_status_id
# Backward-compatible alias UpdateLeadInputObject = UpdateLeadInput