feature/138-account-list-summary
develop
Closes #138
GET /api/v1/brokerage-accounts → portfolioSummary получает required-поля:
GET /api/v1/brokerage-accounts
portfolioSummary
cashBalances: MoneyDto[]
structure: PortfolioStructureDto
unrealizedReturnByCurrency[]
{currency, absolute, costBasis, percent (2 знака | null при нулевой базе), partial}
absoluteReturn
partial
fundPositionCount
totalPositionCount
Существующие поля и portfolioSummary = null без snapshot не изменены. Новых upstream-вызовов и DB-запросов нет; decimal без Number.
portfolioSummary = null
npm run verify
npm run openapi:generate
npm run test:openapi-contract
Потребитель: WealthLedger/frontend#114 (мержить этот PR первым).
No dependencies set.
The note is not visible to the blocked user.
Closes #138
Что
GET /api/v1/brokerage-accounts→portfolioSummaryполучает required-поля:cashBalances: MoneyDto[],structure: PortfolioStructureDto— из сохранённого snapshot;unrealizedReturnByCurrency[]:{currency, absolute, costBasis, percent (2 знака | null при нулевой базе), partial}; CURRENCY-позиции исключены (не дублируют деньги); позиции безabsoluteReturnпомечают валютуpartial;fundPositionCount,totalPositionCount.Существующие поля и
portfolioSummary = nullбез snapshot не изменены. Новых upstream-вызовов и DB-запросов нет; decimal без Number.Проверки
npm run verify— 40 suites / 291 tests passednpm run openapi:generate,npm run test:openapi-contract— passedПотребитель: WealthLedger/frontend#114 (мержить этот PR первым).