12 Commits

Author SHA1 Message Date
Automated Action
aa7cc98275 Implement comprehensive due date API endpoints with filtering and sorting
Added comprehensive due date functionality to the FastAPI todo application:

API Enhancements:
- Updated main /todos endpoint with due date query parameters (overdue, due_soon, due_date_from, due_date_to)
- Added sort_by parameter supporting "due_date" and "created_at" options
- Enhanced existing endpoints to handle due_date in responses

New Specialized Endpoints:
- GET /api/v1/todos/overdue - Get all overdue todos with pagination
- GET /api/v1/todos/due-soon - Get todos due within next N days (default 7)
- GET /api/v1/todos/due-today - Get todos due today with date range filtering

Technical Improvements:
- Added comprehensive OpenAPI documentation with parameter descriptions and examples
- Implemented proper date validation and timezone handling
- Added date utility functions for consistent date operations
- Enhanced error handling for invalid date parameters
- Added proper FastAPI Query parameter validation with regex patterns

Migration & Schema Updates:
- Created migration 007 to add due_date column with timezone support
- Added database index on due_date for optimal query performance
- Updated Todo model with computed properties (is_overdue, days_until_due, is_due_soon)
- Enhanced schemas with due_date field validation and Field descriptions

All endpoints follow existing API patterns with pagination, filtering, and comprehensive documentation.
2025-06-19 13:22:25 +00:00
Automated Action
2519513d99 Implement comprehensive due date CRUD operations and filtering
- Add enhanced due date filtering to get_todos function with support for "today", "this_week", "next_week"
- Add overdue filtering parameter with timezone-aware comparisons
- Add sorting by due_date with null values at end
- Add get_overdue_todos function for retrieving overdue todos
- Add get_todos_due_soon function for todos due within next N days (default 7)
- Add get_todos_by_date_range function for custom date range filtering
- Create comprehensive date utilities in app/utils/date_utils.py with timezone support
- Add project_id and tag_ids support to TodoCreate and TodoUpdate schemas
- Include efficient database indexing for due_date queries
- Use SQLAlchemy timezone-aware datetime filtering throughout
- Add proper overdue detection logic with timezone handling
2025-06-19 13:20:58 +00:00
Automated Action
66410bdab5 Implement comprehensive due date functionality for todos
Added due_date field to TodoBase, TodoCreate, TodoUpdate schemas with proper validation
and timezone handling. Included computed fields is_overdue and days_until_due
for enhanced todo management capabilities.
2025-06-19 13:20:33 +00:00
Automated Action
7251fea2ba Add due date functionality to Todo model
- Add due_date field as nullable DateTime with timezone support
- Add is_overdue property to check if task is overdue
- Add days_until_due property for time calculations
- Create migration 007 to add due_date column with index
- Maintain backward compatibility with nullable due_date
2025-06-19 13:18:24 +00:00
Automated Action
4aa24a1411 Integrate organization features and resolve migration conflicts
- Add missing migration files for tags (005) and subtasks (006)
- Update model imports to include Tag and todo_tags association
- Integrate tags router into API endpoints
- Fix migration sequence and dependencies
- Format all code with Ruff
- Complete integration of all organization features
2025-06-19 00:13:15 +00:00
Automated Action
4f7baf8e68 Implement comprehensive Projects system for todo management
- Add Project model with status management (active/archived)
- Create ProjectCreate, ProjectUpdate, ProjectWithTodos schemas
- Implement full CRUD operations for projects with pagination
- Add project filtering by status and search functionality
- Add project_id foreign key to Todo model with relationship
- Update Todo API to support project filtering
- Create archive project endpoint
- Add comprehensive project endpoints:
  - GET /projects - list with filtering
  - POST /projects - create new project
  - GET /projects/{id} - get project with todos
  - PUT /projects/{id} - update project
  - DELETE /projects/{id} - delete project
  - GET /projects/{id}/todos - get project todos
  - PUT /projects/{id}/archive - archive project
- Update README with Projects system documentation
- Add migration for projects table and project_id field
- Clean up imports and remove obsolete tag references

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-19 00:11:25 +00:00
Automated Action
cf0d0e45b0 Update README with Categories system documentation
- Document category management features
- Update API endpoints to include categories
- Revise project structure to reflect current implementation
- Add usage examples for categories and filtering
- Remove references to unimplemented features
- Update models documentation for Todo and Category
2025-06-19 00:09:01 +00:00
Automated Action
6432d4a805 Implement comprehensive Categories system for todo management
- Add Category model with id, name, description, color fields
- Update Todo model with category_id foreign key relationship
- Create Category CRUD operations with full validation
- Add Category API endpoints with complete REST functionality
- Update Todo API and CRUD to support category filtering
- Create Alembic migration to add categories table
- Clean up code structure and remove unused references
- Update all import files and maintain proper relationships

Categories system enables better todo organization and filtering capabilities.
2025-06-19 00:06:10 +00:00
Automated Action
fb7c8942ae Fix Todo schema to include tags relationship
- Add tags field to Todo schema for proper serialization
- Update forward references to include Tag schema
- Ensure Todo schema includes project_id field for completeness
2025-06-19 00:05:29 +00:00
Automated Action
d993db2f17 Implement subtasks functionality for todo system
- 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
2025-06-19 00:04:18 +00:00
Automated Action
19ab35d8f5 Add priority levels, enhanced pagination, and search/filtering
- 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
2025-06-18 01:01:29 +00:00
Automated Action
2c24afcb6c Create simple FastAPI todo application
- 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
2025-06-18 00:30:05 +00:00