- Add Tag model with id, name, color, and created_at fields
- Create TodoTag association table for many-to-many relationship
- Update Todo model to include tags relationship
- Add comprehensive Tag schemas with validation
- Update Todo schemas to support tag operations via tag_ids
- Implement full Tag CRUD operations in crud/tag.py
- Create complete Tag API with all CRUD endpoints
- Add tag-todo association endpoints (add/remove tags from todos)
- Create database migration for tags and todo_tags tables
- Update all import files to include new tag components
- Integrate tag handling in todo create/update operations
- Add API routes for /tags with full CRUD functionality
The tags system allows users to categorize and organize todos
with colored labels that can be assigned and managed independently.
- Add parent_id field to Todo model with self-referential foreign key
- Add parent/children relationships and is_subtask property
- Update TodoCreate/TodoUpdate schemas to include parent_id
- Add subtasks list to Todo schema and create SubtaskCreate schema
- Enhance get_todos CRUD function with parent_id filtering
- Add subtask-specific CRUD functions: get_subtasks, create_subtask, move_subtask
- Add API endpoints for subtask management
- Create migration for adding parent_id column
- Update imports and fix circular dependencies
- Ensure proper cycle prevention and validation
Features added:
- GET /todos/{todo_id}/subtasks - Get all subtasks for a todo
- POST /todos/{todo_id}/subtasks - Create a new subtask
- PUT /subtasks/{subtask_id}/move - Move subtask or convert to main todo
- Query parameter parent_id for filtering by parent
- Query parameter include_subtasks for excluding subtasks from main list
- Add Priority enum (low, medium, high) to Todo model with default medium
- Create migration to add priority field to existing todos table
- Enhance pagination with proper metadata (page, total, has_next, has_prev)
- Add search functionality across title and description fields
- Add filtering by completion status and priority level
- Update API endpoints with query parameters for filtering and search
- Add TodoListResponse schema for structured pagination response
- Format code with Ruff
- Add project structure with FastAPI, SQLAlchemy, and Alembic
- Implement Todo model with CRUD operations
- Add REST API endpoints for todo management
- Configure SQLite database with migrations
- Include health check and API documentation endpoints
- Add CORS middleware for all origins
- Format code with Ruff