Source code for ace.centralize.models.requirement
"""
Requirement models for Centralize
Models for requirement info and entity links.
Based on the Requirement GraphQL schema (CreateRequirementInfoInput,
UpdateRequirementInfoInput) and the Lead schema (EntityLinkCreateParamsInput).
"""
from datetime import date
from typing import List, Optional
from ace.centralize.models.base import ModelBase
# ============================================= REQUIREMENT INFO =======================================================
[docs]
class CreateRequirementInfoInput(ModelBase):
"""Maps to CreateRequirementInfoInput in GraphQL schema."""
[docs]
def __init__(
self,
entity_id: int,
entity_type_id: str,
priority_id: int,
requirement_id: int,
status_id: int,
applies_to_party_id: Optional[int] = None,
cancelled_date: Optional[date] = None,
completed_date: Optional[date] = None,
due_date: Optional[date] = None,
fulfilled_date: Optional[date] = None,
fulfiller_party_id: Optional[int] = None,
hold_date: Optional[date] = None,
internal_reference_number: Optional[str] = None,
received_date: Optional[date] = None,
requested_date: Optional[date] = None,
requester_party_id: Optional[int] = None,
requirement_description: Optional[str] = None,
source_party_id: Optional[int] = None,
source_reference_number: Optional[str] = None,
status_change_date: Optional[date] = None,
status_reason_description: Optional[str] = None,
sub_status_change_date: Optional[date] = None,
sub_status_id: Optional[int] = None,
):
self.entityId = entity_id
self.entityTypeId = entity_type_id
self.priorityId = priority_id
self.requirementId = requirement_id
self.statusId = status_id
if applies_to_party_id is not None:
self.appliesToPartyId = applies_to_party_id
if cancelled_date is not None:
self.cancelledDate = cancelled_date
if completed_date is not None:
self.completedDate = completed_date
if due_date is not None:
self.dueDate = due_date
if fulfilled_date is not None:
self.fulfilledDate = fulfilled_date
if fulfiller_party_id is not None:
self.fulfillerPartyId = fulfiller_party_id
if hold_date is not None:
self.holdDate = hold_date
if internal_reference_number is not None:
self.internalReferenceNumber = internal_reference_number
if received_date is not None:
self.receivedDate = received_date
if requested_date is not None:
self.requestedDate = requested_date
if requester_party_id is not None:
self.requesterPartyId = requester_party_id
if requirement_description is not None:
self.requirementDescription = requirement_description
if source_party_id is not None:
self.sourcePartyId = source_party_id
if source_reference_number is not None:
self.sourceReferenceNumber = source_reference_number
if status_change_date is not None:
self.statusChangeDate = status_change_date
if status_reason_description is not None:
self.statusReasonDescription = status_reason_description
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
CreateRequirementInfoObject = CreateRequirementInfoInput
[docs]
class UpdateRequirementInfoInput(ModelBase):
"""Maps to UpdateRequirementInfoInput in GraphQL schema."""
[docs]
def __init__(
self,
requirement_info_id: int,
entity_id: int,
entity_type_id: str,
applies_to_party_id: Optional[int] = None,
cancelled_date: Optional[date] = None,
completed_date: Optional[date] = None,
due_date: Optional[date] = None,
fulfilled_date: Optional[date] = None,
fulfiller_party_id: Optional[int] = None,
hold_date: Optional[date] = None,
internal_reference_number: Optional[str] = None,
priority_id: Optional[int] = None,
received_date: Optional[date] = None,
requested_date: Optional[date] = None,
requester_party_id: Optional[int] = None,
requirement_description: Optional[str] = None,
requirement_id: Optional[int] = None,
source_party_id: Optional[int] = None,
source_reference_number: Optional[str] = None,
status_change_date: Optional[date] = None,
status_id: Optional[int] = None,
status_reason_description: Optional[str] = None,
sub_status_change_date: Optional[date] = None,
sub_status_id: Optional[int] = None,
):
self.requirementInfoId = requirement_info_id
self.entityId = entity_id
self.entityTypeId = entity_type_id
if applies_to_party_id is not None:
self.appliesToPartyId = applies_to_party_id
if cancelled_date is not None:
self.cancelledDate = cancelled_date
if completed_date is not None:
self.completedDate = completed_date
if due_date is not None:
self.dueDate = due_date
if fulfilled_date is not None:
self.fulfilledDate = fulfilled_date
if fulfiller_party_id is not None:
self.fulfillerPartyId = fulfiller_party_id
if hold_date is not None:
self.holdDate = hold_date
if internal_reference_number is not None:
self.internalReferenceNumber = internal_reference_number
if priority_id is not None:
self.priorityId = priority_id
if received_date is not None:
self.receivedDate = received_date
if requested_date is not None:
self.requestedDate = requested_date
if requester_party_id is not None:
self.requesterPartyId = requester_party_id
if requirement_description is not None:
self.requirementDescription = requirement_description
if requirement_id is not None:
self.requirementId = requirement_id
if source_party_id is not None:
self.sourcePartyId = source_party_id
if source_reference_number is not None:
self.sourceReferenceNumber = source_reference_number
if status_change_date is not None:
self.statusChangeDate = status_change_date
if status_id is not None:
self.statusId = status_id
if status_reason_description is not None:
self.statusReasonDescription = status_reason_description
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
UpdateRequirementInfoObject = UpdateRequirementInfoInput