New component that allows admins to edit existing chores:
- Loads chore data and pre-populates form with current values
- Multi-user checkbox selection grid
- Updates all chore fields: title, description, room, frequency, points, due_date, assigned_user_ids
- Loading spinner while fetching chore
- Error handling with detailed messages
- Admin-only feature called from ChoreCard edit button
- Display multiple assigned users with completion status per user
- Show birthday emoji 🎂 for users with birthday today
- Display points with ⭐ emoji
- Add Edit button for admins (calls onEdit prop)
- Show "Birthday chore! Give them a break today" message
- Update frequency icons (added fortnightly, on_trigger)
- Check if current user is assigned and show appropriate completion button
- Only show Complete button if user is assigned and hasn't completed yet
- Added AssignedUser interface with birthday and completed_at fields
- Updated Chore interface with assigned_users array and points field
- Added assigned_user_ids to CreateChoreRequest and UpdateChoreRequest
- Added query params to getChores: user_id and exclude_birthdays
- Added assignUsers method for POST /chores/{id}/assign endpoint
- Updated frequency enum to include 'on_trigger' and 'fortnightly'
When updating a chore with an empty due_date field, SQLite was throwing an error
because it only accepts Python datetime and date objects, not empty strings.
This fix checks if due_date is an empty string and converts it to None before
setting the attribute, preventing the TypeError.
Error fixed: "SQLite DateTime type only accepts Python datetime and date objects as input"
- Changed imports to use app.core.database and app.models structure
- Added Base import from app.core.database (not app.models)
- Fixed imports to match actual project structure
- Added comprehensive demo data with 5 users and 12 chores
- Fixes ModuleNotFoundError when running database initialization
- Added ENVIRONMENT field (str, default: "development") to match .env file
- Renamed ALLOWED_ORIGINS to CORS_ORIGINS to match .env file
- Updated cors_origins property to use CORS_ORIGINS instead of ALLOWED_ORIGINS
- Fixes Pydantic validation error when loading settings from .env