Files
specs/openspec/changes/archive/2026-08-25-align-domain-model-and-money-contract/implementation-summary.md
T

37 lines
1.9 KiB
Markdown

# align-domain-model-and-money-contract — Implementation Summary
## Semantic Verification
Date: 2026-08-25
Checked areas:
- Future Cash Event contract: backend `UpcomingEventDto` now exposes nullable
`projectedAmount` as canonical Money `{ currency, value }`; old event-level
`amount` and `currency` fields were removed from the runtime OpenAPI schema
and generated frontend types.
- Money semantics: coupon, dividend and maturity events return Money in the
source currency when currency and amount are known; offer and source events
without currency return `null`, not zero or an invented currency.
- Account access semantics: Upcoming Events still resolves account-scoped data
through the existing current T-Bank connection access boundary; inaccessible
accounts still short-circuit without reading upstream portfolio/events.
- Portfolio terminology: runtime Portfolio behavior was not changed; docs and
specs now distinguish Portfolio Snapshot, Portfolio Position, Currency
Instrument Position and Cash Balance without altering route names or storage.
- Frontend contract consumption: event page, account overview recent events,
hooks, fixtures and generated schema now consume `projectedAmount` directly
and keep the existing «Сумма неизвестна» UI for `null`.
- Docs as-built state: glossary and affected feature/system docs describe the
delivered Money contract and current-connection account accessibility without
copying Proposal, Design or Tasks as a parallel SDD artifact.
- Non-goals: routes, supported account types, token lifecycle, T-Bank upstream
sources, cache TTLs, sorting, durable storage and broad module structure were
not changed.
Conclusion:
The implementation matches the approved Proposal, Delta Specs and Design. The
only public API contract break is the intended Future Cash Event projected
amount change from separate nullable amount/currency fields to nullable Money.