feat: Add banner toggle and soldout tracking to Cars page
- Add is_banner, soldout fields to Car model
- Add banner toggle API (POST /hero-banners/admin/toggle/{car_id})
- Add soldout APIs (POST/DELETE /cars/{car_id}/soldout)
- Add nightly soldout checker in agent (runs at 3:00 AM)
- Update Local Cars UI with banner checkbox and status column
- Remove hero-banners admin page (functionality moved to Cars page)
- Banner cars sorted to top with purple background
- Soldout cars displayed with gray overlay
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -135,6 +135,8 @@ class CarUpdate(BaseModel):
|
||||
color: Optional[str] = None
|
||||
status: Optional[str] = None
|
||||
is_displayed: Optional[bool] = None
|
||||
is_banner: Optional[bool] = None
|
||||
soldout: Optional[bool] = None
|
||||
|
||||
|
||||
class CarResponse(BaseModel):
|
||||
@@ -152,6 +154,8 @@ class CarResponse(BaseModel):
|
||||
final_price_mn: Optional[int] = None # Computed: price_krw + margin_mn (for Mongolian users)
|
||||
price_usd: Optional[Decimal] = None
|
||||
is_displayed: bool = False
|
||||
is_banner: bool = False
|
||||
soldout: bool = False
|
||||
fuel: Optional[str] = None
|
||||
transmission: Optional[str] = None
|
||||
color: Optional[str] = None
|
||||
|
||||
Reference in New Issue
Block a user