diff --git a/apps/api/src/app/endpoints/public/public.controller.ts b/apps/api/src/app/endpoints/public/public.controller.ts index 7488e4201..a434f5027 100644 --- a/apps/api/src/app/endpoints/public/public.controller.ts +++ b/apps/api/src/app/endpoints/public/public.controller.ts @@ -84,6 +84,7 @@ export class PublicController { hasDetails, markets, alias: access.alias, + createdAt: performance1d.createdAt, holdings: {}, performance: { '1d': { diff --git a/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts b/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts index e9c4fdcce..65122b52d 100644 --- a/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts +++ b/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts @@ -177,6 +177,7 @@ export abstract class PortfolioCalculator { return { activitiesCount: 0, currentValueInBaseCurrency: new Big(0), + createdAt: new Date(), errors: [], hasErrors: false, historicalData: [], diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator.ts index 209a0efd5..62c60be92 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator.ts @@ -94,6 +94,7 @@ export class TWRPortfolioCalculator extends PortfolioCalculator { } return { + createdAt: new Date(), currentValueInBaseCurrency, hasErrors, positions, diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index 811c59f9d..7703b0cc1 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -1100,6 +1100,7 @@ export class PortfolioService { firstOrderDate: undefined, hasErrors: false, performance: { + createdAt: undefined, currentNetWorth: 0, currentValueInBaseCurrency: 0, netPerformance: 0, @@ -1120,7 +1121,7 @@ export class PortfolioService { currency: userCurrency }); - const { errors, hasErrors, historicalData } = + const { createdAt, errors, hasErrors, historicalData } = await portfolioCalculator.getSnapshot(); const { endDate, startDate } = getIntervalFromDateRange(dateRange); @@ -1157,6 +1158,7 @@ export class PortfolioService { netPerformance, netPerformanceWithCurrencyEffect, totalInvestment, + createdAt: createdAt, currentNetWorth: netWorth, currentValueInBaseCurrency: valueWithCurrencyEffect, netPerformancePercentage: netPerformanceInPercentage, @@ -1809,7 +1811,7 @@ export class PortfolioService { } } - const { currentValueInBaseCurrency, totalInvestment } = + const { createdAt, currentValueInBaseCurrency, totalInvestment } = await portfolioCalculator.getSnapshot(); const { performance } = await this.getPerformance({ @@ -1927,6 +1929,7 @@ export class PortfolioService { totalSell, committedFunds: committedFunds.toNumber(), currentValueInBaseCurrency: currentValueInBaseCurrency.toNumber(), + createdAt: createdAt, dividendInBaseCurrency: dividendInBaseCurrency.toNumber(), emergencyFund: { assets: emergencyFundPositionsValueInBaseCurrency, diff --git a/libs/common/src/lib/interfaces/portfolio-performance.interface.ts b/libs/common/src/lib/interfaces/portfolio-performance.interface.ts index c0c3802d8..1cd71264a 100644 --- a/libs/common/src/lib/interfaces/portfolio-performance.interface.ts +++ b/libs/common/src/lib/interfaces/portfolio-performance.interface.ts @@ -1,5 +1,6 @@ export interface PortfolioPerformance { annualizedPerformancePercent?: number; + createdAt: Date; currentNetWorth?: number; currentValueInBaseCurrency: number; netPerformance: number; 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 dc6e57587..17d7dc066 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 @@ -3,6 +3,7 @@ import { Market } from '../../types'; export interface PublicPortfolioResponse extends PublicPortfolioResponseV1 { alias?: string; + createdAt: Date; hasDetails: boolean; holdings: { [symbol: string]: Pick< diff --git a/libs/common/src/lib/models/portfolio-snapshot.ts b/libs/common/src/lib/models/portfolio-snapshot.ts index d0c4c66e0..e30585b82 100644 --- a/libs/common/src/lib/models/portfolio-snapshot.ts +++ b/libs/common/src/lib/models/portfolio-snapshot.ts @@ -11,6 +11,8 @@ import { Transform, Type } from 'class-transformer'; export class PortfolioSnapshot { activitiesCount: number; + createdAt: Date; + @Transform(transformToBig, { toClassOnly: true }) @Type(() => Big) currentValueInBaseCurrency: Big;