diff --git a/apps/api/src/app/account/account.service.ts b/apps/api/src/app/account/account.service.ts index 238e3d429..cb8467c18 100644 --- a/apps/api/src/app/account/account.service.ts +++ b/apps/api/src/app/account/account.service.ts @@ -21,10 +21,8 @@ export class AccountService { public async account({ id_userId }: Prisma.AccountWhereUniqueInput): Promise { - const { id, userId } = id_userId; - const [account] = await this.accounts({ - where: { id, userId } + where: id_userId }); return account; diff --git a/apps/api/src/app/user/user.service.ts b/apps/api/src/app/user/user.service.ts index 2c4d3760c..1f9fd0bf9 100644 --- a/apps/api/src/app/user/user.service.ts +++ b/apps/api/src/app/user/user.service.ts @@ -438,7 +438,7 @@ export class UserService { settings }, where: { - userId: userId + userId } }); diff --git a/prisma/migrations/20240221201438_add_missing_indexes/migration.sql b/prisma/migrations/20240221201438_add_missing_indexes/migration.sql new file mode 100644 index 000000000..82875be98 --- /dev/null +++ b/prisma/migrations/20240221201438_add_missing_indexes/migration.sql @@ -0,0 +1,59 @@ +-- CreateIndex +CREATE INDEX "Access_granteeUserId_idx" ON "Access"("granteeUserId"); + +-- CreateIndex +CREATE INDEX "Access_userId_idx" ON "Access"("userId"); + +-- CreateIndex +CREATE INDEX "Account_currency_idx" ON "Account"("currency"); + +-- CreateIndex +CREATE INDEX "Account_userId_idx" ON "Account"("userId"); + +-- CreateIndex +CREATE INDEX "AccountBalance_accountId_idx" ON "AccountBalance"("accountId"); + +-- CreateIndex +CREATE INDEX "AuthDevice_userId_idx" ON "AuthDevice"("userId"); + +-- CreateIndex +CREATE INDEX "MarketData_state_idx" ON "MarketData"("state"); + +-- CreateIndex +CREATE INDEX "Order_isDraft_idx" ON "Order"("isDraft"); + +-- CreateIndex +CREATE INDEX "Order_userId_idx" ON "Order"("userId"); + +-- CreateIndex +CREATE INDEX "Subscription_userId_idx" ON "Subscription"("userId"); + +-- CreateIndex +CREATE INDEX "SymbolProfile_assetClass_idx" ON "SymbolProfile"("assetClass"); + +-- CreateIndex +CREATE INDEX "SymbolProfile_dataSource_idx" ON "SymbolProfile"("dataSource"); + +-- CreateIndex +CREATE INDEX "SymbolProfile_isin_idx" ON "SymbolProfile"("isin"); + +-- CreateIndex +CREATE INDEX "SymbolProfile_name_idx" ON "SymbolProfile"("name"); + +-- CreateIndex +CREATE INDEX "SymbolProfile_symbol_idx" ON "SymbolProfile"("symbol"); + +-- CreateIndex +CREATE INDEX "User_accessToken_idx" ON "User"("accessToken"); + +-- CreateIndex +CREATE INDEX "User_createdAt_idx" ON "User"("createdAt"); + +-- CreateIndex +CREATE INDEX "User_provider_idx" ON "User"("provider"); + +-- CreateIndex +CREATE INDEX "User_role_idx" ON "User"("role"); + +-- CreateIndex +CREATE INDEX "User_thirdPartyId_idx" ON "User"("thirdPartyId"); diff --git a/prisma/schema.prisma b/prisma/schema.prisma index ae36b00bf..b8c259ac3 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -19,6 +19,9 @@ model Access { userId String GranteeUser User? @relation("accessGet", fields: [granteeUserId], references: [id]) User User @relation("accessGive", fields: [userId], references: [id]) + + @@index([granteeUserId]) + @@index([userId]) } model Account { @@ -39,7 +42,9 @@ model Account { Order Order[] @@id([id, userId]) + @@index([currency]) @@index([id]) + @@index([userId]) } model AccountBalance { @@ -51,6 +56,8 @@ model AccountBalance { userId String value Float Account Account @relation(fields: [accountId, userId], onDelete: Cascade, references: [id, userId]) + + @@index([accountId]) } model Analytics { @@ -70,6 +77,8 @@ model AuthDevice { updatedAt DateTime @updatedAt userId String User User @relation(fields: [userId], references: [id]) + + @@index([userId]) } model MarketData { @@ -84,6 +93,7 @@ model MarketData { @@unique([dataSource, date, symbol]) @@index([dataSource]) @@index([date]) + @@index([state]) @@index([symbol]) } @@ -108,6 +118,8 @@ model Order { tags Tag[] @@index([accountId]) + @@index([isDraft]) + @@index([userId]) } model Platform { @@ -153,6 +165,11 @@ model SymbolProfile { SymbolProfileOverrides SymbolProfileOverrides? @@unique([dataSource, symbol]) + @@index([assetClass]) + @@index([dataSource]) + @@index([isin]) + @@index([name]) + @@index([symbol]) } model SymbolProfileOverrides { @@ -175,6 +192,8 @@ model Subscription { updatedAt DateTime @updatedAt userId String User User @relation(fields: [userId], references: [id]) + + @@index([userId]) } model Tag { @@ -200,6 +219,12 @@ model User { Order Order[] Settings Settings? Subscription Subscription[] + + @@index([accessToken]) + @@index([createdAt]) + @@index([provider]) + @@index([role]) + @@index([thirdPartyId]) } enum AccessPermission {