From 553c0e0e3265cebed9d5f5084ca781dad1715083 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 26 Jul 2025 09:20:54 +0200 Subject: [PATCH] Refactoring --- .../calculator/portfolio-calculator.ts | 26 +++++++++---------- .../transaction-point-symbol.interface.ts | 2 +- libs/common/src/lib/config.ts | 1 - 3 files changed, 13 insertions(+), 16 deletions(-) diff --git a/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts b/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts index cdfd7adbf..78323a332 100644 --- a/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts +++ b/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts @@ -288,12 +288,12 @@ export abstract class PortfolioCalculator { firstIndex--; } - const positions: (TimelinePosition & { - isInvestmentAssetProfilePosition: boolean; - })[] = []; + const errors: ResponseError['errors'] = []; let hasAnySymbolMetricsErrors = false; - const errors: ResponseError['errors'] = []; + const positions: (TimelinePosition & { + includeInHoldings: boolean; + })[] = []; const accumulatedValuesByDate: { [date: string]: { @@ -412,9 +412,9 @@ export abstract class PortfolioCalculator { grossPerformanceWithCurrencyEffect: !hasErrors ? (grossPerformanceWithCurrencyEffect ?? null) : null, + includeInHoldings: item.includeInHoldings, investment: totalInvestment, investmentWithCurrencyEffect: totalInvestmentWithCurrencyEffect, - isInvestmentAssetProfilePosition: item.isInvestmentAssetProfileItem, marketPrice: marketSymbolMap[endDateString]?.[item.symbol]?.toNumber() ?? null, marketPriceInBaseCurrency: @@ -609,12 +609,12 @@ export abstract class PortfolioCalculator { const overall = this.calculateOverallPerformance(positions); - const investmentPositions = positions - .filter(({ isInvestmentAssetProfilePosition }) => { - return isInvestmentAssetProfilePosition; + const positionsIncludedInHoldings = positions + .filter(({ includeInHoldings }) => { + return includeInHoldings; }) // eslint-disable-next-line @typescript-eslint/no-unused-vars - .map(({ isInvestmentAssetProfilePosition, ...rest }) => { + .map(({ includeInHoldings, ...rest }) => { return rest; }); @@ -625,7 +625,7 @@ export abstract class PortfolioCalculator { totalInterestWithCurrencyEffect, totalLiabilitiesWithCurrencyEffect, hasErrors: hasAnySymbolMetricsErrors || overall.hasErrors, - positions: investmentPositions + positions: positionsIncludedInHoldings }; } @@ -948,8 +948,7 @@ export abstract class PortfolioCalculator { dividend: new Big(0), fee: oldAccumulatedSymbol.fee.plus(fee), firstBuyDate: oldAccumulatedSymbol.firstBuyDate, - isInvestmentAssetProfileItem: - oldAccumulatedSymbol.isInvestmentAssetProfileItem, + includeInHoldings: oldAccumulatedSymbol.includeInHoldings, quantity: newQuantity, tags: oldAccumulatedSymbol.tags.concat(tags), transactionCount: oldAccumulatedSymbol.transactionCount + 1 @@ -965,9 +964,8 @@ export abstract class PortfolioCalculator { averagePrice: unitPrice, dividend: new Big(0), firstBuyDate: date, + includeInHoldings: INVESTMENT_ACTIVITY_TYPES.includes(type), investment: unitPrice.mul(quantity).mul(factor), - isInvestmentAssetProfileItem: - INVESTMENT_ACTIVITY_TYPES.includes(type), quantity: quantity.mul(factor), transactionCount: 1 }; diff --git a/apps/api/src/app/portfolio/interfaces/transaction-point-symbol.interface.ts b/apps/api/src/app/portfolio/interfaces/transaction-point-symbol.interface.ts index 04d867b2a..f4ceadf3b 100644 --- a/apps/api/src/app/portfolio/interfaces/transaction-point-symbol.interface.ts +++ b/apps/api/src/app/portfolio/interfaces/transaction-point-symbol.interface.ts @@ -8,8 +8,8 @@ export interface TransactionPointSymbol { dividend: Big; fee: Big; firstBuyDate: string; + includeInHoldings: boolean; investment: Big; - isInvestmentAssetProfileItem: boolean; quantity: Big; skipErrors: boolean; symbol: string; diff --git a/libs/common/src/lib/config.ts b/libs/common/src/lib/config.ts index 91460e373..467716575 100644 --- a/libs/common/src/lib/config.ts +++ b/libs/common/src/lib/config.ts @@ -121,7 +121,6 @@ export const GATHER_HISTORICAL_MARKET_DATA_PROCESS_JOB_OPTIONS: JobOptions = { export const INVESTMENT_ACTIVITY_TYPES = [ Type.BUY, Type.DIVIDEND, - Type.ITEM, Type.SELL ] as Type[];