284 lines
6.5 KiB
Python
284 lines
6.5 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 BuildAreaListResponse(BaseResponse):
|
|
"""Response model for building area list endpoint"""
|
|
|
|
uu_id: UUID
|
|
build_id: int
|
|
build_uu_id: str
|
|
area_name: str
|
|
area_value: float
|
|
created_at: datetime
|
|
updated_at: Optional[datetime]
|
|
deleted: bool = False
|
|
|
|
|
|
class BuildAreaListCollection(CrudCollection[BuildAreaListResponse]):
|
|
"""Collection of building area list"""
|
|
|
|
pass
|
|
|
|
|
|
class BuildSitesListResponse(BaseResponse):
|
|
"""Response model for building sites list endpoint"""
|
|
|
|
uu_id: UUID
|
|
address_id: int
|
|
site_name: str
|
|
site_value: float
|
|
created_at: datetime
|
|
updated_at: Optional[datetime]
|
|
deleted: bool = False
|
|
|
|
|
|
class BuildSitesListCollection(CrudCollection[BuildSitesListResponse]):
|
|
"""Collection of building sites list"""
|
|
|
|
pass
|
|
|
|
|
|
class BuildTypesListResponse(BaseResponse):
|
|
"""Response model for building types list endpoint"""
|
|
|
|
uu_id: UUID
|
|
type_name: str
|
|
type_value: str
|
|
created_at: datetime
|
|
updated_at: Optional[datetime]
|
|
deleted: bool = False
|
|
|
|
|
|
class BuildTypesListCollection(CrudCollection[BuildTypesListResponse]):
|
|
"""Collection of building types list"""
|
|
|
|
pass
|
|
|
|
|
|
class BuildTypesResponse(BaseResponse):
|
|
"""Response model for building types"""
|
|
|
|
function_code: str
|
|
type_code: str
|
|
lang: str = "TR"
|
|
|
|
|
|
class BuildTypesCollection(CrudCollection[BuildTypesResponse]):
|
|
"""Collection of building types"""
|
|
|
|
pass
|
|
|
|
|
|
class Part2EmployeeResponse(BaseResponse):
|
|
"""Response model for part to employee mapping"""
|
|
|
|
build_id: int
|
|
part_id: int
|
|
employee_id: int
|
|
|
|
|
|
class Part2EmployeeCollection(CrudCollection[Part2EmployeeResponse]):
|
|
"""Collection of part to employee mappings"""
|
|
|
|
pass
|
|
|
|
|
|
class RelationshipEmployee2BuildResponse(BaseResponse):
|
|
"""Response model for employee to build relationship"""
|
|
|
|
company_id: int
|
|
employee_id: int
|
|
member_id: int
|
|
relationship_type: Optional[str] = "Employee"
|
|
show_only: bool = False
|
|
|
|
|
|
class RelationshipEmployee2BuildCollection(
|
|
CrudCollection[RelationshipEmployee2BuildResponse]
|
|
):
|
|
"""Collection of employee to build relationships"""
|
|
|
|
pass
|
|
|
|
|
|
class BuildResponse(BaseResponse):
|
|
"""Response model for buildings"""
|
|
|
|
gov_address_code: str = ""
|
|
build_name: str
|
|
build_no: str
|
|
max_floor: int = 1
|
|
underground_floor: int = 0
|
|
build_date: datetime
|
|
decision_period_date: datetime
|
|
tax_no: str = ""
|
|
lift_count: int = 0
|
|
heating_system: bool = True
|
|
cooling_system: bool = False
|
|
hot_water_system: bool = False
|
|
block_service_man_count: int = 0
|
|
security_service_man_count: int = 0
|
|
garage_count: int = 0
|
|
management_room_id: Optional[int]
|
|
site_id: Optional[int]
|
|
site_uu_id: Optional[str]
|
|
address_id: int
|
|
address_uu_id: str
|
|
build_types_id: int
|
|
build_types_uu_id: Optional[str]
|
|
|
|
|
|
class BuildCollection(CrudCollection[BuildResponse]):
|
|
"""Collection of buildings"""
|
|
|
|
pass
|
|
|
|
|
|
class BuildPartsResponse(BaseResponse):
|
|
"""Response model for building parts"""
|
|
|
|
address_gov_code: str
|
|
part_no: int = 0
|
|
part_level: int = 0
|
|
part_code: str
|
|
part_gross_size: int = 0
|
|
part_net_size: int = 0
|
|
default_accessory: str = "0"
|
|
human_livable: bool = True
|
|
due_part_key: str
|
|
build_id: int
|
|
build_uu_id: str
|
|
part_direction_id: Optional[int]
|
|
part_direction_uu_id: Optional[str]
|
|
part_type_id: int
|
|
part_type_uu_id: str
|
|
|
|
|
|
class BuildPartsCollection(CrudCollection[BuildPartsResponse]):
|
|
"""Collection of building parts"""
|
|
|
|
pass
|
|
|
|
|
|
class BuildLivingSpaceResponse(BaseResponse):
|
|
"""Response model for building living space"""
|
|
|
|
fix_value: Decimal = Decimal("0")
|
|
fix_percent: Decimal = Decimal("0")
|
|
agreement_no: str = ""
|
|
marketing_process: bool = False
|
|
marketing_layer: int = 0
|
|
build_parts_id: int
|
|
build_parts_uu_id: str
|
|
person_id: int
|
|
person_uu_id: str
|
|
occupant_type: int
|
|
occupant_type_uu_id: str
|
|
|
|
|
|
class BuildLivingSpaceCollection(CrudCollection[BuildLivingSpaceResponse]):
|
|
"""Collection of building living spaces"""
|
|
|
|
pass
|
|
|
|
|
|
class BuildManagementResponse(BaseResponse):
|
|
"""Response model for building management"""
|
|
|
|
discounted_percentage: Decimal = Decimal("0.00")
|
|
discounted_price: Decimal = Decimal("0.00")
|
|
calculated_price: Decimal = Decimal("0.00")
|
|
occupant_type: int
|
|
occupant_type_uu_id: str
|
|
build_id: int
|
|
build_uu_id: str
|
|
build_parts_id: int
|
|
build_parts_uu_id: str
|
|
|
|
|
|
class BuildManagementCollection(CrudCollection[BuildManagementResponse]):
|
|
"""Collection of building management records"""
|
|
|
|
pass
|
|
|
|
|
|
class BuildAreaResponse(BaseResponse):
|
|
"""Response model for building area"""
|
|
|
|
area_name: str = ""
|
|
area_code: str = ""
|
|
area_type: str = "GREEN"
|
|
area_direction: str = "NN"
|
|
area_gross_size: Decimal = Decimal("0")
|
|
area_net_size: Decimal = Decimal("0")
|
|
width: int = 0
|
|
size: int = 0
|
|
build_id: int
|
|
build_uu_id: str
|
|
part_type_id: Optional[int]
|
|
part_type_uu_id: Optional[str]
|
|
|
|
|
|
class BuildAreaCollection(CrudCollection[BuildAreaResponse]):
|
|
"""Collection of building areas"""
|
|
|
|
pass
|
|
|
|
|
|
class BuildSitesResponse(BaseResponse):
|
|
"""Response model for building sites"""
|
|
|
|
site_name: str
|
|
site_no: str
|
|
address_id: int
|
|
address_uu_id: Optional[str]
|
|
|
|
|
|
class BuildSitesCollection(CrudCollection[BuildSitesResponse]):
|
|
"""Collection of building sites"""
|
|
|
|
pass
|
|
|
|
|
|
class BuildCompaniesProvidingResponse(BaseResponse):
|
|
"""Response model for building companies providing services"""
|
|
|
|
build_id: int
|
|
build_uu_id: Optional[str]
|
|
company_id: int
|
|
company_uu_id: Optional[str]
|
|
provide_id: Optional[int]
|
|
provide_uu_id: Optional[str]
|
|
contract_id: Optional[int]
|
|
|
|
|
|
class BuildCompaniesProvidingCollection(
|
|
CrudCollection[BuildCompaniesProvidingResponse]
|
|
):
|
|
"""Collection of building companies providing services"""
|
|
|
|
pass
|
|
|
|
|
|
class BuildPersonProvidingResponse(BaseResponse):
|
|
"""Response model for building person providing services"""
|
|
|
|
build_id: int
|
|
build_uu_id: Optional[str]
|
|
people_id: int
|
|
people_uu_id: Optional[str]
|
|
provide_id: Optional[int]
|
|
provide_uu_id: Optional[str]
|
|
contract_id: Optional[int]
|
|
|
|
|
|
class BuildPersonProvidingCollection(CrudCollection[BuildPersonProvidingResponse]):
|
|
"""Collection of building person providing services"""
|
|
|
|
pass
|