- Add 'active' boolean field to Product model with default=True
- Implement ProductView.get_queryset() to filter products by active status
- Default behavior: return only active products
- Support query params: ?active=true|false|all
- Support variations: 1/0, yes/no for true/false
- Detail operations (GET/PATCH/DELETE by ID) work with all products
- Update ProductSerializer to include 'active' field
- Add comprehensive test suite (11 new tests):
- Test filtering by active/inactive/all products
- Test parameter variations (1, yes, 0, no)
- Test PATCH to activate/deactivate products
- Test default list behavior after status changes
- Update API documentation in doc/requests.org with examples
- All tests passing (13 product tests + 8 API tests)
- Split monolithic models.py into models/ package (customers, products, sales, payments, admin)
- Removed forms.py, all HTML templates, and associated template-based views
- Added api/ package with CatalogSaleView placeholder
- Updated all imports across project to use new model paths
- Removed obsolete tests (form, export, purchase, summary tests)
- Removed template-based URL patterns, kept only API endpoints
- Standardized string quotes (single to double) and reformatted code