Samir Boulahtit
5155ef7445
fix: resolve all architecture validation errors (62 -> 0)
Major refactoring to achieve zero architecture violations:
API Layer:
- vendor/settings.py: Move validation to Pydantic field validators
(tax rate, delivery method, boost sort, preorder days, languages, locales)
- admin/email_templates.py: Add Pydantic response models
(TemplateListResponse, CategoriesResponse)
- shop/auth.py: Move password reset logic to CustomerService
Service Layer:
- customer_service.py: Add password reset methods
(get_customer_for_password_reset, validate_and_reset_password)
Exception Layer:
- customer.py: Add InvalidPasswordResetTokenException,
PasswordTooShortException
Frontend:
- admin/email-templates.js: Use apiClient, Utils.showToast()
- vendor/email-templates.js: Use apiClient, parent init pattern
Templates:
- admin/email-templates.html: Fix block name to extra_scripts
- shop/base.html: Add language default filter
Tooling:
- validate_architecture.py: Fix LANG-001 false positive for
SUPPORTED_LANGUAGES and SUPPORTED_LOCALES blocks
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 18:48:59 +01:00
..
2026-01-03 18:29:26 +01:00
2025-11-28 19:37:38 +01:00
2025-12-04 22:24:45 +01:00
2025-12-21 20:57:08 +01:00
2025-12-21 21:07:18 +01:00
2025-12-13 22:59:51 +01:00
2025-12-31 18:48:59 +01:00
2025-12-21 14:12:02 +01:00
2025-12-13 22:59:51 +01:00
2026-01-03 18:48:59 +01:00
2025-12-31 18:48:59 +01:00
2025-12-25 17:31:04 +01:00
2026-01-01 18:22:51 +01:00
2025-12-25 00:30:33 +01:00
2025-12-13 22:59:51 +01:00
2025-12-13 13:33:03 +01:00
2025-12-21 21:01:14 +01:00
2025-11-28 19:30:17 +01:00
2025-12-21 14:11:48 +01:00
2025-12-20 20:33:48 +01:00
2025-12-20 20:33:48 +01:00
2025-12-26 20:51:13 +01:00
2025-12-25 20:29:44 +01:00
2025-12-21 14:12:43 +01:00
2025-12-26 21:01:01 +01:00
2025-12-13 22:59:51 +01:00
2025-12-13 22:59:51 +01:00
2025-12-06 18:34:41 +01:00
2025-12-26 20:51:13 +01:00
2025-12-13 22:59:51 +01:00
2025-12-20 23:01:59 +01:00