# Domain Map — 冻结(P1 工程真源) 变更本文件或 ERD 需简短 ADR。词汇:[../domain.md](../domain.md) · ERD:[erd.md](erd.md) · API:`proto/openapi.yaml` · Go 边界:[../architecture/go-services.md](../architecture/go-services.md) --- ## Bounded Contexts | Context | Aggregates | P1 | Owner package | |---|---|---|---| | Identity | User, Session, DeviceIdentity | Yes | `internal/service/user` | | Profile | Profile | Yes | `internal/service/profile` | | Discovery | Portrait, Scale, ScaleResult, GrowthReport | Yes | `portrait`, `scale`, `report` | | Relation | RelationInsight | Yes **必做** | `relation` | | Ask | AskThread, AskMessage, AskQuota | Demo(规则引擎) | `ask` | | Companion | Mood, SolarTerm | P2 | `internal/companion` · `/solar-terms/today` · `/moods` | | StarProfile | StarProfile report | P2 | `internal/star` · `POST /reports/star` | | LifeRhythm | LifeRhythm / Constitution | P2 | `internal/rhythm` · `POST /reports/rhythm` | | ImageCard | ImageCard draw + deck | P2 | `internal/imagecard` · `/image-cards/*` | | Memory | MemoryItem | P2/P3 | `memory` | | Commerce | Subscription, Membership, Order, Payment, DeepAccess | Yes mock | `order`, `membership` | | Consult | — | P3 | — | --- ## Context diagram ``` Identity → Profile → Discovery(Portrait/Scale/GrowthReport) ↘ RelationInsight ← P1 双引擎 ↘ Ask (+ Memory later) ↘ Companion ↓ Commerce(DeepAccess/Membership) ``` --- ## Invariants 1. GrowthReport 完整字段仅当 Membership active **或** DeepAccess 存在。 2. Ask 必须绑定 `profile_id`(Self 或 Other)。 3. RelationInsight 引用两个 Profile;禁止无档案的「合婚」式空算。 4. 客户端不可信任本地「已深度版」标志。 5. 档案表不存吉凶列;**报告 JSON payload 允许**运势分/匹配指数(如 `fortune.daily.score`、`love_index`)。