refactor(arch): use CustomerContext schema for dependency injection
Phase 5 of storefront restructure plan - fix direct model imports in API routes by using schemas for dependency injection. Created CustomerContext schema: - Lightweight Pydantic model for customer data in API routes - Populated from Customer DB model in auth dependency - Contains all fields needed by storefront routes - Includes from_db_model() factory method Updated app/api/deps.py: - _validate_customer_token now returns CustomerContext instead of Customer - Updated docstrings for all customer auth functions Updated module storefront routes: - customers: Uses CustomerContext for profile/address endpoints - orders: Uses CustomerContext for order history endpoints - checkout: Uses CustomerContext for order placement - messaging: Uses CustomerContext for messaging endpoints This enforces the layered architecture (Routes → Services → Models) by ensuring API routes never import database models directly. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -314,7 +314,7 @@ After migrated to `app/modules/cart/services/cart_service.py`.
|
||||
2. **Phase 2** - Rename shop → storefront (terminology) ✅ COMPLETE
|
||||
3. **Phase 3** - Create new modules (cart, checkout, catalog) ✅ COMPLETE
|
||||
4. **Phase 4** - Move routes to modules ✅ COMPLETE
|
||||
5. **Phase 5** - Fix direct model imports
|
||||
5. **Phase 5** - Fix direct model imports ✅ COMPLETE
|
||||
6. **Phase 6** - Delete legacy files
|
||||
7. **Phase 7** - Update documentation
|
||||
|
||||
|
||||
Reference in New Issue
Block a user