From 6b95c1e5a02e56595b7661e1c07af6ae050e5816 Mon Sep 17 00:00:00 2001 From: gahusb Date: Mon, 6 Apr 2026 08:26:01 +0900 Subject: [PATCH] =?UTF-8?q?feat(realestate-lab):=20Pydantic=20=EC=9A=94?= =?UTF-8?q?=EC=B2=AD=20=EB=AA=A8=EB=8D=B8=20=EC=A0=95=EC=9D=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.6 --- realestate-lab/app/models.py | 82 ++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 realestate-lab/app/models.py diff --git a/realestate-lab/app/models.py b/realestate-lab/app/models.py new file mode 100644 index 0000000..686ac00 --- /dev/null +++ b/realestate-lab/app/models.py @@ -0,0 +1,82 @@ +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