refactor(marketing-pages): factory-style use cases + per-use-case controllers

- Use cases (get-page-by-slug, get-site-settings) → factory functions with I*UseCase aliases
- Controllers split: pages.controller.ts → 2 single-responsibility files
- DI module wires factories with .toDynamicValue()
- tRPC router resolves controllers via container

Refactor log: §2, §3, §4.1, §4.2, §5.1
Spec: §6.3

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-06 00:14:27 +02:00
parent 700d311052
commit 353a41b244
15 changed files with 206 additions and 162 deletions

View File

@@ -1,4 +1,10 @@
export const MARKETING_PAGES_SYMBOLS = {
IPagesRepository: Symbol.for("marketing-pages:IPagesRepository"),
ISiteSettingsRepository: Symbol.for("marketing-pages:ISiteSettingsRepository"),
// Use cases
IGetPageBySlugUseCase: Symbol.for("marketing-pages:IGetPageBySlugUseCase"),
IGetSiteSettingsUseCase: Symbol.for("marketing-pages:IGetSiteSettingsUseCase"),
// Controllers
IGetPageBySlugController: Symbol.for("marketing-pages:IGetPageBySlugController"),
IGetSiteSettingsController: Symbol.for("marketing-pages:IGetSiteSettingsController"),
} as const;