diff --git a/docs/architecture/website/PRESENTERS.md b/docs/architecture/website/PRESENTERS.md deleted file mode 100644 index 498006b69..000000000 --- a/docs/architecture/website/PRESENTERS.md +++ /dev/null @@ -1,40 +0,0 @@ -# Builders (Deprecated) - -**This document is deprecated.** See [`BUILDERS.md`](docs/architecture/website/BUILDERS.md) for the current pattern. - -## Summary of changes - -The architecture has been updated to use **Builders** instead of **Presenters**: - -### Old pattern (deprecated) -- `lib/presenters/` - All transformations -- `lib/view-models/` - ViewModels + some presenters - -### New pattern (current) -- `lib/builders/view-models/` - DTO → ViewModel -- `lib/builders/view-data/` - ViewModel → ViewData -- `lib/view-models/` - ViewModels only - -### Why the change? - -The old pattern had **three anti-patterns**: - -1. **Inconsistent naming** - Same concept had 3 names (Presenter, Transformer, ViewModelPresenter) -2. **Inconsistent location** - Presenters lived in both `lib/presenters/` and `lib/view-models/` -3. **Confusing semantics** - "Presenter" implies presenting to client, but some presenters prepared data for server templates - -### What changed? - -**ViewModel Builders** (DTO → ViewModel): -- Location: `lib/builders/view-models/` -- Naming: `*ViewModelBuilder` -- Example: `AdminViewModelBuilder.build(dto)` - -**ViewData Builders** (ViewModel → ViewData): -- Location: `lib/builders/view-data/` -- Naming: `*ViewDataBuilder` -- Example: `LeagueViewDataBuilder.build(viewModel, id)` - -This makes the architecture **self-documenting** and **clean**. - -See [`BUILDERS.md`](docs/architecture/website/BUILDERS.md) for full details.