diff --git a/CHANGELOG.md b/CHANGELOG.md index 48d622193..8445ff222 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Extended the content of the pricing page - Added a _Storybook_ story for the holdings table component +### Added + +- Add Average Buy Price in holdings table + ### Changed - Disabled the zoom functionality in the _Progressive Web App_ (PWA) diff --git a/apps/api/src/app/endpoints/public/public.controller.ts b/apps/api/src/app/endpoints/public/public.controller.ts index b09ced4fb..0604ede57 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 b74b779f6..53d7c049a 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 + + +
+ +
+ +
+