Add initial project
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
"""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
|
||||
Reference in New Issue
Block a user