Feature 05 · Study guide
Learn the Repository → Service → Controller → Route stack so you know where to put new code.
Only database concerns: SQL/Mongo, query(), CRUD helpers. No HTTP.
Use-cases: validation orchestration, events, multi-repo workflows.
Translate HTTP ↔ service. Return ApiResponse.
Register paths on FastAPI; keep handlers thin.
After generate, look under:
app/repositories/ app/services/ app/controllers/ app/routes/
| Change | Put it in |
|---|---|
| New SQL filter / join | Repository / Query Builder |
| “When order placed, send email” | Service + Events/Queue |
| Status code / JSON envelope | Controller + ApiResponse |
| URL path / method | Route |
tpy crud may overwrite generated files. Keep a plan: either re-apply patches, protect customized modules, or extend via services that you own.