diff --git a/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts b/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts index ff4cb64b11..80968ebd12 100644 --- a/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts +++ b/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts @@ -1,4 +1,5 @@ import { CurrentRateService } from '@ghostfolio/api/app/portfolio/current-rate.service'; +import { PortfolioCalculatorPosition } from '@ghostfolio/api/app/portfolio/interfaces/portfolio-calculator-position.interface'; import { PortfolioOrder } from '@ghostfolio/api/app/portfolio/interfaces/portfolio-order.interface'; import { PortfolioSnapshotValue } from '@ghostfolio/api/app/portfolio/interfaces/snapshot-value.interface'; import { TransactionPointSymbol } from '@ghostfolio/api/app/portfolio/interfaces/transaction-point-symbol.interface'; @@ -34,7 +35,7 @@ import { ResponseError, SymbolMetrics } from '@ghostfolio/common/interfaces'; -import { PortfolioSnapshot, TimelinePosition } from '@ghostfolio/common/models'; +import { PortfolioSnapshot } from '@ghostfolio/common/models'; import { GroupBy } from '@ghostfolio/common/types'; import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type'; @@ -176,7 +177,7 @@ export abstract class PortfolioCalculator { } protected abstract calculateOverallPerformance( - positions: (TimelinePosition & { includeInPerformance: boolean })[] + positions: PortfolioCalculatorPosition[] ): PortfolioSnapshot; @LogPerformance @@ -312,10 +313,7 @@ export abstract class PortfolioCalculator { const errors: ResponseError['errors'] = []; let hasAnySymbolMetricsErrors = false; - const positions: (TimelinePosition & { - includeInHoldings: boolean; - includeInPerformance: boolean; - })[] = []; + const positions: PortfolioCalculatorPosition[] = []; const accumulatedValuesByDate: { [date: string]: { diff --git a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator.ts index 1c6cb979cc..9a87af153c 100644 --- a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator.ts +++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator.ts @@ -1,4 +1,5 @@ import { PortfolioCalculator } from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator'; +import { PortfolioCalculatorPosition } from '@ghostfolio/api/app/portfolio/interfaces/portfolio-calculator-position.interface'; import { PortfolioOrderItem } from '@ghostfolio/api/app/portfolio/interfaces/portfolio-order-item.interface'; import { getFactor } from '@ghostfolio/api/helper/portfolio.helper'; import { getIntervalFromDateRange } from '@ghostfolio/common/calculation-helper'; @@ -7,7 +8,7 @@ import { AssetProfileIdentifier, SymbolMetrics } from '@ghostfolio/common/interfaces'; -import { PortfolioSnapshot, TimelinePosition } from '@ghostfolio/common/models'; +import { PortfolioSnapshot } from '@ghostfolio/common/models'; import { DateRange } from '@ghostfolio/common/types'; import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type'; @@ -26,7 +27,7 @@ export class RoaiPortfolioCalculator extends PortfolioCalculator { private chartDates: string[]; protected calculateOverallPerformance( - positions: (TimelinePosition & { includeInPerformance: boolean })[] + positions: PortfolioCalculatorPosition[] ): PortfolioSnapshot { let currentValueInBaseCurrency = new Big(0); let grossPerformance = new Big(0); diff --git a/apps/api/src/app/portfolio/interfaces/portfolio-calculator-position.interface.ts b/apps/api/src/app/portfolio/interfaces/portfolio-calculator-position.interface.ts new file mode 100644 index 0000000000..f0cf8a7742 --- /dev/null +++ b/apps/api/src/app/portfolio/interfaces/portfolio-calculator-position.interface.ts @@ -0,0 +1,6 @@ +import { TimelinePosition } from '@ghostfolio/common/models'; + +export interface PortfolioCalculatorPosition extends TimelinePosition { + includeInHoldings: boolean; + includeInPerformance: boolean; +}