From d12ca1e7f787f58cb2529b928fd91061841f9316 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Mart=C3=ADn?= Date: Sat, 27 Sep 2025 16:28:56 +0200 Subject: [PATCH 1/2] Feature/add average price to portfolio response and holdings table --- .../app/endpoints/public/public.controller.ts | 1 + .../src/app/portfolio/portfolio.service.ts | 2 ++ .../portfolio-position.interface.ts | 1 + .../public-portfolio-response.interface.ts | 1 + .../holdings-table.component.html | 27 +++++++++++++++++++ .../holdings-table.component.ts | 2 ++ 6 files changed, 34 insertions(+) diff --git a/apps/api/src/app/endpoints/public/public.controller.ts b/apps/api/src/app/endpoints/public/public.controller.ts index 0f3ba4682..e135a8ac0 100644 --- a/apps/api/src/app/endpoints/public/public.controller.ts +++ b/apps/api/src/app/endpoints/public/public.controller.ts @@ -168,6 +168,7 @@ export class PublicController { allocationInPercentage: portfolioPosition.valueInBaseCurrency / totalValue, assetClass: hasDetails ? portfolioPosition.assetClass : undefined, + averagePrice: hasDetails ? portfolioPosition.averagePrice : undefined, countries: hasDetails ? portfolioPosition.countries : [], currency: hasDetails ? portfolioPosition.currency : undefined, dataSource: portfolioPosition.dataSource, diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index f5b4ab1c6..2236632e1 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -569,6 +569,7 @@ export class PortfolioService { } for (const { + averagePrice, currency, dividend, firstBuyDate, @@ -624,6 +625,7 @@ export class PortfolioService { : valueInBaseCurrency.div(filteredValueInBaseCurrency).toNumber(), assetClass: assetProfile.assetClass, assetSubClass: assetProfile.assetSubClass, + averagePrice: averagePrice?.toNumber(), countries: assetProfile.countries, dataSource: assetProfile.dataSource, dateOfFirstActivity: parseDate(firstBuyDate), diff --git a/libs/common/src/lib/interfaces/portfolio-position.interface.ts b/libs/common/src/lib/interfaces/portfolio-position.interface.ts index e277ba468..d14fcc46a 100644 --- a/libs/common/src/lib/interfaces/portfolio-position.interface.ts +++ b/libs/common/src/lib/interfaces/portfolio-position.interface.ts @@ -12,6 +12,7 @@ export interface PortfolioPosition { assetClassLabel?: string; assetSubClass?: AssetSubClass; assetSubClassLabel?: string; + averagePrice?: number; countries: Country[]; currency: string; dataSource: DataSource; diff --git a/libs/common/src/lib/interfaces/responses/public-portfolio-response.interface.ts b/libs/common/src/lib/interfaces/responses/public-portfolio-response.interface.ts index cb06800be..460ac06b6 100644 --- a/libs/common/src/lib/interfaces/responses/public-portfolio-response.interface.ts +++ b/libs/common/src/lib/interfaces/responses/public-portfolio-response.interface.ts @@ -15,6 +15,7 @@ export interface PublicPortfolioResponse extends PublicPortfolioResponseV1 { PortfolioPosition, | 'allocationInPercentage' | 'assetClass' + | 'averagePrice' | 'countries' | 'currency' | 'dataSource' diff --git a/libs/ui/src/lib/holdings-table/holdings-table.component.html b/libs/ui/src/lib/holdings-table/holdings-table.component.html index d3afe9de9..289269b4e 100644 --- a/libs/ui/src/lib/holdings-table/holdings-table.component.html +++ b/libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -88,6 +88,33 @@ + + + Avg. Buy Price + + +
+ +
+ +
+ Date: Sat, 27 Sep 2025 16:34:34 +0200 Subject: [PATCH 2/2] Edit changelog --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bdb7ea502..f85e51d61 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +### Added + +- Add Average Buy Price in holdings table + ### Changed - Removed the deprecated `ITEM` activity type