- Add daily scheduled check for Carmodoo car availability - Add manual trigger button in admin settings - Mark sold cars as soldout=True automatically - Add settings for check time and enable/disable toggle - Display check status and statistics in admin UI 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
81 lines
2.8 KiB
Python
81 lines
2.8 KiB
Python
from pydantic import BaseModel
|
|
from typing import Optional
|
|
from datetime import datetime
|
|
|
|
|
|
class SystemSettingsUpdate(BaseModel):
|
|
"""시스템 설정 수정용 스키마"""
|
|
search_page_size: Optional[int] = None
|
|
korea_margin_percent: Optional[float] = None
|
|
mongolia_margin_percent: Optional[float] = None
|
|
cc_per_usdc: Optional[int] = None
|
|
cc_per_view: Optional[int] = None
|
|
cc_signup_bonus: Optional[int] = None
|
|
cars_per_cc: Optional[int] = None
|
|
cc_per_banner_view: Optional[float] = None
|
|
cache_ttl_hours: Optional[int] = None
|
|
container_logistics_usd: Optional[int] = None
|
|
shoring_cost_usd: Optional[int] = None
|
|
domestic_export_customs_krw: Optional[int] = None
|
|
show_dealer_comment: Optional[bool] = None
|
|
referral_reward_enabled: Optional[bool] = None
|
|
referral_reward_percent: Optional[float] = None
|
|
referral_reward_type: Optional[str] = None
|
|
|
|
# 마케팅 캠페인 설정
|
|
marketing_enabled: Optional[bool] = None
|
|
marketing_start_date: Optional[datetime] = None
|
|
marketing_end_date: Optional[datetime] = None
|
|
sns_share_reward_cc: Optional[float] = None
|
|
referral_signup_reward_cc: Optional[float] = None
|
|
event_cc_validity_months: Optional[int] = None
|
|
withdrawal_enabled: Optional[bool] = None
|
|
min_withdrawal_usd: Optional[float] = None
|
|
|
|
# 차량 판매상태 검증 설정
|
|
car_availability_check_enabled: Optional[bool] = None
|
|
car_availability_check_hour: Optional[int] = None
|
|
|
|
|
|
class SystemSettingsResponse(BaseModel):
|
|
"""시스템 설정 응답 스키마"""
|
|
id: int
|
|
search_page_size: int
|
|
korea_margin_percent: float
|
|
mongolia_margin_percent: float
|
|
cc_per_usdc: int
|
|
cc_per_view: int
|
|
cc_signup_bonus: int
|
|
cars_per_cc: int
|
|
cc_per_banner_view: float = 0.1
|
|
cache_ttl_hours: int
|
|
container_logistics_usd: int
|
|
shoring_cost_usd: int
|
|
domestic_export_customs_krw: int = 1150000
|
|
show_dealer_comment: bool = True
|
|
referral_reward_enabled: bool = True
|
|
referral_reward_percent: float = 10.0
|
|
referral_reward_type: str = "one_time"
|
|
|
|
# 마케팅 캠페인 설정
|
|
marketing_enabled: bool = False
|
|
marketing_start_date: Optional[datetime] = None
|
|
marketing_end_date: Optional[datetime] = None
|
|
sns_share_reward_cc: float = 3.0
|
|
referral_signup_reward_cc: float = 10.0
|
|
event_cc_validity_months: int = 6
|
|
withdrawal_enabled: bool = True
|
|
min_withdrawal_usd: float = 10.0
|
|
|
|
# 차량 판매상태 검증 설정
|
|
car_availability_check_enabled: bool = True
|
|
car_availability_check_hour: int = 6
|
|
car_availability_last_check: Optional[datetime] = None
|
|
car_availability_last_result: Optional[str] = None
|
|
|
|
created_at: Optional[datetime] = None
|
|
updated_at: Optional[datetime] = None
|
|
|
|
class Config:
|
|
from_attributes = True
|