from pydantic import BaseModel from typing import Optional from datetime import datetime class ReferralRewardResponse(BaseModel): """레퍼럴 보상 응답 스키마""" id: int referrer_id: int referred_user_id: int payment_amount: float reward_amount: float status: str created_at: datetime credited_at: Optional[datetime] = None class Config: from_attributes = True class ReferralStats(BaseModel): """레퍼럴 통계 스키마""" total_referrals: int # 총 추천한 회원 수 total_rewards_earned: float # 총 보상 금액 total_rewards_credited: float # 적립된 보상 금액 total_rewards_pending: float # 대기 중인 보상 금액 available_for_withdrawal: float # 출금 가능 금액 class ReferralSettingsResponse(BaseModel): """레퍼럴 설정 응답 스키마""" referral_reward_enabled: bool referral_reward_percent: float referral_reward_type: str # one_time / recurring class ReferralSettingsUpdate(BaseModel): """레퍼럴 설정 업데이트 스키마""" referral_reward_enabled: Optional[bool] = None referral_reward_percent: Optional[float] = None referral_reward_type: Optional[str] = None