OVERVIEW Scaffold for 14 high‑complexity use cases with strict interfaces and DI. WHERE TO LOOK - usecase/ directory for interfaces and New{Entity}UseCase constructors - repository/ for repository interfaces consumed by use cases - model/ for DTOs and domain entities used by use cases - manager/ for DI wiring examples (injecting GeocodingService) - config/ or utils/ for validator setup references invoked by use cases CONVENTIONS - Use case interfaces define all methods for an entity - Constructor: New{Entity}UseCase(repo, geocoder) returns {Entity}UseCase interface - Validation uses validator.New() inside use cases - GeocodingService is injected via dependency injection (not instantiated in use cases) - File naming uses snake_case; interfaces named {Entity}UseCase / {Entity}Repo - Test file: `{name}_test.go` with mock implementations ANTI-PATTERNS - Do not skip validation in use cases; always validate inputs via validator - Do not couple to concrete repositories; depend on interfaces only - Do not instantiate GeocodingService inside use cases; rely on DI - Do not mix business logic into delivery layer - Do not bypass existing patterns for separation of concerns (use cases separate from controllers)