179 lines
5.7 KiB
Python
179 lines
5.7 KiB
Python
from pydantic import BaseModel
|
|
from typing import Optional, List
|
|
from datetime import datetime
|
|
from uuid import UUID
|
|
from decimal import Decimal
|
|
from .base_responses import BaseResponse, CrudCollection
|
|
|
|
|
|
class BuildDecisionBookResponse(BaseResponse):
|
|
"""Response model for building decision book"""
|
|
decision_book_pdf_path: Optional[str] = ""
|
|
resp_company_fix_wage: float = 0
|
|
contact_agreement_path: Optional[str] = ""
|
|
contact_agreement_date: Optional[datetime]
|
|
meeting_date: Optional[str]
|
|
decision_type: Optional[str]
|
|
|
|
|
|
class BuildDecisionBookCollection(CrudCollection[BuildDecisionBookResponse]):
|
|
"""Collection of building decision books"""
|
|
pass
|
|
|
|
|
|
class BuildDecisionBookInvitationsResponse(BaseResponse):
|
|
"""Response model for building decision book invitations"""
|
|
build_id: int
|
|
build_uu_id: Optional[str]
|
|
decision_book_id: int
|
|
decision_book_uu_id: Optional[str]
|
|
invitation_type: str
|
|
invitation_attempt: int = 1
|
|
living_part_count: int = 1
|
|
living_part_percentage: Decimal = Decimal("0.51")
|
|
message: Optional[str]
|
|
planned_date: datetime
|
|
planned_date_expires: datetime
|
|
|
|
|
|
class BuildDecisionBookInvitationsCollection(CrudCollection[BuildDecisionBookInvitationsResponse]):
|
|
"""Collection of building decision book invitations"""
|
|
pass
|
|
|
|
|
|
class BuildDecisionBookPersonResponse(BaseResponse):
|
|
"""Response model for building decision book person"""
|
|
dues_percent_discount: int = 0
|
|
dues_fix_discount: Decimal = Decimal("0")
|
|
dues_discount_approval_date: datetime
|
|
send_date: datetime
|
|
is_attending: bool = False
|
|
confirmed_date: Optional[datetime]
|
|
token: str = ""
|
|
vicarious_person_id: Optional[int]
|
|
vicarious_person_uu_id: Optional[str]
|
|
invite_id: int
|
|
invite_uu_id: str
|
|
build_decision_book_id: int
|
|
build_decision_book_uu_id: str
|
|
build_living_space_id: int
|
|
build_living_space_uu_id: Optional[str]
|
|
person_id: int
|
|
|
|
|
|
class BuildDecisionBookPersonCollection(CrudCollection[BuildDecisionBookPersonResponse]):
|
|
"""Collection of building decision book persons"""
|
|
pass
|
|
|
|
|
|
class BuildDecisionBookPersonOccupantsResponse(BaseResponse):
|
|
"""Response model for building decision book person occupants"""
|
|
build_decision_book_person_id: int
|
|
build_decision_book_person_uu_id: Optional[str]
|
|
invite_id: Optional[int]
|
|
invite_uu_id: Optional[str]
|
|
occupant_type_id: int
|
|
occupant_type_uu_id: Optional[str]
|
|
|
|
|
|
class BuildDecisionBookPersonOccupantsCollection(CrudCollection[BuildDecisionBookPersonOccupantsResponse]):
|
|
"""Collection of building decision book person occupants"""
|
|
pass
|
|
|
|
|
|
class BuildDecisionBookItemsResponse(BaseResponse):
|
|
"""Response model for building decision book items"""
|
|
item_order: int
|
|
item_comment: str
|
|
item_objection: Optional[str]
|
|
info_is_completed: bool = False
|
|
is_payment_created: bool = False
|
|
info_type_id: Optional[int]
|
|
info_type_uu_id: Optional[str]
|
|
build_decision_book_id: int
|
|
build_decision_book_uu_id: Optional[str]
|
|
item_short_comment: Optional[str]
|
|
|
|
|
|
class BuildDecisionBookItemsCollection(CrudCollection[BuildDecisionBookItemsResponse]):
|
|
"""Collection of building decision book items"""
|
|
pass
|
|
|
|
|
|
class BuildDecisionBookItemsUnapprovedResponse(BaseResponse):
|
|
"""Response model for building decision book items unapproved"""
|
|
item_objection: str
|
|
item_order: int
|
|
decision_book_item_id: int
|
|
decision_book_item_uu_id: Optional[str]
|
|
person_id: int
|
|
person_uu_id: Optional[str]
|
|
build_decision_book_item: int
|
|
build_decision_book_item_uu_id: Optional[str]
|
|
|
|
|
|
class BuildDecisionBookItemsUnapprovedCollection(CrudCollection[BuildDecisionBookItemsUnapprovedResponse]):
|
|
"""Collection of building decision book items unapproved"""
|
|
pass
|
|
|
|
|
|
class BuildDecisionBookPaymentsResponse(BaseResponse):
|
|
"""Response model for building decision book payments"""
|
|
payment_plan_time_periods: str
|
|
process_date: datetime
|
|
payment_amount: Decimal
|
|
currency: str = "TRY"
|
|
payment_types_id: Optional[int]
|
|
payment_types_uu_id: Optional[str]
|
|
period_time: str
|
|
process_date_y: int
|
|
process_date_m: int
|
|
build_decision_book_item_id: int
|
|
build_decision_book_item_uu_id: str
|
|
build_parts_id: int
|
|
build_parts_uu_id: str
|
|
decision_book_project_id: Optional[int]
|
|
decision_book_project_uu_id: Optional[str]
|
|
account_records_id: Optional[int]
|
|
account_records_uu_id: Optional[str]
|
|
|
|
|
|
class BuildDecisionBookPaymentsCollection(CrudCollection[BuildDecisionBookPaymentsResponse]):
|
|
"""Collection of building decision book payments"""
|
|
pass
|
|
|
|
|
|
class BuildDecisionBookLegalResponse(BaseResponse):
|
|
"""Response model for building decision book legal"""
|
|
period_start_date: datetime
|
|
lawsuits_decision_number: str
|
|
lawsuits_decision_date: datetime
|
|
period_stop_date: datetime
|
|
decision_book_pdf_path: Optional[str] = ""
|
|
resp_company_total_wage: Optional[Decimal] = Decimal("0")
|
|
contact_agreement_path: Optional[str] = ""
|
|
contact_agreement_date: Optional[datetime]
|
|
meeting_date: str
|
|
lawsuits_type: str = "C"
|
|
lawsuits_name: str
|
|
lawsuits_note: str
|
|
lawyer_cost: Decimal
|
|
mediator_lawyer_cost: Decimal
|
|
other_cost: Decimal
|
|
legal_cost: Decimal
|
|
approved_cost: Decimal
|
|
total_price: Decimal
|
|
build_db_item_id: int
|
|
build_db_item_uu_id: Optional[str]
|
|
resp_attorney_id: int
|
|
resp_attorney_uu_id: Optional[str]
|
|
resp_attorney_company_id: int
|
|
resp_attorney_company_uu_id: Optional[str]
|
|
mediator_lawyer_person_id: int
|
|
mediator_lawyer_person_uu_id: Optional[str]
|
|
|
|
|
|
class BuildDecisionBookLegalCollection(CrudCollection[BuildDecisionBookLegalResponse]):
|
|
"""Collection of building decision book legal records"""
|
|
pass
|