Remove -n auto from test configuration to prevent database locking
errors with SQLite. SQLite does not support concurrent writes, causing
test failures when running tests in parallel.
Tests now run serially, which is compatible with SQLite file-based
database used in both local development and HuggingFace deployment.
feat: implement daily-ice-usage endpoint for Profile API
Add custom action to ProfileViewSet that returns aggregated daily ice usage
for a specific profile and date. Endpoint accepts date query parameter in
YYYY-MM-DD format and returns total feet built, total ice cubic yards, and
per-section breakdowns.
Implementation uses get_object_or_404 for proper 404 handling, explicit None
checking for aggregate results (no implicit defaults), and proper type
annotations throughout.
Tests added for success case, no-data case, invalid profile, and missing
date parameter validation.
feat: add DailyProgress model and IceUsageCalculator service
Implemented TDD approach with full type safety:
- DailyProgress model with wall_section FK, date, feet_built, ice_cubic_yards, cost_gold_dragons
- Unique constraint on (wall_section, date)
- Database migration with indexes on date and (wall_section, date)
- IceUsageCalculator service for ice usage and cost calculations
- Constants: ICE_PER_FOOT=195 yd³/ft, COST_PER_CUBIC_YARD=1900 GD/yd³
- Unit tests for model (3 tests) and calculator (6 tests)
- 37 tests passing, 100% coverage, 0 mypy errors
feat: implement TDD for Wall Construction API with full type safety
Complete test-driven development implementation:
- Profile model with full CRUD API (13 tests, django-filter integration)
- WallSection model with height calculations (11 tests, ice/crew validation)
- Django REST Framework serializers and viewsets with comprehensive test coverage
- Full type safety with django-stubs==5.2.6 and djangorestframework-stubs==3.16.4
- Fixed all 61 mypy errors: added type parameters to ModelSerializer[T] and ModelViewSet[T]
- Updated test fixtures with proper APIClient typing (was object)
- Upgraded factory-boy==3.3.3 for native type annotations
- Removed legacy mypy config from other projects
- 24 tests passing, 96% coverage, 0 mypy errors