Files
New-planet-api/new-planet-backend/app/schemas/task.py
2025-12-13 14:39:50 +03:00

43 lines
981 B
Python

from pydantic import BaseModel, Field
from typing import Optional
from datetime import datetime
class TaskBase(BaseModel):
title: str = Field(..., max_length=255)
description: Optional[str] = None
image_url: Optional[str] = None
duration_minutes: int = Field(default=30, ge=1)
order: int = Field(default=0, ge=0)
category: Optional[str] = None
class TaskCreate(TaskBase):
schedule_id: str
class TaskUpdate(BaseModel):
title: Optional[str] = Field(None, max_length=255)
description: Optional[str] = None
image_url: Optional[str] = None
duration_minutes: Optional[int] = Field(None, ge=1)
completed: Optional[bool] = None
order: Optional[int] = Field(None, ge=0)
category: Optional[str] = None
class TaskInDB(TaskBase):
id: str
schedule_id: str
completed: bool = False
created_at: datetime
updated_at: datetime
class Config:
from_attributes = True
class Task(TaskInDB):
pass