From 768e5509356891574a1e6abae4f7543e150c86bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Szymon=20=C5=81=C4=85giewka?= Date: Sun, 4 Oct 2026 21:32:44 +0200 Subject: [PATCH] Task/migrate app to prisma-client generated code --- apps/api/eslint.config.cjs | 5 +---- apps/api/src/app/access/access.controller.ts | 2 +- apps/api/src/app/access/access.service.ts | 2 +- .../account-balance.controller.ts | 2 +- .../account-balance/account-balance.service.ts | 2 +- apps/api/src/app/account/account.controller.ts | 2 +- apps/api/src/app/account/account.service.ts | 10 +++++----- .../app/activities/activities-filter.dto.ts | 2 +- .../app/activities/activities.controller.ts | 2 +- .../app/activities/activities.service.spec.ts | 7 ++----- .../src/app/activities/activities.service.ts | 12 +++++------- .../src/app/activities/get-activities.dto.ts | 3 ++- apps/api/src/app/admin/admin.controller.ts | 7 ++++++- apps/api/src/app/admin/admin.service.ts | 18 ++++++++++-------- apps/api/src/app/asset/asset.controller.ts | 2 +- .../src/app/auth-device/auth-device.service.ts | 2 +- apps/api/src/app/auth/google.strategy.ts | 2 +- apps/api/src/app/auth/interfaces/interfaces.ts | 3 +-- apps/api/src/app/auth/oidc.strategy.ts | 3 ++- .../asset-profiles.controller.ts | 3 ++- .../asset-profiles.service.spec.ts | 3 ++- .../asset-profiles/asset-profiles.service.ts | 7 ++++++- .../asset-profiles/get-asset-profiles.dto.ts | 2 +- .../benchmarks/benchmarks.controller.ts | 2 +- .../ghostfolio/ghostfolio.service.ts | 3 ++- .../market-data/market-data.controller.ts | 3 ++- .../src/app/endpoints/mcp/mcp.schemas.spec.ts | 3 +-- apps/api/src/app/endpoints/mcp/mcp.schemas.ts | 6 +++++- .../src/app/endpoints/mcp/mcp.service.spec.ts | 6 +++--- .../src/app/endpoints/mcp/mcp.test-utils.ts | 2 +- .../src/app/endpoints/public/public.service.ts | 2 +- .../src/app/endpoints/tags/tags.controller.ts | 2 +- .../watchlist/watchlist.controller.ts | 2 +- .../endpoints/watchlist/watchlist.service.ts | 2 +- apps/api/src/app/export/export.service.ts | 3 ++- apps/api/src/app/health/health.controller.ts | 2 +- apps/api/src/app/health/health.service.ts | 2 +- .../api/src/app/import/import-data.dto.spec.ts | 3 ++- apps/api/src/app/import/import.controller.ts | 2 +- apps/api/src/app/import/import.service.spec.ts | 3 ++- apps/api/src/app/import/import.service.ts | 3 ++- .../asset-profile-to-create.interface.ts | 2 +- apps/api/src/app/info/info.service.ts | 2 +- apps/api/src/app/logo/logo.controller.ts | 2 +- apps/api/src/app/logo/logo.service.ts | 2 +- .../src/app/platform/platform.controller.ts | 2 +- apps/api/src/app/platform/platform.service.ts | 2 +- .../calculator/portfolio-calculator.ts | 2 +- .../roai/portfolio-calculator-cash.spec.ts | 2 +- .../portfolio-calculator-stock-split.spec.ts | 3 ++- .../app/portfolio/current-rate.service.mock.ts | 2 +- .../app/portfolio/current-rate.service.spec.ts | 8 ++------ .../interfaces/holding-balance.interface.ts | 4 +++- .../src/app/portfolio/portfolio.controller.ts | 2 +- .../app/portfolio/portfolio.service.spec.ts | 3 ++- .../api/src/app/portfolio/portfolio.service.ts | 17 +++++++---------- .../app/portfolio/update-holding-tags.dto.ts | 3 ++- .../app/subscription/subscription.service.ts | 2 +- apps/api/src/app/symbol/symbol.controller.ts | 2 +- apps/api/src/app/user/user.controller.ts | 2 +- apps/api/src/app/user/user.service.ts | 3 ++- apps/api/src/dependencies.ts | 3 ++- apps/api/src/dtos/filter.dto.ts | 2 +- apps/api/src/helper/account.helper.ts | 2 +- apps/api/src/helper/activity.helper.ts | 3 ++- apps/api/src/helper/data-source.helper.spec.ts | 3 +-- apps/api/src/helper/data-source.helper.ts | 3 ++- apps/api/src/helper/portfolio.helper.ts | 3 +-- ...sform-data-source-in-request.interceptor.ts | 2 +- ...form-data-source-in-response.interceptor.ts | 2 +- .../account-cluster-risk/current-investment.ts | 3 +-- .../asset-profile-split.helper.spec.ts | 3 ++- .../asset-profile-split.helper.ts | 2 +- .../asset-profile-split.service.spec.ts | 4 ++-- .../asset-profile-split.service.ts | 2 +- .../services/benchmark/benchmark.service.ts | 2 +- .../configuration/configuration.service.ts | 2 +- .../alpha-vantage/alpha-vantage.service.ts | 3 ++- .../coingecko/coingecko.service.ts | 12 ++++++------ .../data-enhancer/data-enhancer.service.ts | 2 +- .../data-enhancer/openfigi/openfigi.service.ts | 12 +++++------- .../trackinsight/trackinsight.service.ts | 2 +- .../yahoo-finance/yahoo-finance.service.ts | 11 +++++------ .../data-provider/data-provider.service.ts | 7 ++++++- .../eod-historical-data.service.ts | 10 +++++----- .../financial-modeling-prep.service.ts | 10 +++++----- .../ghostfolio/ghostfolio.service.ts | 3 ++- .../google-sheets/google-sheets.service.ts | 3 ++- .../interfaces/data-enhancer.interface.ts | 2 +- .../interfaces/data-provider.interface.ts | 4 ++-- .../manual/manual.service.spec.ts | 3 +-- .../data-provider/manual/manual.service.ts | 3 ++- .../rapid-api/rapid-api.service.ts | 3 ++- .../yahoo-finance/yahoo-finance.service.ts | 3 ++- .../impersonation.service.spec.ts | 2 +- .../impersonation/impersonation.service.ts | 3 ++- .../market-data/market-data.service.ts | 8 ++------ .../holdings-table-context.interface.ts | 2 +- .../portfolio-table.service.spec.ts | 7 +++++-- .../portfolio-table/portfolio-table.service.ts | 6 +++--- apps/api/src/services/prisma/prisma.service.ts | 3 ++- .../src/services/property/property.service.ts | 2 +- .../data-gathering.processor.spec.ts | 2 +- .../data-gathering/data-gathering.processor.ts | 2 +- .../data-gathering/data-gathering.service.ts | 2 +- .../symbol-profile/symbol-profile.service.ts | 10 +++++----- apps/api/src/services/tag/tag.service.ts | 2 +- eslint.config.cjs | 2 +- prisma/schema.prisma | 11 +++-------- prisma/seed.mts | 3 ++- tsconfig.base.json | 1 + 111 files changed, 222 insertions(+), 201 deletions(-) diff --git a/apps/api/eslint.config.cjs b/apps/api/eslint.config.cjs index 07054e44b9..043802a0df 100644 --- a/apps/api/eslint.config.cjs +++ b/apps/api/eslint.config.cjs @@ -21,10 +21,7 @@ module.exports = [ { files: ['**/*.ts', '**/*.tsx'], // Override or add rules here - rules: { - // TODO: Remove once the API uses the code generated by the new prisma-client generator - '@typescript-eslint/no-restricted-imports': 'off' - } + rules: {} }, { files: ['**/*.js', '**/*.jsx'], diff --git a/apps/api/src/app/access/access.controller.ts b/apps/api/src/app/access/access.controller.ts index f68b25d61c..5991cad7fc 100644 --- a/apps/api/src/app/access/access.controller.ts +++ b/apps/api/src/app/access/access.controller.ts @@ -12,6 +12,7 @@ import { Access, AccessSettings } from '@ghostfolio/common/interfaces'; import { permissions } from '@ghostfolio/common/permissions'; import { getScopesOfAccess } from '@ghostfolio/common/scopes'; import type { RequestWithUser } from '@ghostfolio/common/types'; +import type { Access as AccessModel } from '@ghostfolio/prisma/client'; import { Body, @@ -27,7 +28,6 @@ import { } from '@nestjs/common'; import { REQUEST } from '@nestjs/core'; import { AuthGuard } from '@nestjs/passport'; -import { Access as AccessModel } from '@prisma/client'; import { StatusCodes, getReasonPhrase } from 'http-status-codes'; import { AccessService } from './access.service'; diff --git a/apps/api/src/app/access/access.service.ts b/apps/api/src/app/access/access.service.ts index 40dd467c9d..0a23cfbbfb 100644 --- a/apps/api/src/app/access/access.service.ts +++ b/apps/api/src/app/access/access.service.ts @@ -1,9 +1,9 @@ import { PrismaService } from '@ghostfolio/api/services/prisma/prisma.service'; import { AccessSettings, Filter } from '@ghostfolio/common/interfaces'; import { AccessWithGranteeUser } from '@ghostfolio/common/types'; +import type { Access, Prisma } from '@ghostfolio/prisma/client'; import { Injectable } from '@nestjs/common'; -import { Access, Prisma } from '@prisma/client'; import { isBefore, isToday, isValid } from 'date-fns'; @Injectable() diff --git a/apps/api/src/app/account-balance/account-balance.controller.ts b/apps/api/src/app/account-balance/account-balance.controller.ts index a37001bc34..0ddd938303 100644 --- a/apps/api/src/app/account-balance/account-balance.controller.ts +++ b/apps/api/src/app/account-balance/account-balance.controller.ts @@ -7,6 +7,7 @@ import { CreateAccountBalanceDto } from '@ghostfolio/common/dtos'; import { permissions } from '@ghostfolio/common/permissions'; import { scopes } from '@ghostfolio/common/scopes'; import type { ImpersonationContext } from '@ghostfolio/common/types'; +import type { AccountBalance } from '@ghostfolio/prisma/client'; import { Controller, @@ -17,7 +18,6 @@ import { Param, UseInterceptors } from '@nestjs/common'; -import { AccountBalance } from '@prisma/client'; import { StatusCodes, getReasonPhrase } from 'http-status-codes'; import { AccountBalanceService } from './account-balance.service'; diff --git a/apps/api/src/app/account-balance/account-balance.service.ts b/apps/api/src/app/account-balance/account-balance.service.ts index ad990c66bd..b201ec2a78 100644 --- a/apps/api/src/app/account-balance/account-balance.service.ts +++ b/apps/api/src/app/account-balance/account-balance.service.ts @@ -18,10 +18,10 @@ import { Filter, HistoricalDataItem } from '@ghostfolio/common/interfaces'; +import type { AccountBalance, Prisma } from '@ghostfolio/prisma/client'; import { Injectable } from '@nestjs/common'; import { EventEmitter2 } from '@nestjs/event-emitter'; -import { AccountBalance, Prisma } from '@prisma/client'; import { Big } from 'big.js'; import { endOfToday, format, min, parseISO } from 'date-fns'; import { groupBy } from 'lodash-es'; diff --git a/apps/api/src/app/account/account.controller.ts b/apps/api/src/app/account/account.controller.ts index f2ef1a9596..653cbc55b9 100644 --- a/apps/api/src/app/account/account.controller.ts +++ b/apps/api/src/app/account/account.controller.ts @@ -19,6 +19,7 @@ import { import { permissions } from '@ghostfolio/common/permissions'; import { scopes } from '@ghostfolio/common/scopes'; import type { ImpersonationContext } from '@ghostfolio/common/types'; +import type { Account as AccountModel } from '@ghostfolio/prisma/client'; import { Body, @@ -32,7 +33,6 @@ import { Query, UseInterceptors } from '@nestjs/common'; -import { Account as AccountModel } from '@prisma/client'; import { StatusCodes, getReasonPhrase } from 'http-status-codes'; import { AccountService } from './account.service'; diff --git a/apps/api/src/app/account/account.service.ts b/apps/api/src/app/account/account.service.ts index d1a895a5a3..150c680a39 100644 --- a/apps/api/src/app/account/account.service.ts +++ b/apps/api/src/app/account/account.service.ts @@ -14,10 +14,7 @@ import { } from '@ghostfolio/common/helper'; import { Filter } from '@ghostfolio/common/interfaces'; import { AccountWithBalance } from '@ghostfolio/common/types'; - -import { Injectable } from '@nestjs/common'; -import { EventEmitter2 } from '@nestjs/event-emitter'; -import { +import type { Account, AccountBalance, Order, @@ -25,7 +22,10 @@ import { Prisma, SymbolProfile, Tag -} from '@prisma/client'; +} from '@ghostfolio/prisma/client'; + +import { Injectable } from '@nestjs/common'; +import { EventEmitter2 } from '@nestjs/event-emitter'; import { Big } from 'big.js'; import { format } from 'date-fns'; import { groupBy, isNil } from 'lodash-es'; diff --git a/apps/api/src/app/activities/activities-filter.dto.ts b/apps/api/src/app/activities/activities-filter.dto.ts index 17385148cc..129f309906 100644 --- a/apps/api/src/app/activities/activities-filter.dto.ts +++ b/apps/api/src/app/activities/activities-filter.dto.ts @@ -1,8 +1,8 @@ import { DATE_RANGE_PATTERN } from '@ghostfolio/api/dtos/date-range-filter.dto'; import { FilterDto } from '@ghostfolio/api/dtos/filter.dto'; import { DateRange } from '@ghostfolio/common/types'; +import { Type as ActivityType } from '@ghostfolio/prisma/enums'; -import { Type as ActivityType } from '@prisma/client'; import { Transform, TransformFnParams } from 'class-transformer'; import { IsEnum, IsOptional, Matches } from 'class-validator'; import { isString } from 'lodash-es'; diff --git a/apps/api/src/app/activities/activities.controller.ts b/apps/api/src/app/activities/activities.controller.ts index 28ce890449..275b714250 100644 --- a/apps/api/src/app/activities/activities.controller.ts +++ b/apps/api/src/app/activities/activities.controller.ts @@ -22,6 +22,7 @@ import { import { permissions } from '@ghostfolio/common/permissions'; import { scopes } from '@ghostfolio/common/scopes'; import type { ImpersonationContext } from '@ghostfolio/common/types'; +import type { Order, Prisma } from '@ghostfolio/prisma/client'; import { Body, @@ -35,7 +36,6 @@ import { Query, UseInterceptors } from '@nestjs/common'; -import { Order } from '@prisma/client'; import { parseISO } from 'date-fns'; import { StatusCodes, getReasonPhrase } from 'http-status-codes'; diff --git a/apps/api/src/app/activities/activities.service.spec.ts b/apps/api/src/app/activities/activities.service.spec.ts index 09aa64b0e2..874074e41b 100644 --- a/apps/api/src/app/activities/activities.service.spec.ts +++ b/apps/api/src/app/activities/activities.service.spec.ts @@ -14,12 +14,9 @@ import { } from '@ghostfolio/common/config'; import { parseDate } from '@ghostfolio/common/helper'; import { Activity, Filter } from '@ghostfolio/common/interfaces'; +import type { AssetProfileSplit } from '@ghostfolio/prisma/client'; +import { DataSource, Type as ActivityType } from '@ghostfolio/prisma/enums'; -import { - AssetProfileSplit, - DataSource, - Type as ActivityType -} from '@prisma/client'; import { Big } from 'big.js'; import { ActivitiesService } from './activities.service'; diff --git a/apps/api/src/app/activities/activities.service.ts b/apps/api/src/app/activities/activities.service.ts index 1c933956a8..6169bbba8b 100644 --- a/apps/api/src/app/activities/activities.service.ts +++ b/apps/api/src/app/activities/activities.service.ts @@ -47,18 +47,16 @@ import { Filter } from '@ghostfolio/common/interfaces'; import { OrderWithAccount } from '@ghostfolio/common/types'; - -import { Injectable } from '@nestjs/common'; -import { EventEmitter2 } from '@nestjs/event-emitter'; +import type { Order, Prisma, Tag } from '@ghostfolio/prisma/client'; import { AssetClass, AssetSubClass, DataSource, - Order, - Prisma, - Tag, Type as ActivityType -} from '@prisma/client'; +} from '@ghostfolio/prisma/enums'; + +import { Injectable } from '@nestjs/common'; +import { EventEmitter2 } from '@nestjs/event-emitter'; import { Big } from 'big.js'; import { groupBy, omit, uniqBy } from 'lodash-es'; import { randomUUID } from 'node:crypto'; diff --git a/apps/api/src/app/activities/get-activities.dto.ts b/apps/api/src/app/activities/get-activities.dto.ts index 0430a89c1d..43cee2881e 100644 --- a/apps/api/src/app/activities/get-activities.dto.ts +++ b/apps/api/src/app/activities/get-activities.dto.ts @@ -1,4 +1,5 @@ -import { Prisma } from '@prisma/client'; +import { Prisma } from '@ghostfolio/prisma/client'; + import { Type } from 'class-transformer'; import { IsIn, IsInt, IsOptional, Min } from 'class-validator'; diff --git a/apps/api/src/app/admin/admin.controller.ts b/apps/api/src/app/admin/admin.controller.ts index f315580ca2..f12635bb4c 100644 --- a/apps/api/src/app/admin/admin.controller.ts +++ b/apps/api/src/app/admin/admin.controller.ts @@ -36,6 +36,12 @@ import type { PropertyKey, RequestWithUser } from '@ghostfolio/common/types'; +import type { + MarketData, + Prisma, + SymbolProfile +} from '@ghostfolio/prisma/client'; +import { DataSource } from '@ghostfolio/prisma/enums'; import { utc } from '@date-fns/utc'; import { @@ -57,7 +63,6 @@ import { } from '@nestjs/common'; import { REQUEST } from '@nestjs/core'; import { AuthGuard } from '@nestjs/passport'; -import { DataSource, MarketData, Prisma, SymbolProfile } from '@prisma/client'; import { isDate, parseISO } from 'date-fns'; import { StatusCodes, getReasonPhrase } from 'http-status-codes'; diff --git a/apps/api/src/app/admin/admin.service.ts b/apps/api/src/app/admin/admin.service.ts index aedc8e4d0b..ad26370ac1 100644 --- a/apps/api/src/app/admin/admin.service.ts +++ b/apps/api/src/app/admin/admin.service.ts @@ -29,6 +29,16 @@ import { EnhancedAssetProfile } from '@ghostfolio/common/interfaces'; import { PropertyKey } from '@ghostfolio/common/types'; +import { + Prisma, + type Property, + type SymbolProfile +} from '@ghostfolio/prisma/client'; +import { + AssetClass, + AssetSubClass, + DataSource +} from '@ghostfolio/prisma/enums'; import { BadRequestException, @@ -39,14 +49,6 @@ import { Logger, NotFoundException } from '@nestjs/common'; -import { - AssetClass, - AssetSubClass, - DataSource, - Prisma, - Property, - SymbolProfile -} from '@prisma/client'; import { differenceInDays } from 'date-fns'; import { StatusCodes, getReasonPhrase } from 'http-status-codes'; import { randomUUID } from 'node:crypto'; diff --git a/apps/api/src/app/asset/asset.controller.ts b/apps/api/src/app/asset/asset.controller.ts index 352d3e18b1..e8449b3c41 100644 --- a/apps/api/src/app/asset/asset.controller.ts +++ b/apps/api/src/app/asset/asset.controller.ts @@ -2,9 +2,9 @@ import { AssetProfilesService } from '@ghostfolio/api/app/endpoints/asset-profil import { TransformDataSourceInRequestInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.interceptor'; import { TransformDataSourceInResponseInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-response/transform-data-source-in-response.interceptor'; import type { AssetResponse } from '@ghostfolio/common/interfaces'; +import { DataSource } from '@ghostfolio/prisma/enums'; import { Controller, Get, Param, UseInterceptors } from '@nestjs/common'; -import { DataSource } from '@prisma/client'; import { pick } from 'lodash-es'; @Controller('asset') diff --git a/apps/api/src/app/auth-device/auth-device.service.ts b/apps/api/src/app/auth-device/auth-device.service.ts index 59208a1f37..84be423ff8 100644 --- a/apps/api/src/app/auth-device/auth-device.service.ts +++ b/apps/api/src/app/auth-device/auth-device.service.ts @@ -1,7 +1,7 @@ import { PrismaService } from '@ghostfolio/api/services/prisma/prisma.service'; +import type { AuthDevice, Prisma } from '@ghostfolio/prisma/client'; import { Injectable } from '@nestjs/common'; -import { AuthDevice, Prisma } from '@prisma/client'; @Injectable() export class AuthDeviceService { diff --git a/apps/api/src/app/auth/google.strategy.ts b/apps/api/src/app/auth/google.strategy.ts index 53720c383a..c8c8c867a8 100644 --- a/apps/api/src/app/auth/google.strategy.ts +++ b/apps/api/src/app/auth/google.strategy.ts @@ -1,8 +1,8 @@ import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service'; +import { Provider } from '@ghostfolio/prisma/enums'; import { Injectable, Logger } from '@nestjs/common'; import { PassportStrategy } from '@nestjs/passport'; -import { Provider } from '@prisma/client'; import { DoneCallback } from 'passport'; import { Profile, Strategy } from 'passport-google-oauth20'; diff --git a/apps/api/src/app/auth/interfaces/interfaces.ts b/apps/api/src/app/auth/interfaces/interfaces.ts index 7ddfe41d22..59967b5a5c 100644 --- a/apps/api/src/app/auth/interfaces/interfaces.ts +++ b/apps/api/src/app/auth/interfaces/interfaces.ts @@ -1,6 +1,5 @@ import { AuthDeviceDto } from '@ghostfolio/common/dtos'; - -import { Provider } from '@prisma/client'; +import type { Provider } from '@ghostfolio/prisma/enums'; export interface AuthDeviceDialogParams { authDevice: AuthDeviceDto; diff --git a/apps/api/src/app/auth/oidc.strategy.ts b/apps/api/src/app/auth/oidc.strategy.ts index 30c7673c76..05854e63f2 100644 --- a/apps/api/src/app/auth/oidc.strategy.ts +++ b/apps/api/src/app/auth/oidc.strategy.ts @@ -1,6 +1,7 @@ +import { Provider } from '@ghostfolio/prisma/enums'; + import { Injectable, Logger } from '@nestjs/common'; import { PassportStrategy } from '@nestjs/passport'; -import { Provider } from '@prisma/client'; import { Request } from 'express'; import { Strategy, type StrategyOptions } from 'passport-openidconnect'; diff --git a/apps/api/src/app/endpoints/asset-profiles/asset-profiles.controller.ts b/apps/api/src/app/endpoints/asset-profiles/asset-profiles.controller.ts index 58f19800e8..84d342a0d9 100644 --- a/apps/api/src/app/endpoints/asset-profiles/asset-profiles.controller.ts +++ b/apps/api/src/app/endpoints/asset-profiles/asset-profiles.controller.ts @@ -18,6 +18,8 @@ import { import { hasPermission } from '@ghostfolio/common/permissions'; import { permissions } from '@ghostfolio/common/permissions'; import type { RequestWithUser } from '@ghostfolio/common/types'; +import type { AssetProfileSplit } from '@ghostfolio/prisma/client'; +import { DataSource } from '@ghostfolio/prisma/enums'; import { Body, @@ -35,7 +37,6 @@ import { } from '@nestjs/common'; import { REQUEST } from '@nestjs/core'; import { AuthGuard } from '@nestjs/passport'; -import { AssetProfileSplit, DataSource } from '@prisma/client'; import { parseISO } from 'date-fns'; import { StatusCodes, getReasonPhrase } from 'http-status-codes'; diff --git a/apps/api/src/app/endpoints/asset-profiles/asset-profiles.service.spec.ts b/apps/api/src/app/endpoints/asset-profiles/asset-profiles.service.spec.ts index e6c483ebf6..4baa72f6b4 100644 --- a/apps/api/src/app/endpoints/asset-profiles/asset-profiles.service.spec.ts +++ b/apps/api/src/app/endpoints/asset-profiles/asset-profiles.service.spec.ts @@ -2,10 +2,11 @@ import { ActivitiesService } from '@ghostfolio/api/app/activities/activities.ser import { PortfolioChangedEvent } from '@ghostfolio/api/events/portfolio-changed.event'; import { AssetProfileSplitService } from '@ghostfolio/api/services/asset-profile-split/asset-profile-split.service'; import { DataGatheringService } from '@ghostfolio/api/services/queues/data-gathering/data-gathering.service'; +import type { AssetProfileSplit } from '@ghostfolio/prisma/client'; +import { DataSource } from '@ghostfolio/prisma/enums'; import { NotFoundException } from '@nestjs/common'; import { EventEmitter2 } from '@nestjs/event-emitter'; -import { AssetProfileSplit, DataSource } from '@prisma/client'; import { AssetProfilesService } from './asset-profiles.service'; diff --git a/apps/api/src/app/endpoints/asset-profiles/asset-profiles.service.ts b/apps/api/src/app/endpoints/asset-profiles/asset-profiles.service.ts index 4a2507e697..3e6b8b522e 100644 --- a/apps/api/src/app/endpoints/asset-profiles/asset-profiles.service.ts +++ b/apps/api/src/app/endpoints/asset-profiles/asset-profiles.service.ts @@ -25,10 +25,15 @@ import { Filter } from '@ghostfolio/common/interfaces'; import { MarketDataPreset } from '@ghostfolio/common/types'; +import { Prisma } from '@ghostfolio/prisma/client'; +import { + AssetClass, + AssetSubClass, + DataSource +} from '@ghostfolio/prisma/enums'; import { Injectable, Logger, NotFoundException } from '@nestjs/common'; import { EventEmitter2 } from '@nestjs/event-emitter'; -import { AssetClass, AssetSubClass, DataSource, Prisma } from '@prisma/client'; import { groupBy } from 'lodash-es'; @Injectable() diff --git a/apps/api/src/app/endpoints/asset-profiles/get-asset-profiles.dto.ts b/apps/api/src/app/endpoints/asset-profiles/get-asset-profiles.dto.ts index 562a753918..2659996459 100644 --- a/apps/api/src/app/endpoints/asset-profiles/get-asset-profiles.dto.ts +++ b/apps/api/src/app/endpoints/asset-profiles/get-asset-profiles.dto.ts @@ -1,7 +1,7 @@ import { SEARCH_QUERY_MAXIMUM_LENGTH } from '@ghostfolio/common/config'; import { MarketDataPreset } from '@ghostfolio/common/types'; +import type { Prisma } from '@ghostfolio/prisma/client'; -import { Prisma } from '@prisma/client'; import { Type } from 'class-transformer'; import { IsIn, diff --git a/apps/api/src/app/endpoints/benchmarks/benchmarks.controller.ts b/apps/api/src/app/endpoints/benchmarks/benchmarks.controller.ts index 0930eb5b17..2b33c92197 100644 --- a/apps/api/src/app/endpoints/benchmarks/benchmarks.controller.ts +++ b/apps/api/src/app/endpoints/benchmarks/benchmarks.controller.ts @@ -16,6 +16,7 @@ import type { import { permissions } from '@ghostfolio/common/permissions'; import { scopes } from '@ghostfolio/common/scopes'; import type { ImpersonationContext } from '@ghostfolio/common/types'; +import { DataSource } from '@ghostfolio/prisma/enums'; import { Body, @@ -30,7 +31,6 @@ import { UseInterceptors } from '@nestjs/common'; import { AuthGuard } from '@nestjs/passport'; -import { DataSource } from '@prisma/client'; import { StatusCodes, getReasonPhrase } from 'http-status-codes'; import { BenchmarksService } from './benchmarks.service'; diff --git a/apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.service.ts b/apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.service.ts index 4042241449..b93e501928 100644 --- a/apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.service.ts +++ b/apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.service.ts @@ -35,9 +35,10 @@ import { QuotesResponse } from '@ghostfolio/common/interfaces'; import { UserWithSettings } from '@ghostfolio/common/types'; +import type { SymbolProfile } from '@ghostfolio/prisma/client'; +import { DataSource } from '@ghostfolio/prisma/enums'; import { Injectable, Logger } from '@nestjs/common'; -import { DataSource, SymbolProfile } from '@prisma/client'; import { Big } from 'big.js'; import { addMilliseconds, isBefore } from 'date-fns'; import { isEmpty } from 'lodash-es'; diff --git a/apps/api/src/app/endpoints/market-data/market-data.controller.ts b/apps/api/src/app/endpoints/market-data/market-data.controller.ts index 73c8ad4451..14aa98bc5a 100644 --- a/apps/api/src/app/endpoints/market-data/market-data.controller.ts +++ b/apps/api/src/app/endpoints/market-data/market-data.controller.ts @@ -9,6 +9,8 @@ import { getCurrencyFromSymbol, isCurrency } from '@ghostfolio/common/helper'; import { MarketDataOfMarketsResponse } from '@ghostfolio/common/interfaces'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; import type { RequestWithUser } from '@ghostfolio/common/types'; +import type { Prisma } from '@ghostfolio/prisma/client'; +import { DataSource } from '@ghostfolio/prisma/enums'; import { Body, @@ -24,7 +26,6 @@ import { } from '@nestjs/common'; import { REQUEST } from '@nestjs/core'; import { AuthGuard } from '@nestjs/passport'; -import { DataSource, Prisma } from '@prisma/client'; import { parseISO } from 'date-fns'; import { getReasonPhrase, StatusCodes } from 'http-status-codes'; diff --git a/apps/api/src/app/endpoints/mcp/mcp.schemas.spec.ts b/apps/api/src/app/endpoints/mcp/mcp.schemas.spec.ts index e4893c2a7b..4738244962 100644 --- a/apps/api/src/app/endpoints/mcp/mcp.schemas.spec.ts +++ b/apps/api/src/app/endpoints/mcp/mcp.schemas.spec.ts @@ -7,8 +7,7 @@ import { SEARCH_QUERY_MINIMUM_LENGTH, SYMBOL_MAXIMUM_LENGTH } from '@ghostfolio/common/config'; - -import { DataSource } from '@prisma/client'; +import { DataSource } from '@ghostfolio/prisma/enums'; import { GET_ACCOUNTS_PARAMETERS, diff --git a/apps/api/src/app/endpoints/mcp/mcp.schemas.ts b/apps/api/src/app/endpoints/mcp/mcp.schemas.ts index 1b200e0119..120df5b434 100644 --- a/apps/api/src/app/endpoints/mcp/mcp.schemas.ts +++ b/apps/api/src/app/endpoints/mcp/mcp.schemas.ts @@ -14,8 +14,12 @@ import { isValidCurrencyCode, isValidDateAfter1970 } from '@ghostfolio/common/helper'; +import { + AssetClass, + DataSource, + Type as ActivityType +} from '@ghostfolio/prisma/enums'; -import { AssetClass, DataSource, Type as ActivityType } from '@prisma/client'; import { z } from 'zod'; const DATA_SOURCE_PARAMETER_ERROR = `Invalid option: expected one of ${Object.values(DataSource).join('|')} or a data source as given by a tool`; diff --git a/apps/api/src/app/endpoints/mcp/mcp.service.spec.ts b/apps/api/src/app/endpoints/mcp/mcp.service.spec.ts index a013341179..09590652a1 100644 --- a/apps/api/src/app/endpoints/mcp/mcp.service.spec.ts +++ b/apps/api/src/app/endpoints/mcp/mcp.service.spec.ts @@ -13,14 +13,14 @@ import { import { Activity, Filter } from '@ghostfolio/common/interfaces'; import { permissions } from '@ghostfolio/common/permissions'; import type { UserWithSettings } from '@ghostfolio/common/types'; - -import { HttpException } from '@nestjs/common'; import { AssetClass, AssetSubClass, DataSource, Type as ActivityType -} from '@prisma/client'; +} from '@ghostfolio/prisma/enums'; + +import { HttpException } from '@nestjs/common'; import { McpService } from './mcp.service'; import { createActivity } from './mcp.test-utils'; diff --git a/apps/api/src/app/endpoints/mcp/mcp.test-utils.ts b/apps/api/src/app/endpoints/mcp/mcp.test-utils.ts index 84895a64ff..e09b140a2f 100644 --- a/apps/api/src/app/endpoints/mcp/mcp.test-utils.ts +++ b/apps/api/src/app/endpoints/mcp/mcp.test-utils.ts @@ -1,4 +1,4 @@ -import { Type as ActivityType } from '@prisma/client'; +import { Type as ActivityType } from '@ghostfolio/prisma/enums'; import { ActivityToImport } from './types/activity-to-import.type'; diff --git a/apps/api/src/app/endpoints/public/public.service.ts b/apps/api/src/app/endpoints/public/public.service.ts index c32df6d82d..f692c82e2c 100644 --- a/apps/api/src/app/endpoints/public/public.service.ts +++ b/apps/api/src/app/endpoints/public/public.service.ts @@ -11,9 +11,9 @@ import { AccessSettings, PublicPortfolioResponse } from '@ghostfolio/common/interfaces'; +import { Type as ActivityType } from '@ghostfolio/prisma/enums'; import { HttpException, Injectable } from '@nestjs/common'; -import { Type as ActivityType } from '@prisma/client'; import { Big } from 'big.js'; import { StatusCodes, getReasonPhrase } from 'http-status-codes'; diff --git a/apps/api/src/app/endpoints/tags/tags.controller.ts b/apps/api/src/app/endpoints/tags/tags.controller.ts index d464b7bb65..7669247229 100644 --- a/apps/api/src/app/endpoints/tags/tags.controller.ts +++ b/apps/api/src/app/endpoints/tags/tags.controller.ts @@ -6,6 +6,7 @@ import { CreateTagDto, UpdateTagDto } from '@ghostfolio/common/dtos'; import { isSystemTag } from '@ghostfolio/common/helper'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; import type { RequestWithUser } from '@ghostfolio/common/types'; +import type { Tag } from '@ghostfolio/prisma/client'; import { Body, @@ -21,7 +22,6 @@ import { } from '@nestjs/common'; import { REQUEST } from '@nestjs/core'; import { AuthGuard } from '@nestjs/passport'; -import { Tag } from '@prisma/client'; import { StatusCodes, getReasonPhrase } from 'http-status-codes'; @AllowDuringImpersonation() diff --git a/apps/api/src/app/endpoints/watchlist/watchlist.controller.ts b/apps/api/src/app/endpoints/watchlist/watchlist.controller.ts index 790f0b550e..61e1599a47 100644 --- a/apps/api/src/app/endpoints/watchlist/watchlist.controller.ts +++ b/apps/api/src/app/endpoints/watchlist/watchlist.controller.ts @@ -8,6 +8,7 @@ import { WatchlistResponse } from '@ghostfolio/common/interfaces'; import { permissions } from '@ghostfolio/common/permissions'; import { scopes } from '@ghostfolio/common/scopes'; import type { ImpersonationContext } from '@ghostfolio/common/types'; +import { DataSource } from '@ghostfolio/prisma/enums'; import { Body, @@ -19,7 +20,6 @@ import { Post, UseInterceptors } from '@nestjs/common'; -import { DataSource } from '@prisma/client'; import { StatusCodes, getReasonPhrase } from 'http-status-codes'; import { WatchlistService } from './watchlist.service'; diff --git a/apps/api/src/app/endpoints/watchlist/watchlist.service.ts b/apps/api/src/app/endpoints/watchlist/watchlist.service.ts index 925f49cd6b..4f7dc048ad 100644 --- a/apps/api/src/app/endpoints/watchlist/watchlist.service.ts +++ b/apps/api/src/app/endpoints/watchlist/watchlist.service.ts @@ -10,9 +10,9 @@ import { AssetProfileIdentifier, WatchlistResponse } from '@ghostfolio/common/interfaces'; +import type { Prisma } from '@ghostfolio/prisma/client'; import { BadRequestException, Injectable } from '@nestjs/common'; -import { Prisma } from '@prisma/client'; @Injectable() export class WatchlistService { diff --git a/apps/api/src/app/export/export.service.ts b/apps/api/src/app/export/export.service.ts index db08f62052..a387dbeaf0 100644 --- a/apps/api/src/app/export/export.service.ts +++ b/apps/api/src/app/export/export.service.ts @@ -8,9 +8,10 @@ import { Filter, UserSettings } from '@ghostfolio/common/interfaces'; +import type { Platform, Prisma } from '@ghostfolio/prisma/client'; +import { Type as ActivityType } from '@ghostfolio/prisma/enums'; import { Injectable } from '@nestjs/common'; -import { Platform, Prisma, Type as ActivityType } from '@prisma/client'; import { groupBy, uniqBy } from 'lodash-es'; @Injectable() diff --git a/apps/api/src/app/health/health.controller.ts b/apps/api/src/app/health/health.controller.ts index 32aae38e3c..7d4f091d12 100644 --- a/apps/api/src/app/health/health.controller.ts +++ b/apps/api/src/app/health/health.controller.ts @@ -6,6 +6,7 @@ import { DataProviderHealthResponse, LivenessHealthResponse } from '@ghostfolio/common/interfaces'; +import { DataSource } from '@ghostfolio/prisma/enums'; import { Controller, @@ -17,7 +18,6 @@ import { Res, UseInterceptors } from '@nestjs/common'; -import { DataSource } from '@prisma/client'; import { Response } from 'express'; import { StatusCodes, getReasonPhrase } from 'http-status-codes'; diff --git a/apps/api/src/app/health/health.service.ts b/apps/api/src/app/health/health.service.ts index 42a0be61b8..37bc14e8d7 100644 --- a/apps/api/src/app/health/health.service.ts +++ b/apps/api/src/app/health/health.service.ts @@ -3,9 +3,9 @@ import { DataEnhancerService } from '@ghostfolio/api/services/data-provider/data import { DataProviderService } from '@ghostfolio/api/services/data-provider/data-provider.service'; import { PropertyService } from '@ghostfolio/api/services/property/property.service'; import { PROPERTY_CURRENCIES } from '@ghostfolio/common/config'; +import { DataSource } from '@ghostfolio/prisma/enums'; import { Injectable } from '@nestjs/common'; -import { DataSource } from '@prisma/client'; @Injectable() export class HealthService { diff --git a/apps/api/src/app/import/import-data.dto.spec.ts b/apps/api/src/app/import/import-data.dto.spec.ts index b6cce2a739..1368588452 100644 --- a/apps/api/src/app/import/import-data.dto.spec.ts +++ b/apps/api/src/app/import/import-data.dto.spec.ts @@ -1,5 +1,6 @@ +import { DataSource, Type } from '@ghostfolio/prisma/enums'; + import { BadRequestException, ValidationPipe } from '@nestjs/common'; -import { DataSource, Type } from '@prisma/client'; import { readFileSync } from 'node:fs'; import { join } from 'node:path'; diff --git a/apps/api/src/app/import/import.controller.ts b/apps/api/src/app/import/import.controller.ts index 79fde28003..035141962b 100644 --- a/apps/api/src/app/import/import.controller.ts +++ b/apps/api/src/app/import/import.controller.ts @@ -5,6 +5,7 @@ import { TransformDataSourceInResponseInterceptor } from '@ghostfolio/api/interc import { ImportResponse } from '@ghostfolio/common/interfaces'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; import type { RequestWithUser } from '@ghostfolio/common/types'; +import { DataSource } from '@ghostfolio/prisma/enums'; import { Body, @@ -21,7 +22,6 @@ import { } from '@nestjs/common'; import { REQUEST } from '@nestjs/core'; import { AuthGuard } from '@nestjs/passport'; -import { DataSource } from '@prisma/client'; import { StatusCodes, getReasonPhrase } from 'http-status-codes'; import { ImportDataDto } from './import-data.dto'; diff --git a/apps/api/src/app/import/import.service.spec.ts b/apps/api/src/app/import/import.service.spec.ts index afabdbcb1f..d7ad74612e 100644 --- a/apps/api/src/app/import/import.service.spec.ts +++ b/apps/api/src/app/import/import.service.spec.ts @@ -13,8 +13,9 @@ import { AssetProfileIdentifier } from '@ghostfolio/common/interfaces'; import { UserWithSettings } from '@ghostfolio/common/types'; +import type { SymbolProfile } from '@ghostfolio/prisma/client'; +import { DataSource } from '@ghostfolio/prisma/enums'; -import { DataSource, SymbolProfile } from '@prisma/client'; import { parseISO } from 'date-fns'; import { ImportService } from './import.service'; diff --git a/apps/api/src/app/import/import.service.ts b/apps/api/src/app/import/import.service.ts index 80637ea4d6..2bcfa36015 100644 --- a/apps/api/src/app/import/import.service.ts +++ b/apps/api/src/app/import/import.service.ts @@ -41,9 +41,10 @@ import { OrderWithAccount, UserWithSettings } from '@ghostfolio/common/types'; +import { type Account, Prisma } from '@ghostfolio/prisma/client'; +import { DataSource } from '@ghostfolio/prisma/enums'; import { Injectable } from '@nestjs/common'; -import { Account, DataSource, Prisma } from '@prisma/client'; import { Big } from 'big.js'; import { isISIN } from 'class-validator'; import { isSameSecond, parseISO } from 'date-fns'; diff --git a/apps/api/src/app/import/interfaces/asset-profile-to-create.interface.ts b/apps/api/src/app/import/interfaces/asset-profile-to-create.interface.ts index 2787b7eb1e..5bbb559855 100644 --- a/apps/api/src/app/import/interfaces/asset-profile-to-create.interface.ts +++ b/apps/api/src/app/import/interfaces/asset-profile-to-create.interface.ts @@ -1,4 +1,4 @@ -import { Prisma } from '@prisma/client'; +import type { Prisma } from '@ghostfolio/prisma/client'; export interface AssetProfileToCreate { assetProfile: Prisma.SymbolProfileCreateInput; diff --git a/apps/api/src/app/info/info.service.ts b/apps/api/src/app/info/info.service.ts index 2a7382446c..32769b7c3d 100644 --- a/apps/api/src/app/info/info.service.ts +++ b/apps/api/src/app/info/info.service.ts @@ -21,10 +21,10 @@ import { } from '@ghostfolio/common/config'; import { InfoItem, Statistics } from '@ghostfolio/common/interfaces'; import { permissions } from '@ghostfolio/common/permissions'; +import type { MarketData } from '@ghostfolio/prisma/client'; import { Injectable } from '@nestjs/common'; import { JwtService } from '@nestjs/jwt'; -import { MarketData } from '@prisma/client'; import { subDays } from 'date-fns'; import { isNil } from 'lodash-es'; diff --git a/apps/api/src/app/logo/logo.controller.ts b/apps/api/src/app/logo/logo.controller.ts index 30c85e585e..e553538162 100644 --- a/apps/api/src/app/logo/logo.controller.ts +++ b/apps/api/src/app/logo/logo.controller.ts @@ -1,4 +1,5 @@ import { TransformDataSourceInRequestInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.interceptor'; +import { DataSource } from '@ghostfolio/prisma/enums'; import { Controller, @@ -9,7 +10,6 @@ import { Res, UseInterceptors } from '@nestjs/common'; -import { DataSource } from '@prisma/client'; import { Response } from 'express'; import ms from 'ms'; diff --git a/apps/api/src/app/logo/logo.service.ts b/apps/api/src/app/logo/logo.service.ts index e01e6cace0..de80b3c219 100644 --- a/apps/api/src/app/logo/logo.service.ts +++ b/apps/api/src/app/logo/logo.service.ts @@ -2,9 +2,9 @@ import { ConfigurationService } from '@ghostfolio/api/services/configuration/con import { FetchService } from '@ghostfolio/api/services/fetch/fetch.service'; import { SymbolProfileService } from '@ghostfolio/api/services/symbol-profile/symbol-profile.service'; import { AssetProfileIdentifier } from '@ghostfolio/common/interfaces'; +import { DataSource } from '@ghostfolio/prisma/enums'; import { HttpException, Injectable } from '@nestjs/common'; -import { DataSource } from '@prisma/client'; import { StatusCodes, getReasonPhrase } from 'http-status-codes'; @Injectable() diff --git a/apps/api/src/app/platform/platform.controller.ts b/apps/api/src/app/platform/platform.controller.ts index 6c0af45158..e9f9b9e1ca 100644 --- a/apps/api/src/app/platform/platform.controller.ts +++ b/apps/api/src/app/platform/platform.controller.ts @@ -3,6 +3,7 @@ import { HasPermission } from '@ghostfolio/api/decorators/has-permission.decorat import { HasPermissionGuard } from '@ghostfolio/api/guards/has-permission.guard'; import { CreatePlatformDto, UpdatePlatformDto } from '@ghostfolio/common/dtos'; import { permissions } from '@ghostfolio/common/permissions'; +import type { Platform } from '@ghostfolio/prisma/client'; import { Body, @@ -16,7 +17,6 @@ import { UseGuards } from '@nestjs/common'; import { AuthGuard } from '@nestjs/passport'; -import { Platform } from '@prisma/client'; import { StatusCodes, getReasonPhrase } from 'http-status-codes'; import { PlatformService } from './platform.service'; diff --git a/apps/api/src/app/platform/platform.service.ts b/apps/api/src/app/platform/platform.service.ts index 200b4de007..eb735e7e9e 100644 --- a/apps/api/src/app/platform/platform.service.ts +++ b/apps/api/src/app/platform/platform.service.ts @@ -1,7 +1,7 @@ import { PrismaService } from '@ghostfolio/api/services/prisma/prisma.service'; +import type { Platform, Prisma } from '@ghostfolio/prisma/client'; import { Injectable } from '@nestjs/common'; -import { Platform, Prisma } from '@prisma/client'; @Injectable() export class PlatformService { diff --git a/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts b/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts index eb1e6f9fac..b04fc79764 100644 --- a/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts +++ b/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts @@ -49,9 +49,9 @@ import { } from '@ghostfolio/common/models'; import { GroupBy } from '@ghostfolio/common/types'; import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type'; +import { AssetSubClass, DataSource } from '@ghostfolio/prisma/enums'; import { Logger } from '@nestjs/common'; -import { AssetSubClass, DataSource } from '@prisma/client'; import { Big } from 'big.js'; import { plainToClass } from 'class-transformer'; import { diff --git a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-cash.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-cash.spec.ts index b98aa9e5f2..5da9d2bb23 100644 --- a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-cash.spec.ts +++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-cash.spec.ts @@ -21,8 +21,8 @@ import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/po import { parseDate } from '@ghostfolio/common/helper'; import { PortfolioSnapshotHolding } from '@ghostfolio/common/models'; import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type'; +import { DataSource } from '@ghostfolio/prisma/enums'; -import { DataSource } from '@prisma/client'; import { Big } from 'big.js'; import { eachDayOfInterval } from 'date-fns'; import { randomUUID } from 'node:crypto'; diff --git a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-stock-split.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-stock-split.spec.ts index f45e453734..b970c127d3 100644 --- a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-stock-split.spec.ts +++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-stock-split.spec.ts @@ -16,8 +16,9 @@ import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/po import { parseDate } from '@ghostfolio/common/helper'; import { Activity } from '@ghostfolio/common/interfaces'; import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type'; +import type { AssetProfileSplit } from '@ghostfolio/prisma/client'; +import { DataSource } from '@ghostfolio/prisma/enums'; -import { AssetProfileSplit, DataSource } from '@prisma/client'; import { Big } from 'big.js'; jest.mock('@ghostfolio/api/app/portfolio/current-rate.service', () => { diff --git a/apps/api/src/app/portfolio/current-rate.service.mock.ts b/apps/api/src/app/portfolio/current-rate.service.mock.ts index 18739ddab5..693eaf9b2d 100644 --- a/apps/api/src/app/portfolio/current-rate.service.mock.ts +++ b/apps/api/src/app/portfolio/current-rate.service.mock.ts @@ -1,6 +1,6 @@ import { parseDate, resetHours } from '@ghostfolio/common/helper'; +import { DataSource } from '@ghostfolio/prisma/enums'; -import { DataSource } from '@prisma/client'; import { addDays, eachDayOfInterval, diff --git a/apps/api/src/app/portfolio/current-rate.service.spec.ts b/apps/api/src/app/portfolio/current-rate.service.spec.ts index e7128b1389..da25d5dfb2 100644 --- a/apps/api/src/app/portfolio/current-rate.service.spec.ts +++ b/apps/api/src/app/portfolio/current-rate.service.spec.ts @@ -4,13 +4,9 @@ import { MarketDataService } from '@ghostfolio/api/services/market-data/market-d import { PropertyService } from '@ghostfolio/api/services/property/property.service'; import { resetHours } from '@ghostfolio/common/helper'; import { AssetProfileIdentifier } from '@ghostfolio/common/interfaces'; +import type { MarketData, Order } from '@ghostfolio/prisma/client'; +import { DataSource, Type as ActivityType } from '@ghostfolio/prisma/enums'; -import { - DataSource, - MarketData, - Order, - Type as ActivityType -} from '@prisma/client'; import { addDays, subDays } from 'date-fns'; import { CurrentRateService } from './current-rate.service'; diff --git a/apps/api/src/app/portfolio/interfaces/holding-balance.interface.ts b/apps/api/src/app/portfolio/interfaces/holding-balance.interface.ts index 2eace0ccbd..5043726de9 100644 --- a/apps/api/src/app/portfolio/interfaces/holding-balance.interface.ts +++ b/apps/api/src/app/portfolio/interfaces/holding-balance.interface.ts @@ -1,4 +1,6 @@ -import { AssetSubClass, DataSource, Tag } from '@prisma/client'; +import type { Tag } from '@ghostfolio/prisma/client'; +import type { AssetSubClass, DataSource } from '@ghostfolio/prisma/enums'; + import { Big } from 'big.js'; export interface HoldingBalance { diff --git a/apps/api/src/app/portfolio/portfolio.controller.ts b/apps/api/src/app/portfolio/portfolio.controller.ts index 45b7477e8b..49c2b0e0f4 100644 --- a/apps/api/src/app/portfolio/portfolio.controller.ts +++ b/apps/api/src/app/portfolio/portfolio.controller.ts @@ -32,6 +32,7 @@ import type { ImpersonationContext, RequestWithUser } from '@ghostfolio/common/types'; +import { DataSource } from '@ghostfolio/prisma/enums'; import { Body, @@ -46,7 +47,6 @@ import { Version } from '@nestjs/common'; import { REQUEST } from '@nestjs/core'; -import { DataSource } from '@prisma/client'; import { Big } from 'big.js'; import { StatusCodes, getReasonPhrase } from 'http-status-codes'; diff --git a/apps/api/src/app/portfolio/portfolio.service.spec.ts b/apps/api/src/app/portfolio/portfolio.service.spec.ts index 19af3615bc..d9819a1b32 100644 --- a/apps/api/src/app/portfolio/portfolio.service.spec.ts +++ b/apps/api/src/app/portfolio/portfolio.service.spec.ts @@ -23,8 +23,9 @@ import { PortfolioSummary } from '@ghostfolio/common/interfaces'; import { AccountWithBalance } from '@ghostfolio/common/types'; +import { Prisma } from '@ghostfolio/prisma/client'; +import { AssetClass, DataSource } from '@ghostfolio/prisma/enums'; -import { AssetClass, DataSource, Prisma } from '@prisma/client'; import { Big } from 'big.js'; import { randomUUID } from 'node:crypto'; diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index d906fd6aef..c1636ea7bc 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -77,20 +77,17 @@ import { UserWithSettings } from '@ghostfolio/common/types'; import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type'; - -import { utc } from '@date-fns/utc'; -import { Inject, Injectable, Logger } from '@nestjs/common'; -import { REQUEST } from '@nestjs/core'; +import type { Order, Platform, Prisma, Tag } from '@ghostfolio/prisma/client'; import { Type as ActivityType, AssetClass, AssetSubClass, - DataSource, - Order, - Platform, - Prisma, - Tag -} from '@prisma/client'; + DataSource +} from '@ghostfolio/prisma/enums'; + +import { utc } from '@date-fns/utc'; +import { Inject, Injectable, Logger } from '@nestjs/common'; +import { REQUEST } from '@nestjs/core'; import { Big } from 'big.js'; import { differenceInDays, diff --git a/apps/api/src/app/portfolio/update-holding-tags.dto.ts b/apps/api/src/app/portfolio/update-holding-tags.dto.ts index 11efe189d2..3616746ddf 100644 --- a/apps/api/src/app/portfolio/update-holding-tags.dto.ts +++ b/apps/api/src/app/portfolio/update-holding-tags.dto.ts @@ -1,4 +1,5 @@ -import { Tag } from '@prisma/client'; +import type { Tag } from '@ghostfolio/prisma/client'; + import { IsArray } from 'class-validator'; export class UpdateHoldingTagsDto { diff --git a/apps/api/src/app/subscription/subscription.service.ts b/apps/api/src/app/subscription/subscription.service.ts index 212fade0f6..afa0fc9e91 100644 --- a/apps/api/src/app/subscription/subscription.service.ts +++ b/apps/api/src/app/subscription/subscription.service.ts @@ -16,9 +16,9 @@ import { SubscriptionOfferKey, UserWithSettings } from '@ghostfolio/common/types'; +import { Prisma, type Subscription } from '@ghostfolio/prisma/client'; import { BadRequestException, Injectable, Logger } from '@nestjs/common'; -import { Prisma, Subscription } from '@prisma/client'; import { addMilliseconds, isBefore } from 'date-fns'; import ms, { StringValue } from 'ms'; import Stripe from 'stripe'; diff --git a/apps/api/src/app/symbol/symbol.controller.ts b/apps/api/src/app/symbol/symbol.controller.ts index cf26d39d54..e7f5a9230d 100644 --- a/apps/api/src/app/symbol/symbol.controller.ts +++ b/apps/api/src/app/symbol/symbol.controller.ts @@ -7,6 +7,7 @@ import { SymbolItem } from '@ghostfolio/common/interfaces'; import type { RequestWithUser } from '@ghostfolio/common/types'; +import { DataSource } from '@ghostfolio/prisma/enums'; import { utc } from '@date-fns/utc'; import { @@ -22,7 +23,6 @@ import { } from '@nestjs/common'; import { REQUEST } from '@nestjs/core'; import { AuthGuard } from '@nestjs/passport'; -import { DataSource } from '@prisma/client'; import { isValid, parseISO } from 'date-fns'; import { StatusCodes, getReasonPhrase } from 'http-status-codes'; import { isEmpty } from 'lodash-es'; diff --git a/apps/api/src/app/user/user.controller.ts b/apps/api/src/app/user/user.controller.ts index 32ac353351..c282d5a6c9 100644 --- a/apps/api/src/app/user/user.controller.ts +++ b/apps/api/src/app/user/user.controller.ts @@ -32,6 +32,7 @@ import type { ImpersonationContext, RequestWithUser } from '@ghostfolio/common/types'; +import type { User as UserModel } from '@ghostfolio/prisma/client'; import { Body, @@ -51,7 +52,6 @@ import { REQUEST } from '@nestjs/core'; import { JwtService } from '@nestjs/jwt'; import { AuthGuard } from '@nestjs/passport'; import { Throttle } from '@nestjs/throttler'; -import { User as UserModel } from '@prisma/client'; import { StatusCodes, getReasonPhrase } from 'http-status-codes'; import { merge, size } from 'lodash-es'; diff --git a/apps/api/src/app/user/user.service.ts b/apps/api/src/app/user/user.service.ts index 2e54a7ddc3..5b96a03f14 100644 --- a/apps/api/src/app/user/user.service.ts +++ b/apps/api/src/app/user/user.service.ts @@ -40,11 +40,12 @@ import { import { getScopesOfAccess } from '@ghostfolio/common/scopes'; import { UserWithSettings } from '@ghostfolio/common/types'; import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type'; +import { Prisma, type User } from '@ghostfolio/prisma/client'; +import { Role } from '@ghostfolio/prisma/enums'; import { Injectable, Logger } from '@nestjs/common'; import { EventEmitter2 } from '@nestjs/event-emitter'; import { InjectThrottlerStorage, ThrottlerStorage } from '@nestjs/throttler'; -import { Prisma, Role, User } from '@prisma/client'; import { differenceInDays, subDays } from 'date-fns'; import { isNil, without } from 'lodash-es'; import { createHmac } from 'node:crypto'; diff --git a/apps/api/src/dependencies.ts b/apps/api/src/dependencies.ts index acb7af3826..29be87c085 100644 --- a/apps/api/src/dependencies.ts +++ b/apps/api/src/dependencies.ts @@ -1,3 +1,4 @@ -// Dependencies required by .config/prisma.ts in Docker container +// Dependencies required by Prisma-generated code and .config/prisma.ts in Docker container +import '@prisma/client/runtime/client'; import 'dotenv'; import 'dotenv-expand'; diff --git a/apps/api/src/dtos/filter.dto.ts b/apps/api/src/dtos/filter.dto.ts index 84d9ffc0d0..9528708562 100644 --- a/apps/api/src/dtos/filter.dto.ts +++ b/apps/api/src/dtos/filter.dto.ts @@ -1,6 +1,6 @@ import { SYMBOL_MAXIMUM_LENGTH } from '@ghostfolio/common/config'; +import { AssetClass, DataSource } from '@ghostfolio/prisma/enums'; -import { AssetClass, DataSource } from '@prisma/client'; import { Transform, TransformFnParams } from 'class-transformer'; import { IsEnum, diff --git a/apps/api/src/helper/account.helper.ts b/apps/api/src/helper/account.helper.ts index 0ae1ae743f..20b68a9eae 100644 --- a/apps/api/src/helper/account.helper.ts +++ b/apps/api/src/helper/account.helper.ts @@ -1,7 +1,7 @@ import { TAG_ID_EXCLUDE_FROM_ANALYSIS } from '@ghostfolio/common/config'; import { getStartOfUtcDateOfTomorrow } from '@ghostfolio/common/helper'; +import type { Prisma } from '@ghostfolio/prisma/client'; -import { Prisma } from '@prisma/client'; import { isAfter } from 'date-fns'; export const WHERE_ACCOUNT_NOT_EXCLUDED: Prisma.AccountWhereInput = { diff --git a/apps/api/src/helper/activity.helper.ts b/apps/api/src/helper/activity.helper.ts index f7cb20505e..46088a276a 100644 --- a/apps/api/src/helper/activity.helper.ts +++ b/apps/api/src/helper/activity.helper.ts @@ -2,8 +2,9 @@ import { NON_INVESTMENT_ACTIVITY_TYPES, TAG_ID_DRAFT } from '@ghostfolio/common/config'; +import type { Prisma } from '@ghostfolio/prisma/client'; +import { Type as ActivityType } from '@ghostfolio/prisma/enums'; -import { Prisma, Type as ActivityType } from '@prisma/client'; import { endOfToday, isAfter } from 'date-fns'; import { uniqBy } from 'lodash-es'; diff --git a/apps/api/src/helper/data-source.helper.spec.ts b/apps/api/src/helper/data-source.helper.spec.ts index 3bfef82add..913a010626 100644 --- a/apps/api/src/helper/data-source.helper.spec.ts +++ b/apps/api/src/helper/data-source.helper.spec.ts @@ -1,6 +1,5 @@ import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service'; - -import { DataSource } from '@prisma/client'; +import { DataSource } from '@ghostfolio/prisma/enums'; import { encodeDataSource, diff --git a/apps/api/src/helper/data-source.helper.ts b/apps/api/src/helper/data-source.helper.ts index fb0ded3f1f..82fa3bcfc6 100644 --- a/apps/api/src/helper/data-source.helper.ts +++ b/apps/api/src/helper/data-source.helper.ts @@ -1,6 +1,7 @@ import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service'; +import type { Prisma } from '@ghostfolio/prisma/client'; +import { DataSource } from '@ghostfolio/prisma/enums'; -import { DataSource, Prisma } from '@prisma/client'; import { isEmpty } from 'lodash-es'; import { createHash } from 'node:crypto'; diff --git a/apps/api/src/helper/portfolio.helper.ts b/apps/api/src/helper/portfolio.helper.ts index b8152414bb..b7602c1bca 100644 --- a/apps/api/src/helper/portfolio.helper.ts +++ b/apps/api/src/helper/portfolio.helper.ts @@ -1,6 +1,5 @@ import { PortfolioDetails } from '@ghostfolio/common/interfaces'; - -import { Type as ActivityType } from '@prisma/client'; +import { Type as ActivityType } from '@ghostfolio/prisma/enums'; export function convertValuesToPercentages({ accounts, diff --git a/apps/api/src/interceptors/transform-data-source-in-request/transform-data-source-in-request.interceptor.ts b/apps/api/src/interceptors/transform-data-source-in-request/transform-data-source-in-request.interceptor.ts index 569ffc60ef..2f990da145 100644 --- a/apps/api/src/interceptors/transform-data-source-in-request/transform-data-source-in-request.interceptor.ts +++ b/apps/api/src/interceptors/transform-data-source-in-request/transform-data-source-in-request.interceptor.ts @@ -3,6 +3,7 @@ import { transformDataSourceInRequest } from '@ghostfolio/api/helper/data-source.helper'; import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service'; +import { DataSource } from '@ghostfolio/prisma/enums'; import { CallHandler, @@ -10,7 +11,6 @@ import { Injectable, NestInterceptor } from '@nestjs/common'; -import { DataSource } from '@prisma/client'; import { Observable } from 'rxjs'; @Injectable() diff --git a/apps/api/src/interceptors/transform-data-source-in-response/transform-data-source-in-response.interceptor.ts b/apps/api/src/interceptors/transform-data-source-in-response/transform-data-source-in-response.interceptor.ts index 296925af92..ed63c1cd72 100644 --- a/apps/api/src/interceptors/transform-data-source-in-response/transform-data-source-in-response.interceptor.ts +++ b/apps/api/src/interceptors/transform-data-source-in-response/transform-data-source-in-response.interceptor.ts @@ -6,6 +6,7 @@ import { import { redactPaths } from '@ghostfolio/api/helper/object.helper'; import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service'; import { hasRole } from '@ghostfolio/common/permissions'; +import { DataSource } from '@ghostfolio/prisma/enums'; import { CallHandler, @@ -13,7 +14,6 @@ import { Injectable, NestInterceptor } from '@nestjs/common'; -import { DataSource } from '@prisma/client'; import { Observable } from 'rxjs'; import { map } from 'rxjs/operators'; diff --git a/apps/api/src/models/rules/account-cluster-risk/current-investment.ts b/apps/api/src/models/rules/account-cluster-risk/current-investment.ts index de76c7686f..d77df6acf5 100644 --- a/apps/api/src/models/rules/account-cluster-risk/current-investment.ts +++ b/apps/api/src/models/rules/account-cluster-risk/current-investment.ts @@ -2,8 +2,7 @@ import { Rule } from '@ghostfolio/api/models/rule'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service'; import { PortfolioDetails, RuleSettings } from '@ghostfolio/common/interfaces'; - -import { Account } from '@prisma/client'; +import type { Account } from '@ghostfolio/prisma/client'; export class AccountClusterRiskCurrentInvestment extends Rule { private accounts: PortfolioDetails['accounts']; diff --git a/apps/api/src/services/asset-profile-split/asset-profile-split.helper.spec.ts b/apps/api/src/services/asset-profile-split/asset-profile-split.helper.spec.ts index 6d674255d6..142fca6e8b 100644 --- a/apps/api/src/services/asset-profile-split/asset-profile-split.helper.spec.ts +++ b/apps/api/src/services/asset-profile-split/asset-profile-split.helper.spec.ts @@ -5,8 +5,9 @@ import { import * as commonHelper from '@ghostfolio/common/helper'; import { parseDate } from '@ghostfolio/common/helper'; import { Activity } from '@ghostfolio/common/interfaces'; +import type { AssetProfileSplit } from '@ghostfolio/prisma/client'; +import { DataSource } from '@ghostfolio/prisma/enums'; -import { AssetProfileSplit, DataSource } from '@prisma/client'; import { Big } from 'big.js'; import { adjustActivityBySplits } from './asset-profile-split.helper'; diff --git a/apps/api/src/services/asset-profile-split/asset-profile-split.helper.ts b/apps/api/src/services/asset-profile-split/asset-profile-split.helper.ts index dda77a5aa3..a641506cb7 100644 --- a/apps/api/src/services/asset-profile-split/asset-profile-split.helper.ts +++ b/apps/api/src/services/asset-profile-split/asset-profile-split.helper.ts @@ -1,8 +1,8 @@ import { INVESTMENT_ACTIVITY_TYPES } from '@ghostfolio/common/config'; import { resetHours } from '@ghostfolio/common/helper'; import { Activity } from '@ghostfolio/common/interfaces'; +import type { AssetProfileSplit } from '@ghostfolio/prisma/client'; -import { AssetProfileSplit } from '@prisma/client'; import { Big } from 'big.js'; import { isBefore } from 'date-fns'; diff --git a/apps/api/src/services/asset-profile-split/asset-profile-split.service.spec.ts b/apps/api/src/services/asset-profile-split/asset-profile-split.service.spec.ts index be5d7caa31..e12c3b2eee 100644 --- a/apps/api/src/services/asset-profile-split/asset-profile-split.service.spec.ts +++ b/apps/api/src/services/asset-profile-split/asset-profile-split.service.spec.ts @@ -1,6 +1,6 @@ import { PrismaService } from '@ghostfolio/api/services/prisma/prisma.service'; - -import { AssetProfileSplit, DataSource } from '@prisma/client'; +import type { AssetProfileSplit } from '@ghostfolio/prisma/client'; +import { DataSource } from '@ghostfolio/prisma/enums'; import { AssetProfileSplitService } from './asset-profile-split.service'; diff --git a/apps/api/src/services/asset-profile-split/asset-profile-split.service.ts b/apps/api/src/services/asset-profile-split/asset-profile-split.service.ts index 31dd7935c0..0488fba0a6 100644 --- a/apps/api/src/services/asset-profile-split/asset-profile-split.service.ts +++ b/apps/api/src/services/asset-profile-split/asset-profile-split.service.ts @@ -1,9 +1,9 @@ import { PrismaService } from '@ghostfolio/api/services/prisma/prisma.service'; import { resetHours } from '@ghostfolio/common/helper'; import { AssetProfileIdentifier } from '@ghostfolio/common/interfaces'; +import type { AssetProfileSplit } from '@ghostfolio/prisma/client'; import { Injectable } from '@nestjs/common'; -import { AssetProfileSplit } from '@prisma/client'; @Injectable() export class AssetProfileSplitService { diff --git a/apps/api/src/services/benchmark/benchmark.service.ts b/apps/api/src/services/benchmark/benchmark.service.ts index 3c39848401..eb2d6a47c0 100644 --- a/apps/api/src/services/benchmark/benchmark.service.ts +++ b/apps/api/src/services/benchmark/benchmark.service.ts @@ -18,9 +18,9 @@ import { BenchmarkProperty, BenchmarkResponse } from '@ghostfolio/common/interfaces'; +import type { SymbolProfile } from '@ghostfolio/prisma/client'; import { Injectable, Logger } from '@nestjs/common'; -import { SymbolProfile } from '@prisma/client'; import { Big } from 'big.js'; import { addHours, isPast, subDays } from 'date-fns'; import { round, uniqBy } from 'lodash-es'; diff --git a/apps/api/src/services/configuration/configuration.service.ts b/apps/api/src/services/configuration/configuration.service.ts index 67c7ae5393..b6ba792cd2 100644 --- a/apps/api/src/services/configuration/configuration.service.ts +++ b/apps/api/src/services/configuration/configuration.service.ts @@ -10,9 +10,9 @@ import { DEFAULT_PROCESSOR_PORTFOLIO_SNAPSHOT_COMPUTATION_CONCURRENCY, DEFAULT_PROCESSOR_PORTFOLIO_SNAPSHOT_COMPUTATION_TIMEOUT } from '@ghostfolio/common/config'; +import { DataSource } from '@ghostfolio/prisma/enums'; import { Injectable } from '@nestjs/common'; -import { DataSource } from '@prisma/client'; import { bool, cleanEnv, diff --git a/apps/api/src/services/data-provider/alpha-vantage/alpha-vantage.service.ts b/apps/api/src/services/data-provider/alpha-vantage/alpha-vantage.service.ts index 799f1280b6..6d2104f434 100644 --- a/apps/api/src/services/data-provider/alpha-vantage/alpha-vantage.service.ts +++ b/apps/api/src/services/data-provider/alpha-vantage/alpha-vantage.service.ts @@ -15,9 +15,10 @@ import { DataProviderResponse, LookupResponse } from '@ghostfolio/common/interfaces'; +import type { SymbolProfile } from '@ghostfolio/prisma/client'; +import { DataSource } from '@ghostfolio/prisma/enums'; import { Injectable, OnModuleInit } from '@nestjs/common'; -import { DataSource, SymbolProfile } from '@prisma/client'; import Alphavantage from 'alphavantage'; import { format, isAfter, isBefore, parse } from 'date-fns'; diff --git a/apps/api/src/services/data-provider/coingecko/coingecko.service.ts b/apps/api/src/services/data-provider/coingecko/coingecko.service.ts index 208e23269c..9c0b32c46f 100644 --- a/apps/api/src/services/data-provider/coingecko/coingecko.service.ts +++ b/apps/api/src/services/data-provider/coingecko/coingecko.service.ts @@ -17,15 +17,15 @@ import { LookupItem, LookupResponse } from '@ghostfolio/common/interfaces'; - -import { utc } from '@date-fns/utc'; -import { Injectable, Logger, OnModuleInit } from '@nestjs/common'; +import type { SymbolProfile } from '@ghostfolio/prisma/client'; import { AssetClass, AssetSubClass, - DataSource, - SymbolProfile -} from '@prisma/client'; + DataSource +} from '@ghostfolio/prisma/enums'; + +import { utc } from '@date-fns/utc'; +import { Injectable, Logger, OnModuleInit } from '@nestjs/common'; import { format, fromUnixTime, getUnixTime } from 'date-fns'; @Injectable() diff --git a/apps/api/src/services/data-provider/data-enhancer/data-enhancer.service.ts b/apps/api/src/services/data-provider/data-enhancer/data-enhancer.service.ts index aa0b3c5974..4a0631df25 100644 --- a/apps/api/src/services/data-provider/data-enhancer/data-enhancer.service.ts +++ b/apps/api/src/services/data-provider/data-enhancer/data-enhancer.service.ts @@ -1,7 +1,7 @@ import { DataEnhancerInterface } from '@ghostfolio/api/services/data-provider/interfaces/data-enhancer.interface'; +import type { Prisma } from '@ghostfolio/prisma/client'; import { HttpException, Inject, Injectable } from '@nestjs/common'; -import { Prisma } from '@prisma/client'; import { StatusCodes, getReasonPhrase } from 'http-status-codes'; import ms from 'ms'; diff --git a/apps/api/src/services/data-provider/data-enhancer/openfigi/openfigi.service.ts b/apps/api/src/services/data-provider/data-enhancer/openfigi/openfigi.service.ts index 1f5bb74b45..73a001e48f 100644 --- a/apps/api/src/services/data-provider/data-enhancer/openfigi/openfigi.service.ts +++ b/apps/api/src/services/data-provider/data-enhancer/openfigi/openfigi.service.ts @@ -2,9 +2,9 @@ import { ConfigurationService } from '@ghostfolio/api/services/configuration/con import { DataEnhancerInterface } from '@ghostfolio/api/services/data-provider/interfaces/data-enhancer.interface'; import { FetchService } from '@ghostfolio/api/services/fetch/fetch.service'; import { parseSymbol } from '@ghostfolio/common/helper'; +import type { SymbolProfile } from '@ghostfolio/prisma/client'; import { Injectable } from '@nestjs/common'; -import { SymbolProfile } from '@prisma/client'; @Injectable() export class OpenFigiDataEnhancerService implements DataEnhancerInterface { @@ -24,12 +24,10 @@ export class OpenFigiDataEnhancerService implements DataEnhancerInterface { response: Partial; symbol: string; }): Promise> { - if ( - !( - response.assetClass === 'EQUITY' && - (response.assetSubClass === 'ETF' || response.assetSubClass === 'STOCK') - ) - ) { + if (!( + response.assetClass === 'EQUITY' && + (response.assetSubClass === 'ETF' || response.assetSubClass === 'STOCK') + )) { return response; } diff --git a/apps/api/src/services/data-provider/data-enhancer/trackinsight/trackinsight.service.ts b/apps/api/src/services/data-provider/data-enhancer/trackinsight/trackinsight.service.ts index aa61c048c7..5ee0a5761d 100644 --- a/apps/api/src/services/data-provider/data-enhancer/trackinsight/trackinsight.service.ts +++ b/apps/api/src/services/data-provider/data-enhancer/trackinsight/trackinsight.service.ts @@ -7,9 +7,9 @@ import { Holding } from '@ghostfolio/common/interfaces'; import { Country } from '@ghostfolio/common/interfaces/country.interface'; import { Sector } from '@ghostfolio/common/interfaces/sector.interface'; import { SectorName } from '@ghostfolio/common/types'; +import type { SymbolProfile } from '@ghostfolio/prisma/client'; import { Injectable, Logger } from '@nestjs/common'; -import { SymbolProfile } from '@prisma/client'; @Injectable() export class TrackinsightDataEnhancerService implements DataEnhancerInterface { diff --git a/apps/api/src/services/data-provider/data-enhancer/yahoo-finance/yahoo-finance.service.ts b/apps/api/src/services/data-provider/data-enhancer/yahoo-finance/yahoo-finance.service.ts index 2872a4648b..6e5aca6667 100644 --- a/apps/api/src/services/data-provider/data-enhancer/yahoo-finance/yahoo-finance.service.ts +++ b/apps/api/src/services/data-provider/data-enhancer/yahoo-finance/yahoo-finance.service.ts @@ -9,15 +9,14 @@ import { } from '@ghostfolio/common/config'; import { isCurrencySymbol } from '@ghostfolio/common/helper'; import { SectorName } from '@ghostfolio/common/types'; - -import { Injectable, Logger } from '@nestjs/common'; +import type { Prisma, SymbolProfile } from '@ghostfolio/prisma/client'; import { AssetClass, AssetSubClass, - DataSource, - Prisma, - SymbolProfile -} from '@prisma/client'; + DataSource +} from '@ghostfolio/prisma/enums'; + +import { Injectable, Logger } from '@nestjs/common'; import { isISIN } from 'class-validator'; import YahooFinance from 'yahoo-finance2'; import type { Price } from 'yahoo-finance2/modules/quoteSummary-iface'; diff --git a/apps/api/src/services/data-provider/data-provider.service.ts b/apps/api/src/services/data-provider/data-provider.service.ts index cfacab3231..043e8d6970 100644 --- a/apps/api/src/services/data-provider/data-provider.service.ts +++ b/apps/api/src/services/data-provider/data-provider.service.ts @@ -36,10 +36,15 @@ import { MarketDataOfMarketsResponse } from '@ghostfolio/common/interfaces'; import type { Granularity, UserWithSettings } from '@ghostfolio/common/types'; +import { + type MarketData, + Prisma, + type SymbolProfile +} from '@ghostfolio/prisma/client'; +import { DataSource } from '@ghostfolio/prisma/enums'; import { utc } from '@date-fns/utc'; import { Inject, Injectable, Logger, OnModuleInit } from '@nestjs/common'; -import { DataSource, MarketData, Prisma, SymbolProfile } from '@prisma/client'; import { Big } from 'big.js'; import { eachDayOfInterval, format, isValid } from 'date-fns'; import { groupBy, isEmpty, isNumber, omit, uniqWith } from 'lodash-es'; diff --git a/apps/api/src/services/data-provider/eod-historical-data/eod-historical-data.service.ts b/apps/api/src/services/data-provider/eod-historical-data/eod-historical-data.service.ts index 7dbb3b859c..bd81dd0db6 100644 --- a/apps/api/src/services/data-provider/eod-historical-data/eod-historical-data.service.ts +++ b/apps/api/src/services/data-provider/eod-historical-data/eod-historical-data.service.ts @@ -22,14 +22,14 @@ import { LookupResponse } from '@ghostfolio/common/interfaces'; import { MarketState } from '@ghostfolio/common/types'; - -import { Injectable, Logger, OnModuleInit } from '@nestjs/common'; +import type { SymbolProfile } from '@ghostfolio/prisma/client'; import { AssetClass, AssetSubClass, - DataSource, - SymbolProfile -} from '@prisma/client'; + DataSource +} from '@ghostfolio/prisma/enums'; + +import { Injectable, Logger, OnModuleInit } from '@nestjs/common'; import { addDays, format, isSameDay, isToday } from 'date-fns'; import { isNumber } from 'lodash-es'; diff --git a/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts b/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts index a8f1c6287c..ffbccd0a43 100644 --- a/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts +++ b/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts @@ -29,14 +29,14 @@ import { LookupResponse } from '@ghostfolio/common/interfaces'; import { MarketState } from '@ghostfolio/common/types'; - -import { Injectable, Logger, OnModuleInit } from '@nestjs/common'; +import type { SymbolProfile } from '@ghostfolio/prisma/client'; import { AssetClass, AssetSubClass, - DataSource, - SymbolProfile -} from '@prisma/client'; + DataSource +} from '@ghostfolio/prisma/enums'; + +import { Injectable, Logger, OnModuleInit } from '@nestjs/common'; import { isISIN } from 'class-validator'; import { addDays, diff --git a/apps/api/src/services/data-provider/ghostfolio/ghostfolio.service.ts b/apps/api/src/services/data-provider/ghostfolio/ghostfolio.service.ts index 5b59e9a006..ee3de8dcbb 100644 --- a/apps/api/src/services/data-provider/ghostfolio/ghostfolio.service.ts +++ b/apps/api/src/services/data-provider/ghostfolio/ghostfolio.service.ts @@ -28,9 +28,10 @@ import { QuotesResponse, SymbolItem } from '@ghostfolio/common/interfaces'; +import type { SymbolProfile } from '@ghostfolio/prisma/client'; +import { DataSource } from '@ghostfolio/prisma/enums'; import { Injectable, Logger } from '@nestjs/common'; -import { DataSource, SymbolProfile } from '@prisma/client'; import { format } from 'date-fns'; import { StatusCodes } from 'http-status-codes'; diff --git a/apps/api/src/services/data-provider/google-sheets/google-sheets.service.ts b/apps/api/src/services/data-provider/google-sheets/google-sheets.service.ts index 055b2364a8..66831d56e5 100644 --- a/apps/api/src/services/data-provider/google-sheets/google-sheets.service.ts +++ b/apps/api/src/services/data-provider/google-sheets/google-sheets.service.ts @@ -16,9 +16,10 @@ import { DataProviderResponse, LookupResponse } from '@ghostfolio/common/interfaces'; +import type { SymbolProfile } from '@ghostfolio/prisma/client'; +import { DataSource } from '@ghostfolio/prisma/enums'; import { Injectable, Logger } from '@nestjs/common'; -import { DataSource, SymbolProfile } from '@prisma/client'; import { format } from 'date-fns'; import { GoogleSpreadsheet } from 'google-spreadsheet'; diff --git a/apps/api/src/services/data-provider/interfaces/data-enhancer.interface.ts b/apps/api/src/services/data-provider/interfaces/data-enhancer.interface.ts index 73e0cc69d6..127f9404da 100644 --- a/apps/api/src/services/data-provider/interfaces/data-enhancer.interface.ts +++ b/apps/api/src/services/data-provider/interfaces/data-enhancer.interface.ts @@ -1,4 +1,4 @@ -import { SymbolProfile } from '@prisma/client'; +import type { SymbolProfile } from '@ghostfolio/prisma/client'; export interface DataEnhancerInterface { enhance({ diff --git a/apps/api/src/services/data-provider/interfaces/data-provider.interface.ts b/apps/api/src/services/data-provider/interfaces/data-provider.interface.ts index 1e6d2496b0..124ecf5950 100644 --- a/apps/api/src/services/data-provider/interfaces/data-provider.interface.ts +++ b/apps/api/src/services/data-provider/interfaces/data-provider.interface.ts @@ -6,8 +6,8 @@ import { MarketDataOfMarketsResponse } from '@ghostfolio/common/interfaces'; import { Granularity } from '@ghostfolio/common/types'; - -import { DataSource, SymbolProfile } from '@prisma/client'; +import type { SymbolProfile } from '@ghostfolio/prisma/client'; +import type { DataSource } from '@ghostfolio/prisma/enums'; export interface DataProviderInterface { canHandle(symbol: string): boolean; diff --git a/apps/api/src/services/data-provider/manual/manual.service.spec.ts b/apps/api/src/services/data-provider/manual/manual.service.spec.ts index 2fc69b8b2d..25d996aa6f 100644 --- a/apps/api/src/services/data-provider/manual/manual.service.spec.ts +++ b/apps/api/src/services/data-provider/manual/manual.service.spec.ts @@ -1,8 +1,7 @@ import { PrismaService } from '@ghostfolio/api/services/prisma/prisma.service'; import { SymbolProfileService } from '@ghostfolio/api/services/symbol-profile/symbol-profile.service'; import { EnhancedAssetProfile } from '@ghostfolio/common/interfaces'; - -import { DataSource } from '@prisma/client'; +import { DataSource } from '@ghostfolio/prisma/enums'; import { ManualService } from './manual.service'; diff --git a/apps/api/src/services/data-provider/manual/manual.service.ts b/apps/api/src/services/data-provider/manual/manual.service.ts index 30168cdef8..62cebc8e6f 100644 --- a/apps/api/src/services/data-provider/manual/manual.service.ts +++ b/apps/api/src/services/data-provider/manual/manual.service.ts @@ -23,10 +23,11 @@ import { LookupResponse, ScraperConfiguration } from '@ghostfolio/common/interfaces'; +import type { SymbolProfile } from '@ghostfolio/prisma/client'; +import { DataSource } from '@ghostfolio/prisma/enums'; import { utc } from '@date-fns/utc'; import { Injectable, Logger } from '@nestjs/common'; -import { DataSource, SymbolProfile } from '@prisma/client'; import * as cheerio from 'cheerio'; import { addDays, format, isBefore } from 'date-fns'; diff --git a/apps/api/src/services/data-provider/rapid-api/rapid-api.service.ts b/apps/api/src/services/data-provider/rapid-api/rapid-api.service.ts index 07dc62393a..00f51fa7c9 100644 --- a/apps/api/src/services/data-provider/rapid-api/rapid-api.service.ts +++ b/apps/api/src/services/data-provider/rapid-api/rapid-api.service.ts @@ -19,10 +19,11 @@ import { DataProviderResponse, LookupResponse } from '@ghostfolio/common/interfaces'; +import type { SymbolProfile } from '@ghostfolio/prisma/client'; +import { DataSource } from '@ghostfolio/prisma/enums'; import { utc } from '@date-fns/utc'; import { Injectable, Logger } from '@nestjs/common'; -import { DataSource, SymbolProfile } from '@prisma/client'; import { format } from 'date-fns'; @Injectable() diff --git a/apps/api/src/services/data-provider/yahoo-finance/yahoo-finance.service.ts b/apps/api/src/services/data-provider/yahoo-finance/yahoo-finance.service.ts index d2b741d372..6d5cd6f351 100644 --- a/apps/api/src/services/data-provider/yahoo-finance/yahoo-finance.service.ts +++ b/apps/api/src/services/data-provider/yahoo-finance/yahoo-finance.service.ts @@ -18,10 +18,11 @@ import { LookupItem, LookupResponse } from '@ghostfolio/common/interfaces'; +import type { SymbolProfile } from '@ghostfolio/prisma/client'; +import { DataSource } from '@ghostfolio/prisma/enums'; import { utc } from '@date-fns/utc'; import { Injectable, Logger } from '@nestjs/common'; -import { DataSource, SymbolProfile } from '@prisma/client'; import { addDays, format, isSameDay } from 'date-fns'; import { ReasonPhrases, StatusCodes } from 'http-status-codes'; import { uniqBy } from 'lodash-es'; diff --git a/apps/api/src/services/impersonation/impersonation.service.spec.ts b/apps/api/src/services/impersonation/impersonation.service.spec.ts index ab8d5fe44e..9da01ff940 100644 --- a/apps/api/src/services/impersonation/impersonation.service.spec.ts +++ b/apps/api/src/services/impersonation/impersonation.service.spec.ts @@ -11,8 +11,8 @@ import { scopes } from '@ghostfolio/common/scopes'; import type { UserWithSettings } from '@ghostfolio/common/types'; +import type { Access } from '@ghostfolio/prisma/client'; -import { Access } from '@prisma/client'; import { addDays, subDays } from 'date-fns'; import { ImpersonationService } from './impersonation.service'; diff --git a/apps/api/src/services/impersonation/impersonation.service.ts b/apps/api/src/services/impersonation/impersonation.service.ts index 1cce830b5e..90492d9ec4 100644 --- a/apps/api/src/services/impersonation/impersonation.service.ts +++ b/apps/api/src/services/impersonation/impersonation.service.ts @@ -14,9 +14,10 @@ import type { ImpersonationContext, UserWithSettings } from '@ghostfolio/common/types'; +import type { Access } from '@ghostfolio/prisma/client'; +import { AccessType } from '@ghostfolio/prisma/enums'; import { Injectable } from '@nestjs/common'; -import { Access, AccessType } from '@prisma/client'; @Injectable() export class ImpersonationService { diff --git a/apps/api/src/services/market-data/market-data.service.ts b/apps/api/src/services/market-data/market-data.service.ts index c1a31ce815..9c93bf49ab 100644 --- a/apps/api/src/services/market-data/market-data.service.ts +++ b/apps/api/src/services/market-data/market-data.service.ts @@ -4,14 +4,10 @@ import { PrismaService } from '@ghostfolio/api/services/prisma/prisma.service'; import { DEFAULT_PROCESSOR_GATHER_HISTORICAL_MARKET_DATA_TIMEOUT } from '@ghostfolio/common/config'; import { resetHours } from '@ghostfolio/common/helper'; import { AssetProfileIdentifier } from '@ghostfolio/common/interfaces'; +import type { MarketData, Prisma } from '@ghostfolio/prisma/client'; +import { DataSource, MarketDataState } from '@ghostfolio/prisma/enums'; import { Injectable } from '@nestjs/common'; -import { - DataSource, - MarketData, - MarketDataState, - Prisma -} from '@prisma/client'; @Injectable() export class MarketDataService { diff --git a/apps/api/src/services/portfolio-table/interfaces/holdings-table-context.interface.ts b/apps/api/src/services/portfolio-table/interfaces/holdings-table-context.interface.ts index 771cd10404..105a56cad2 100644 --- a/apps/api/src/services/portfolio-table/interfaces/holdings-table-context.interface.ts +++ b/apps/api/src/services/portfolio-table/interfaces/holdings-table-context.interface.ts @@ -1,4 +1,4 @@ -import { AssetClass, AssetSubClass } from '@prisma/client'; +import type { AssetClass, AssetSubClass } from '@ghostfolio/prisma/enums'; import { DataSourceTableContext } from './data-source-table-context.interface'; diff --git a/apps/api/src/services/portfolio-table/portfolio-table.service.spec.ts b/apps/api/src/services/portfolio-table/portfolio-table.service.spec.ts index 3cfb9fe856..8536423af6 100644 --- a/apps/api/src/services/portfolio-table/portfolio-table.service.spec.ts +++ b/apps/api/src/services/portfolio-table/portfolio-table.service.spec.ts @@ -17,8 +17,11 @@ import { WatchlistResponse } from '@ghostfolio/common/interfaces'; import { AccountWithValue } from '@ghostfolio/common/types'; - -import { AssetClass, AssetSubClass, DataSource } from '@prisma/client'; +import { + AssetClass, + AssetSubClass, + DataSource +} from '@ghostfolio/prisma/enums'; import { PortfolioTableService } from './portfolio-table.service'; diff --git a/apps/api/src/services/portfolio-table/portfolio-table.service.ts b/apps/api/src/services/portfolio-table/portfolio-table.service.ts index 9e63d133b5..17c0696f55 100644 --- a/apps/api/src/services/portfolio-table/portfolio-table.service.ts +++ b/apps/api/src/services/portfolio-table/portfolio-table.service.ts @@ -18,14 +18,14 @@ import { WatchlistResponse } from '@ghostfolio/common/interfaces'; import { AccountWithValue, DateRange } from '@ghostfolio/common/types'; - -import { Injectable } from '@nestjs/common'; import { AssetClass, AssetSubClass, DataSource, Type as ActivityType -} from '@prisma/client'; +} from '@ghostfolio/prisma/enums'; + +import { Injectable } from '@nestjs/common'; import { format } from 'date-fns'; import { DataSourceTableContext } from './interfaces/data-source-table-context.interface'; diff --git a/apps/api/src/services/prisma/prisma.service.ts b/apps/api/src/services/prisma/prisma.service.ts index fcf7c6e5ea..6adedba484 100644 --- a/apps/api/src/services/prisma/prisma.service.ts +++ b/apps/api/src/services/prisma/prisma.service.ts @@ -1,3 +1,5 @@ +import { Prisma, PrismaClient } from '@ghostfolio/prisma/client'; + import { Injectable, Logger, @@ -7,7 +9,6 @@ import { } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; import { PrismaPg } from '@prisma/adapter-pg'; -import { Prisma, PrismaClient } from '@prisma/client'; @Injectable() export class PrismaService diff --git a/apps/api/src/services/property/property.service.ts b/apps/api/src/services/property/property.service.ts index 6d8130bbc2..7fe787c1c2 100644 --- a/apps/api/src/services/property/property.service.ts +++ b/apps/api/src/services/property/property.service.ts @@ -4,9 +4,9 @@ import { PROPERTY_IS_USER_SIGNUP_ENABLED } from '@ghostfolio/common/config'; import { PropertyKey } from '@ghostfolio/common/types'; +import type { Property } from '@ghostfolio/prisma/client'; import { Injectable } from '@nestjs/common'; -import { Property } from '@prisma/client'; import { addMilliseconds, isBefore } from 'date-fns'; import ms from 'ms'; diff --git a/apps/api/src/services/queues/data-gathering/data-gathering.processor.spec.ts b/apps/api/src/services/queues/data-gathering/data-gathering.processor.spec.ts index 3faeb4d6be..a493bba09d 100644 --- a/apps/api/src/services/queues/data-gathering/data-gathering.processor.spec.ts +++ b/apps/api/src/services/queues/data-gathering/data-gathering.processor.spec.ts @@ -3,8 +3,8 @@ import { getAssetProfileIdentifier, parseDate } from '@ghostfolio/common/helper'; +import { DataSource } from '@ghostfolio/prisma/enums'; -import { DataSource } from '@prisma/client'; import { Job } from 'bull'; import { DataGatheringProcessor } from './data-gathering.processor'; diff --git a/apps/api/src/services/queues/data-gathering/data-gathering.processor.ts b/apps/api/src/services/queues/data-gathering/data-gathering.processor.ts index 13ed73c82a..e5fb342da5 100644 --- a/apps/api/src/services/queues/data-gathering/data-gathering.processor.ts +++ b/apps/api/src/services/queues/data-gathering/data-gathering.processor.ts @@ -16,11 +16,11 @@ import { getStartOfUtcDate } from '@ghostfolio/common/helper'; import { AssetProfileIdentifier } from '@ghostfolio/common/interfaces'; +import type { Prisma } from '@ghostfolio/prisma/client'; import { utc } from '@date-fns/utc'; import { Process, Processor } from '@nestjs/bull'; import { Injectable, Logger } from '@nestjs/common'; -import { Prisma } from '@prisma/client'; import { Job } from 'bull'; import { addDays, format, isBefore, parseISO } from 'date-fns'; diff --git a/apps/api/src/services/queues/data-gathering/data-gathering.service.ts b/apps/api/src/services/queues/data-gathering/data-gathering.service.ts index 2897855b01..1c4977c4ee 100644 --- a/apps/api/src/services/queues/data-gathering/data-gathering.service.ts +++ b/apps/api/src/services/queues/data-gathering/data-gathering.service.ts @@ -27,11 +27,11 @@ import { AssetProfileIdentifier, BenchmarkProperty } from '@ghostfolio/common/interfaces'; +import type { Prisma } from '@ghostfolio/prisma/client'; import { utc } from '@date-fns/utc'; import { InjectQueue } from '@nestjs/bull'; import { Inject, Injectable, Logger } from '@nestjs/common'; -import { Prisma } from '@prisma/client'; import { Job, JobOptions, Queue } from 'bull'; import { format, min, subDays, subMilliseconds, subYears } from 'date-fns'; import ms, { StringValue } from 'ms'; diff --git a/apps/api/src/services/symbol-profile/symbol-profile.service.ts b/apps/api/src/services/symbol-profile/symbol-profile.service.ts index ebc8a94c76..cb42f7dc2b 100644 --- a/apps/api/src/services/symbol-profile/symbol-profile.service.ts +++ b/apps/api/src/services/symbol-profile/symbol-profile.service.ts @@ -9,14 +9,14 @@ import { } from '@ghostfolio/common/interfaces'; import { Country } from '@ghostfolio/common/interfaces/country.interface'; import { Sector } from '@ghostfolio/common/interfaces/sector.interface'; - -import { Injectable } from '@nestjs/common'; -import { +import type { AssetProfileOverrides, - DataSource, Prisma, SymbolProfile -} from '@prisma/client'; +} from '@ghostfolio/prisma/client'; +import { DataSource } from '@ghostfolio/prisma/enums'; + +import { Injectable } from '@nestjs/common'; import { continents, countries } from 'countries-list'; @Injectable() diff --git a/apps/api/src/services/tag/tag.service.ts b/apps/api/src/services/tag/tag.service.ts index 0f23b03ea7..f3fa302ca7 100644 --- a/apps/api/src/services/tag/tag.service.ts +++ b/apps/api/src/services/tag/tag.service.ts @@ -1,8 +1,8 @@ import { PrismaService } from '@ghostfolio/api/services/prisma/prisma.service'; import { TAG_ID_DRAFT } from '@ghostfolio/common/config'; +import { Prisma, type Tag } from '@ghostfolio/prisma/client'; import { HttpException, Injectable } from '@nestjs/common'; -import { Prisma, Tag } from '@prisma/client'; import { StatusCodes, getReasonPhrase } from 'http-status-codes'; @Injectable() diff --git a/eslint.config.cjs b/eslint.config.cjs index 282e1b548c..a67d2cbe5b 100644 --- a/eslint.config.cjs +++ b/eslint.config.cjs @@ -89,7 +89,7 @@ module.exports = [ paths: [ { message: - 'Import the types from @ghostfolio/prisma/browser and the enums from @ghostfolio/prisma/enums instead.', + 'Import server code from @ghostfolio/prisma/client, browser types from @ghostfolio/prisma/browser, and enums from @ghostfolio/prisma/enums instead.', name: '@prisma/client' } ] diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 37a3506610..5fadac1dac 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -1,12 +1,7 @@ generator client { - binaryTargets = ["debian-openssl-3.0.x", "linux-arm64-openssl-3.0.x", "native"] - previewFeatures = [] - provider = "prisma-client-js" -} - -generator workspaceClient { - output = "./generated" - provider = "prisma-client" + moduleFormat = "cjs" + output = "./generated" + provider = "prisma-client" } datasource db { diff --git a/prisma/seed.mts b/prisma/seed.mts index 5ec57aad72..61ed4ef77f 100644 --- a/prisma/seed.mts +++ b/prisma/seed.mts @@ -1,5 +1,6 @@ import { PrismaPg } from '@prisma/adapter-pg'; -import { PrismaClient } from '@prisma/client'; + +import { PrismaClient } from './generated/client.ts'; const adapter = new PrismaPg({ connectionString: process.env.DIRECT_URL ?? process.env.DATABASE_URL diff --git a/tsconfig.base.json b/tsconfig.base.json index f5771c4e9d..443823d076 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -20,6 +20,7 @@ "@ghostfolio/client/*": ["./apps/client/src/app/*"], "@ghostfolio/common/*": ["./libs/common/src/lib/*"], "@ghostfolio/prisma/browser": ["./prisma/generated/browser"], + "@ghostfolio/prisma/client": ["./prisma/generated/client"], "@ghostfolio/prisma/enums": ["./prisma/generated/enums"], "@ghostfolio/ui/*": ["./libs/ui/src/lib/*"] },