Files
AutonetSellCar Deploy e0c1f4540b feat: Add bulletin board system
- Add BoardCategory and BoardPost models with multi-language support
- Add bulletin API endpoints (CRUD, notice toggle, pin toggle)
- Add board_enabled setting to control menu visibility
- Create frontend board pages (list, detail, write, edit)
- Create admin board management and category management pages
- Update Header.tsx with conditional Board menu between Inquiry and Contact Us
- Update admin settings with board_enabled toggle
- Add Board menu to admin sidebar

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 01:34:41 +09:00

87 lines
2.9 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
# 게시판 설정
board_enabled: Optional[bool] = 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
# 게시판 설정
board_enabled: bool = True
# 차량 판매상태 검증 설정
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