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>