diff --git a/apps/api/src/app/portfolio/portfolio.controller.ts b/apps/api/src/app/portfolio/portfolio.controller.ts index c4c9d677c..7820e04ac 100644 --- a/apps/api/src/app/portfolio/portfolio.controller.ts +++ b/apps/api/src/app/portfolio/portfolio.controller.ts @@ -4,6 +4,11 @@ import { } from '@ghostfolio/api/helper/object.helper'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data.service'; import { ImpersonationService } from '@ghostfolio/api/services/impersonation.service'; +import { + PortfolioItem, + PortfolioOverview, + PortfolioPerformance +} from '@ghostfolio/helper/interfaces'; import { getPermissions, hasPermission, @@ -26,9 +31,6 @@ import { Response } from 'express'; import { StatusCodes, getReasonPhrase } from 'http-status-codes'; import { RequestWithUser } from '../interfaces/request-with-user.type'; -import { PortfolioItem } from './interfaces/portfolio-item.interface'; -import { PortfolioOverview } from './interfaces/portfolio-overview.interface'; -import { PortfolioPerformance } from './interfaces/portfolio-performance.interface'; import { HistoricalDataItem, PortfolioPositionDetail diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index 51965663e..9542b4c57 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -5,6 +5,10 @@ import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate- import { ImpersonationService } from '@ghostfolio/api/services/impersonation.service'; import { IOrder } from '@ghostfolio/api/services/interfaces/interfaces'; import { RulesService } from '@ghostfolio/api/services/rules.service'; +import { + PortfolioItem, + PortfolioOverview +} from '@ghostfolio/helper/interfaces'; import { Inject, Injectable } from '@nestjs/common'; import { REQUEST } from '@nestjs/core'; import { @@ -27,8 +31,6 @@ import { OrderService } from '../order/order.service'; import { RedisCacheService } from '../redis-cache/redis-cache.service'; import { UserService } from '../user/user.service'; import { DateRange } from './interfaces/date-range.type'; -import { PortfolioItem } from './interfaces/portfolio-item.interface'; -import { PortfolioOverview } from './interfaces/portfolio-overview.interface'; import { HistoricalDataItem, PortfolioPositionDetail diff --git a/apps/api/src/models/interfaces/portfolio.interface.ts b/apps/api/src/models/interfaces/portfolio.interface.ts index a3e377b58..269300bd9 100644 --- a/apps/api/src/models/interfaces/portfolio.interface.ts +++ b/apps/api/src/models/interfaces/portfolio.interface.ts @@ -1,7 +1,4 @@ -import { - PortfolioItem, - Position -} from '@ghostfolio/api/app/portfolio/interfaces/portfolio-item.interface'; +import { PortfolioItem, Position } from '@ghostfolio/helper/interfaces'; import { Order } from '../order'; diff --git a/apps/api/src/models/portfolio.ts b/apps/api/src/models/portfolio.ts index d2f99e2ac..037f2cce2 100644 --- a/apps/api/src/models/portfolio.ts +++ b/apps/api/src/models/portfolio.ts @@ -1,9 +1,10 @@ +import { UNKNOWN_KEY } from '@ghostfolio/helper/config'; +import { getToday, getYesterday, resetHours } from '@ghostfolio/helper/helper'; import { PortfolioItem, + PortfolioPerformance, Position -} from '@ghostfolio/api/app/portfolio/interfaces/portfolio-item.interface'; -import { UNKNOWN_KEY } from '@ghostfolio/helper/config'; -import { getToday, getYesterday, resetHours } from '@ghostfolio/helper/helper'; +} from '@ghostfolio/helper/interfaces'; import { add, format, @@ -26,7 +27,6 @@ import * as roundTo from 'round-to'; import { UserWithSettings } from '../app/interfaces/user-with-settings'; import { OrderWithAccount } from '../app/order/interfaces/order-with-account.type'; import { DateRange } from '../app/portfolio/interfaces/date-range.type'; -import { PortfolioPerformance } from '../app/portfolio/interfaces/portfolio-performance.interface'; import { PortfolioPosition } from '../app/portfolio/interfaces/portfolio-position.interface'; import { PortfolioReport } from '../app/portfolio/interfaces/portfolio-report.interface'; import { DataProviderService } from '../services/data-provider.service'; diff --git a/apps/client/src/app/components/portfolio-performance-summary/portfolio-performance-summary.component.ts b/apps/client/src/app/components/portfolio-performance-summary/portfolio-performance-summary.component.ts index a7fbe5f71..f26525f56 100644 --- a/apps/client/src/app/components/portfolio-performance-summary/portfolio-performance-summary.component.ts +++ b/apps/client/src/app/components/portfolio-performance-summary/portfolio-performance-summary.component.ts @@ -7,7 +7,7 @@ import { OnInit, ViewChild } from '@angular/core'; -import { PortfolioPerformance } from '@ghostfolio/api/app/portfolio/interfaces/portfolio-performance.interface'; +import { PortfolioPerformance } from '@ghostfolio/helper/interfaces'; import { Currency } from '@prisma/client'; import { CountUp } from 'countup.js'; import { isNumber } from 'lodash'; diff --git a/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts b/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts index e411af378..609245e4d 100644 --- a/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts +++ b/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts @@ -4,7 +4,7 @@ import { Input, OnInit } from '@angular/core'; -import { PortfolioPerformance } from '@ghostfolio/api/app/portfolio/interfaces/portfolio-performance.interface'; +import { PortfolioPerformance } from '@ghostfolio/helper/interfaces'; import { Currency } from '@prisma/client'; @Component({ diff --git a/apps/client/src/app/pages/home/home-page.component.ts b/apps/client/src/app/pages/home/home-page.component.ts index d070e1ea2..cd1f9e031 100644 --- a/apps/client/src/app/pages/home/home-page.component.ts +++ b/apps/client/src/app/pages/home/home-page.component.ts @@ -2,7 +2,6 @@ import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { MatDialog } from '@angular/material/dialog'; import { ActivatedRoute, Router } from '@angular/router'; import { DateRange } from '@ghostfolio/api/app/portfolio/interfaces/date-range.type'; -import { PortfolioPerformance } from '@ghostfolio/api/app/portfolio/interfaces/portfolio-performance.interface'; import { PortfolioPosition } from '@ghostfolio/api/app/portfolio/interfaces/portfolio-position.interface'; import { User } from '@ghostfolio/api/app/user/interfaces/user.interface'; import { LineChartItem } from '@ghostfolio/client/components/line-chart/interfaces/line-chart.interface'; @@ -15,6 +14,7 @@ import { SettingsStorageService } from '@ghostfolio/client/services/settings-storage.service'; import { TokenStorageService } from '@ghostfolio/client/services/token-storage.service'; +import { PortfolioPerformance } from '@ghostfolio/helper/interfaces'; import { PortfolioOverview } from '@ghostfolio/helper/interfaces'; import { hasPermission, permissions } from '@ghostfolio/helper/permissions'; import { DeviceDetectorService } from 'ngx-device-detector'; diff --git a/apps/client/src/app/services/data.service.ts b/apps/client/src/app/services/data.service.ts index 1b0b8bab2..7425aa8af 100644 --- a/apps/client/src/app/services/data.service.ts +++ b/apps/client/src/app/services/data.service.ts @@ -5,7 +5,6 @@ import { UpdateAccountDto } from '@ghostfolio/api/app/account/update-account.dto import { AdminData } from '@ghostfolio/api/app/admin/interfaces/admin-data.interface'; import { CreateOrderDto } from '@ghostfolio/api/app/order/create-order.dto'; import { UpdateOrderDto } from '@ghostfolio/api/app/order/update-order.dto'; -import { PortfolioPerformance } from '@ghostfolio/api/app/portfolio/interfaces/portfolio-performance.interface'; import { HistoricalDataItem, PortfolioPositionDetail @@ -17,6 +16,7 @@ import { SymbolItem } from '@ghostfolio/api/app/symbol/interfaces/symbol-item.in import { UserItem } from '@ghostfolio/api/app/user/interfaces/user-item.interface'; import { User } from '@ghostfolio/api/app/user/interfaces/user.interface'; import { UpdateUserSettingsDto } from '@ghostfolio/api/app/user/update-user-settings.dto'; +import { PortfolioPerformance } from '@ghostfolio/helper/interfaces'; import { InfoItem } from '@ghostfolio/helper/interfaces'; import { PortfolioItem } from '@ghostfolio/helper/interfaces'; import { PortfolioOverview } from '@ghostfolio/helper/interfaces'; diff --git a/libs/helper/src/lib/interfaces/index.ts b/libs/helper/src/lib/interfaces/index.ts index bba58b117..61f40181c 100644 --- a/libs/helper/src/lib/interfaces/index.ts +++ b/libs/helper/src/lib/interfaces/index.ts @@ -2,5 +2,14 @@ import { Access } from './access.interface'; import { InfoItem } from './info-item.interface'; import { PortfolioItem } from './portfolio-item.interface'; import { PortfolioOverview } from './portfolio-overview.interface'; +import { PortfolioPerformance } from './portfolio-performance.interface'; +import { Position } from './position.interface'; -export { Access, InfoItem, PortfolioItem, PortfolioOverview }; +export { + Access, + InfoItem, + PortfolioItem, + PortfolioOverview, + PortfolioPerformance, + Position +}; diff --git a/libs/helper/src/lib/interfaces/portfolio-item.interface.ts b/libs/helper/src/lib/interfaces/portfolio-item.interface.ts index 3c1dd3ae3..0891ad3a0 100644 --- a/libs/helper/src/lib/interfaces/portfolio-item.interface.ts +++ b/libs/helper/src/lib/interfaces/portfolio-item.interface.ts @@ -1,4 +1,4 @@ -import { Currency } from '@prisma/client'; +import { Position } from '@ghostfolio/helper/interfaces'; export interface PortfolioItem { date: string; @@ -7,14 +7,3 @@ export interface PortfolioItem { positions: { [symbol: string]: Position }; value: number; } - -export interface Position { - averagePrice: number; - currency: Currency; - firstBuyDate: string; - investment: number; - investmentInOriginalCurrency?: number; - marketPrice?: number; - quantity: number; - transactionCount: number; -} diff --git a/apps/api/src/app/portfolio/interfaces/portfolio-performance.interface.ts b/libs/helper/src/lib/interfaces/portfolio-performance.interface.ts similarity index 100% rename from apps/api/src/app/portfolio/interfaces/portfolio-performance.interface.ts rename to libs/helper/src/lib/interfaces/portfolio-performance.interface.ts diff --git a/libs/helper/src/lib/interfaces/position.interface.ts b/libs/helper/src/lib/interfaces/position.interface.ts new file mode 100644 index 000000000..4094a0e79 --- /dev/null +++ b/libs/helper/src/lib/interfaces/position.interface.ts @@ -0,0 +1,12 @@ +import { Currency } from '@prisma/client'; + +export interface Position { + averagePrice: number; + currency: Currency; + firstBuyDate: string; + investment: number; + investmentInOriginalCurrency?: number; + marketPrice?: number; + quantity: number; + transactionCount: number; +}