Feature/add user id to symbol profile database schema (#4122)

* Add userId to SymbolProfile database schema

* Update changelog
pull/4123/head^2
Thomas Kaul 1 week ago committed by GitHub
parent 57659d2c04
commit de68841843
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## Unreleased
### Added
- Added `userId` to the `SymbolProfile` database schema
## 2.128.0 - 2024-12-12 ## 2.128.0 - 2024-12-12
### Changed ### Changed

@ -224,7 +224,7 @@ export class ImportService {
for (const activity of activitiesDto) { for (const activity of activitiesDto) {
if (!activity.dataSource) { if (!activity.dataSource) {
if (activity.type === 'ITEM' || activity.type === 'LIABILITY') { if (['FEE', 'INTEREST', 'ITEM', 'LIABILITY'].includes(activity.type)) {
activity.dataSource = DataSource.MANUAL; activity.dataSource = DataSource.MANUAL;
} else { } else {
activity.dataSource = activity.dataSource =
@ -356,6 +356,7 @@ export class ImportService {
quantity, quantity,
type, type,
unitPrice, unitPrice,
Account: validatedAccount,
accountId: validatedAccount?.id, accountId: validatedAccount?.id,
accountUserId: undefined, accountUserId: undefined,
createdAt: new Date(), createdAt: new Date(),
@ -380,10 +381,10 @@ export class ImportService {
symbolMapping, symbolMapping,
updatedAt, updatedAt,
url, url,
comment: assetProfile.comment,
currency: assetProfile.currency, currency: assetProfile.currency,
comment: assetProfile.comment userId: dataSource === 'MANUAL' ? user.id : undefined
}, },
Account: validatedAccount,
symbolProfileId: undefined, symbolProfileId: undefined,
updatedAt: new Date(), updatedAt: new Date(),
userId: user.id userId: user.id
@ -406,7 +407,8 @@ export class ImportService {
create: { create: {
dataSource, dataSource,
symbol, symbol,
currency: assetProfile.currency currency: assetProfile.currency,
userId: dataSource === 'MANUAL' ? user.id : undefined
}, },
where: { where: {
dataSource_symbol: { dataSource_symbol: {

@ -93,7 +93,7 @@ export class OrderService {
userId: string; userId: string;
} }
): Promise<Order> { ): Promise<Order> {
let Account; let Account: Prisma.AccountCreateNestedOneWithoutOrderInput;
if (data.accountId) { if (data.accountId) {
Account = { Account = {
@ -124,6 +124,7 @@ export class OrderService {
data.SymbolProfile.connectOrCreate.create.dataSource = dataSource; data.SymbolProfile.connectOrCreate.create.dataSource = dataSource;
data.SymbolProfile.connectOrCreate.create.name = name; data.SymbolProfile.connectOrCreate.create.name = name;
data.SymbolProfile.connectOrCreate.create.symbol = id; data.SymbolProfile.connectOrCreate.create.symbol = id;
data.SymbolProfile.connectOrCreate.create.userId = userId;
data.SymbolProfile.connectOrCreate.where.dataSource_symbol = { data.SymbolProfile.connectOrCreate.where.dataSource_symbol = {
dataSource, dataSource,
symbol: id symbol: id

@ -0,0 +1,15 @@
-- AlterTable
ALTER TABLE "SymbolProfile" ADD COLUMN "userId" TEXT;
-- AddForeignKey
ALTER TABLE "SymbolProfile" ADD CONSTRAINT "SymbolProfile_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- Set userIds in SymbolProfile for 'MANUAL' data source
UPDATE "SymbolProfile"
SET "userId" = (
SELECT "userId"
FROM "Order"
WHERE "Order"."symbolProfileId" = "SymbolProfile"."id"
LIMIT 1
)
WHERE "dataSource" = 'MANUAL';

@ -188,8 +188,10 @@ model SymbolProfile {
symbol String symbol String
symbolMapping Json? symbolMapping Json?
url String? url String?
userId String?
Order Order[] Order Order[]
SymbolProfileOverrides SymbolProfileOverrides? SymbolProfileOverrides SymbolProfileOverrides?
User User? @relation(fields: [userId], onDelete: Cascade, references: [id])
@@unique([dataSource, symbol]) @@unique([dataSource, symbol])
@@index([assetClass]) @@index([assetClass])
@ -239,14 +241,14 @@ model Tag {
model User { model User {
accessToken String? accessToken String?
authChallenge String? authChallenge String?
createdAt DateTime @default(now()) createdAt DateTime @default(now())
id String @id @default(uuid()) id String @id @default(uuid())
provider Provider @default(ANONYMOUS) provider Provider @default(ANONYMOUS)
role Role @default(USER) role Role @default(USER)
thirdPartyId String? thirdPartyId String?
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
Access Access[] @relation("accessGet") Access Access[] @relation("accessGet")
AccessGive Access[] @relation("accessGive") AccessGive Access[] @relation("accessGive")
Account Account[] Account Account[]
Analytics Analytics? Analytics Analytics?
ApiKey ApiKey[] ApiKey ApiKey[]
@ -254,6 +256,7 @@ model User {
Order Order[] Order Order[]
Settings Settings? Settings Settings?
Subscription Subscription[] Subscription Subscription[]
SymbolProfile SymbolProfile[]
Tag Tag[] Tag Tag[]
@@index([accessToken]) @@index([accessToken])

Loading…
Cancel
Save