from pydantic import BaseModel, HttpUrl from typing import Optional, List from datetime import datetime class SnsShareSubmit(BaseModel): """SNS 공유 제출 요청""" car_id: int platform: str # twitter, instagram, facebook sns_url: str # 공유 게시물 URL class SnsShareResponse(BaseModel): """SNS 공유 제출 응답""" id: int user_id: int car_id: int platform: str sns_url: str status: str rejected_reason: Optional[str] = None reward_cc: float rewarded_at: Optional[datetime] = None submitted_at: datetime verified_at: Optional[datetime] = None verified_by: Optional[int] = None # Car info for display car_name: Optional[str] = None car_image: Optional[str] = None class Config: from_attributes = True class SnsShareListResponse(BaseModel): """SNS 공유 목록 응답""" submissions: List[SnsShareResponse] total: int pending_count: int approved_count: int rejected_count: int class SnsShareVerify(BaseModel): """관리자 검증 요청""" approved: bool rejected_reason: Optional[str] = None class SnsShareStats(BaseModel): """SNS 공유 통계""" total_submissions: int pending_submissions: int approved_submissions: int rejected_submissions: int total_rewarded_cc: float