move static data
This commit is contained in:
@@ -608,13 +608,33 @@ Adapters decide **how** it runs.
|
||||
|
||||
---
|
||||
|
||||
### Reference Data (registries exposed via API)
|
||||
|
||||
Some “data” is neither **domain behavior** nor **UI config**. It is **authoritative reference data** that outer layers need (website, API DTOs), but it is not a domain entity itself.
|
||||
|
||||
Examples:
|
||||
|
||||
* Scoring preset registries (preset identifiers, point systems, drop-week policies, default timing presets)
|
||||
* Catalog-like lists needed by the UI to render forms safely without duplicating domain semantics
|
||||
|
||||
Rules:
|
||||
|
||||
* The website (presentation) must never own or hardcode domain catalogs.
|
||||
* Core owns invariants, enumerations, and validation rules. If a rule is an invariant, it belongs in Core.
|
||||
* Adapters may own **reference registries** when they are not domain entities, and when they represent curated “known lists” used for configuration and defaults.
|
||||
* The API must expose reference registries via HTTP so the website remains a pure API consumer (no importing adapters or core).
|
||||
* UI-only concerns (labels, icons, colors, layout defaults) remain in the website.
|
||||
|
||||
---
|
||||
|
||||
### Hard separation
|
||||
|
||||
| Concern | Purpose | Location |
|
||||
| --------- | ------------------- | ------------------------------- |
|
||||
| Migration | Schema | adapters/persistence/migrations |
|
||||
| Bootstrap | Required start data | adapters/bootstrap |
|
||||
| Factory | Test data | testing |
|
||||
| Concern | Purpose | Location |
|
||||
| -------------- | ---------------------------------------------- | ------------------------------- |
|
||||
| Migration | Schema | adapters/persistence/migrations |
|
||||
| Bootstrap | Required start data | adapters/bootstrap |
|
||||
| Reference Data | Authoritative registries consumed via API | adapters/bootstrap + apps/api |
|
||||
| Factory | Test data | testing |
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user