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/),
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
### Changed

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

@ -93,7 +93,7 @@ export class OrderService {
userId: string;
}
): Promise<Order> {
let Account;
let Account: Prisma.AccountCreateNestedOneWithoutOrderInput;
if (data.accountId) {
Account = {
@ -124,6 +124,7 @@ export class OrderService {
data.SymbolProfile.connectOrCreate.create.dataSource = dataSource;
data.SymbolProfile.connectOrCreate.create.name = name;
data.SymbolProfile.connectOrCreate.create.symbol = id;
data.SymbolProfile.connectOrCreate.create.userId = userId;
data.SymbolProfile.connectOrCreate.where.dataSource_symbol = {
dataSource,
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
symbolMapping Json?
url String?
userId String?
Order Order[]
SymbolProfileOverrides SymbolProfileOverrides?
User User? @relation(fields: [userId], onDelete: Cascade, references: [id])
@@unique([dataSource, symbol])
@@index([assetClass])
@ -254,6 +256,7 @@ model User {
Order Order[]
Settings Settings?
Subscription Subscription[]
SymbolProfile SymbolProfile[]
Tag Tag[]
@@index([accessToken])

Loading…
Cancel
Save