from typing import Optional, List from pydantic import BaseModel class AnnouncementCreate(BaseModel): house_nm: str house_secd: str = "01" house_dtl_secd: Optional[str] = None rent_secd: Optional[str] = None region_code: Optional[str] = None region_name: Optional[str] = None address: Optional[str] = None total_units: Optional[int] = None rcrit_date: Optional[str] = None receipt_start: Optional[str] = None receipt_end: Optional[str] = None spsply_start: Optional[str] = None spsply_end: Optional[str] = None gnrl_rank1_start: Optional[str] = None gnrl_rank1_end: Optional[str] = None winner_date: Optional[str] = None contract_start: Optional[str] = None contract_end: Optional[str] = None homepage_url: Optional[str] = None pblanc_url: Optional[str] = None constructor: Optional[str] = None developer: Optional[str] = None move_in_month: Optional[str] = None is_speculative_area: Optional[str] = None is_price_cap: Optional[str] = None contact: Optional[str] = None class AnnouncementUpdate(BaseModel): house_nm: Optional[str] = None house_secd: Optional[str] = None house_dtl_secd: Optional[str] = None rent_secd: Optional[str] = None region_code: Optional[str] = None region_name: Optional[str] = None address: Optional[str] = None total_units: Optional[int] = None rcrit_date: Optional[str] = None receipt_start: Optional[str] = None receipt_end: Optional[str] = None spsply_start: Optional[str] = None spsply_end: Optional[str] = None gnrl_rank1_start: Optional[str] = None gnrl_rank1_end: Optional[str] = None winner_date: Optional[str] = None contract_start: Optional[str] = None contract_end: Optional[str] = None homepage_url: Optional[str] = None pblanc_url: Optional[str] = None constructor: Optional[str] = None developer: Optional[str] = None move_in_month: Optional[str] = None is_speculative_area: Optional[str] = None is_price_cap: Optional[str] = None contact: Optional[str] = None class ProfileUpdate(BaseModel): name: Optional[str] = None age: Optional[int] = None is_homeless: Optional[bool] = None is_householder: Optional[bool] = None subscription_months: Optional[int] = None subscription_amount: Optional[int] = None family_members: Optional[int] = None has_dependents: Optional[bool] = None children_count: Optional[int] = None is_newlywed: Optional[bool] = None marriage_months: Optional[int] = None has_newborn: Optional[bool] = None is_first_home: Optional[bool] = None income_level: Optional[str] = None preferred_regions: Optional[List[str]] = None preferred_types: Optional[List[str]] = None min_area: Optional[float] = None max_area: Optional[float] = None max_price: Optional[int] = None