feat: Add Complex (단지선택) filter to Carmodoo search
- Added complex_code parameter to search_cars method - Added /api/carmodoo/complexes endpoint with list of Korean auto complexes - Added Complex dropdown as first filter in admin Cars search - Passes complex_code to Carmodoo API as c_danji parameter Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -170,6 +170,7 @@ class CarmodooClient:
|
||||
price_max: Optional[int] = None,
|
||||
fuel: Optional[str] = None,
|
||||
transmission: Optional[str] = None,
|
||||
complex_code: Optional[str] = None, # 단지 코드
|
||||
page: int = 1,
|
||||
page_size: int = 50
|
||||
) -> List[dict]:
|
||||
@@ -234,6 +235,8 @@ class CarmodooClient:
|
||||
}
|
||||
if transmission in trans_map:
|
||||
form_data['dGA'] = trans_map[transmission]
|
||||
if complex_code:
|
||||
form_data['c_danji'] = complex_code # 단지 코드
|
||||
|
||||
ajax_headers = {
|
||||
**self.headers,
|
||||
@@ -1009,6 +1012,36 @@ async def get_grades(maker_code: str, model_code: str):
|
||||
return grades
|
||||
|
||||
|
||||
# 카모두 단지 목록 (자동차 매매단지)
|
||||
CARMODOO_COMPLEXES = [
|
||||
{"code": "", "name": "전체"},
|
||||
{"code": "1", "name": "수원매매단지"},
|
||||
{"code": "2", "name": "판교매매단지"},
|
||||
{"code": "3", "name": "김포매매단지"},
|
||||
{"code": "4", "name": "부산매매단지"},
|
||||
{"code": "5", "name": "대구매매단지"},
|
||||
{"code": "6", "name": "광주매매단지"},
|
||||
{"code": "7", "name": "인천매매단지"},
|
||||
{"code": "8", "name": "대전매매단지"},
|
||||
{"code": "9", "name": "울산매매단지"},
|
||||
{"code": "10", "name": "창원매매단지"},
|
||||
{"code": "11", "name": "천안매매단지"},
|
||||
{"code": "12", "name": "청주매매단지"},
|
||||
{"code": "13", "name": "전주매매단지"},
|
||||
]
|
||||
|
||||
|
||||
class CarmodooComplex(BaseModel):
|
||||
code: str
|
||||
name: str
|
||||
|
||||
|
||||
@router.get("/complexes")
|
||||
def get_complexes():
|
||||
"""단지 목록 (자동차 매매단지)"""
|
||||
return [CarmodooComplex(**c) for c in CARMODOO_COMPLEXES]
|
||||
|
||||
|
||||
class AdminSearchResultItem(BaseModel):
|
||||
id: str
|
||||
car_name: str
|
||||
@@ -1048,6 +1081,7 @@ class AdminSearchResponse(BaseModel):
|
||||
|
||||
@router.get("/search", response_model=AdminSearchResponse)
|
||||
async def admin_carmodoo_search(
|
||||
complex_code: Optional[str] = None, # 단지 코드
|
||||
maker_code: Optional[str] = None,
|
||||
model_code: Optional[str] = None,
|
||||
car_type: Optional[str] = None,
|
||||
@@ -1084,6 +1118,7 @@ async def admin_carmodoo_search(
|
||||
price_min=price_min,
|
||||
price_max=price_max,
|
||||
fuel=fuel,
|
||||
complex_code=complex_code,
|
||||
page=page,
|
||||
page_size=page_size
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user