import { EnhancedSymbolProfile, PortfolioDetails, PortfolioPosition } from '@ghostfolio/common/interfaces'; import { Market } from '@ghostfolio/common/types'; import { Order } from '@prisma/client'; export interface PublicPortfolioResponse extends PublicPortfolioResponseV1 { alias?: string; hasDetails: boolean; holdings: { [symbol: string]: Pick< PortfolioPosition, | 'allocationInPercentage' /** @deprecated */ | 'assetClass' | 'assetProfile' /** @deprecated */ | 'countries' | 'currency' /** @deprecated */ | 'dataSource' | 'dateOfFirstActivity' | 'markets' /** @deprecated */ | 'name' | 'netPerformancePercentWithCurrencyEffect' /** @deprecated */ | 'sectors' /** @deprecated */ | 'symbol' /** @deprecated */ | 'url' | 'valueInBaseCurrency' | 'valueInPercentage' >; }; latestActivities: (Pick< Order, 'currency' | 'date' | 'fee' | 'quantity' | 'type' | 'unitPrice' > & { SymbolProfile?: EnhancedSymbolProfile; value: number; valueInBaseCurrency: number; })[]; markets: { [key in Market]: Pick< NonNullable[key], 'id' | 'valueInPercentage' >; }; } interface PublicPortfolioResponseV1 { createdAt: Date; performance: { '1d': { relativeChange: number; }; max: { relativeChange: number; }; ytd: { relativeChange: number; }; }; }