"""Challenge Pydantic schemas.""" from pydantic import BaseModel from typing import Optional, List from datetime import date from backend.schemas.tracking import TrackingResponse from backend.models.tracking import Tracking class ChallengeBase(BaseModel): """Base schema for challenge.""" name: str period_type: str daily_target: int start_date: date end_date: Optional[date] = None unit_type: Optional[str] = "reps" rest_days: Optional[str] = None icon: Optional[str] = "fa-dumbbell" image_url: Optional[str] = None description: Optional[str] = None frequency_count: Optional[int] = None selected_days: Optional[str] = None class ChallengeCreate(ChallengeBase): """Schema for creating a challenge.""" pass class ChallengeResponse(ChallengeBase): """Schema for challenge response.""" id: int created_at: date display_order: int = 0 trackings: List[TrackingResponse] = [] class Config: from_attributes = True