
- Add complete CRUD operations for task management - Implement task filtering by status, priority, and search - Add task statistics endpoint for summary data - Configure SQLite database with Alembic migrations - Set up FastAPI with CORS support and API documentation - Include health check endpoint and base URL information - Add comprehensive README with API usage examples - Structure project with proper separation of concerns
33 lines
1.2 KiB
Python
33 lines
1.2 KiB
Python
from pydantic import BaseModel, Field
|
|
from datetime import datetime
|
|
from typing import Optional
|
|
from app.models.task import TaskStatus, TaskPriority
|
|
|
|
|
|
class TaskBase(BaseModel):
|
|
title: str = Field(..., min_length=1, max_length=255, description="Task title")
|
|
description: Optional[str] = Field(None, description="Task description")
|
|
status: TaskStatus = Field(TaskStatus.PENDING, description="Task status")
|
|
priority: TaskPriority = Field(TaskPriority.MEDIUM, description="Task priority")
|
|
due_date: Optional[datetime] = Field(None, description="Task due date")
|
|
|
|
|
|
class TaskCreate(TaskBase):
|
|
pass
|
|
|
|
|
|
class TaskUpdate(BaseModel):
|
|
title: Optional[str] = Field(None, min_length=1, max_length=255, description="Task title")
|
|
description: Optional[str] = Field(None, description="Task description")
|
|
status: Optional[TaskStatus] = Field(None, description="Task status")
|
|
priority: Optional[TaskPriority] = Field(None, description="Task priority")
|
|
due_date: Optional[datetime] = Field(None, description="Task due date")
|
|
|
|
|
|
class TaskResponse(TaskBase):
|
|
id: int
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
|
|
class Config:
|
|
from_attributes = True |