feat(arch): add API-007 rule to enforce layered architecture

Add architecture rule that detects when API routes import database
models directly, enforcing Routes → Services → Models pattern.

Changes:
- Add API-007 rule to .architecture-rules/api.yaml
- Add _check_no_model_imports() validation to validator script
- Update customer imports to use canonical module location
- Add storefront module restructure implementation plan

The validator now detects 81 violations across 67 API files where
database models are imported directly instead of going through
services. This is Phase 1 of the storefront restructure plan.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-29 22:23:00 +01:00
parent de83875d0a
commit 228163d920
19 changed files with 466 additions and 16 deletions

View File

@@ -3,7 +3,7 @@
import pytest
from models.database.customer import Customer, CustomerAddress
from app.modules.customers.models.customer import Customer, CustomerAddress
@pytest.mark.unit

View File

@@ -9,7 +9,7 @@ import pytest
from app.exceptions.customer import CustomerNotFoundException
from app.services.admin_customer_service import AdminCustomerService
from models.database.customer import Customer
from app.modules.customers.models.customer import Customer
@pytest.fixture

View File

@@ -7,7 +7,7 @@ import pytest
from app.exceptions import AddressLimitExceededException, AddressNotFoundException
from app.services.customer_address_service import CustomerAddressService
from models.database.customer import CustomerAddress
from app.modules.customers.models.customer import CustomerAddress
from models.schema.customer import CustomerAddressCreate, CustomerAddressUpdate

View File

@@ -27,7 +27,7 @@ from app.services.order_service import (
OrderService,
order_service,
)
from models.database.customer import Customer
from app.modules.customers.models.customer import Customer
from models.database.order import Order, OrderItem