Feature/rename Order to activities in SymbolProfile database schema (#4661)

* Rename Order to activities

* Update changelog
This commit is contained in:
Thomas Kaul 2025-05-06 17:43:46 +02:00 committed by GitHub
parent c38dab5ab0
commit 67db1b0de4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 31 additions and 30 deletions

View File

@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
- Renamed `Order` to `activities` in the `SymbolProfile` database schema
- Improved the language localization for Turkish (`tr`)
### Fixed

View File

@ -227,7 +227,7 @@ export class AdminService {
if (sortColumn === 'activitiesCount') {
orderBy = {
Order: {
activities: {
_count: sortDirection
}
};
@ -246,10 +246,15 @@ export class AdminService {
select: {
_count: {
select: {
Order: true,
activities: true,
watchedBy: true
}
},
activities: {
orderBy: [{ date: 'asc' }],
select: { date: true },
take: 1
},
assetClass: true,
assetSubClass: true,
comment: true,
@ -260,11 +265,6 @@ export class AdminService {
isActive: true,
isUsedByUsersWithSubscription: true,
name: true,
Order: {
orderBy: [{ date: 'asc' }],
select: { date: true },
take: 1
},
scraperConfiguration: true,
sectors: true,
symbol: true,
@ -311,6 +311,7 @@ export class AdminService {
assetProfiles.map(
async ({
_count,
activities,
assetClass,
assetSubClass,
comment,
@ -321,7 +322,6 @@ export class AdminService {
isActive,
isUsedByUsersWithSubscription,
name,
Order,
sectors,
symbol,
SymbolProfileOverrides
@ -383,8 +383,8 @@ export class AdminService {
symbol,
marketDataItemCount,
sectorsCount,
activitiesCount: _count.Order,
date: Order?.[0]?.date,
activitiesCount: _count.activities,
date: activities?.[0]?.date,
isUsedByUsersWithSubscription:
await isUsedByUsersWithSubscription,
watchedByCount: _count.watchedBy
@ -654,7 +654,7 @@ export class AdminService {
select: {
_count: {
select: {
Order: {
activities: {
where: {
User: {
subscriptions: {
@ -675,7 +675,7 @@ export class AdminService {
}
});
return _count.Order > 0;
return _count.activities > 0;
}
}
}

View File

@ -433,13 +433,13 @@ export class DataGatheringService {
await this.prismaService.symbolProfile.findMany({
orderBy: [{ symbol: 'asc' }],
select: {
dataSource: true,
id: true,
Order: {
activities: {
orderBy: [{ date: 'asc' }],
select: { date: true },
take: 1
},
dataSource: true,
id: true,
scraperConfiguration: true,
symbol: true
},
@ -459,7 +459,7 @@ export class DataGatheringService {
);
})
.map((symbolProfile) => {
let date = symbolProfile.Order?.[0]?.date ?? startDate;
let date = symbolProfile.activities?.[0]?.date ?? startDate;
if (benchmarkAssetProfileIdMap[symbolProfile.id]) {
date = this.getEarliestDate(startDate);

View File

@ -42,7 +42,7 @@ export class SymbolProfileService {
}) {
return this.prismaService.symbolProfile.findMany({
include: {
Order: {
activities: {
include: {
User: true
}
@ -50,8 +50,7 @@ export class SymbolProfileService {
},
orderBy: [{ symbol: 'asc' }],
where: {
isActive: true,
Order: withUserSubscription
activities: withUserSubscription
? {
some: {
User: {
@ -65,7 +64,8 @@ export class SymbolProfileService {
subscriptions: { none: { expiresAt: { gt: new Date() } } }
}
}
}
},
isActive: true
}
});
}
@ -77,9 +77,9 @@ export class SymbolProfileService {
.findMany({
include: {
_count: {
select: { Order: true }
select: { activities: true }
},
Order: {
activities: {
orderBy: {
date: 'asc'
},
@ -109,7 +109,7 @@ export class SymbolProfileService {
.findMany({
include: {
_count: {
select: { Order: true }
select: { activities: true }
},
SymbolProfileOverrides: true
},
@ -184,8 +184,8 @@ export class SymbolProfileService {
private enhanceSymbolProfiles(
symbolProfiles: (SymbolProfile & {
_count: { Order: number };
Order?: {
_count: { activities: number };
activities?: {
date: Date;
}[];
SymbolProfileOverrides: SymbolProfileOverrides;
@ -209,11 +209,11 @@ export class SymbolProfileService {
symbolMapping: this.getSymbolMapping(symbolProfile)
};
item.activitiesCount = symbolProfile._count.Order;
item.activitiesCount = symbolProfile._count.activities;
delete item._count;
item.dateOfFirstActivity = symbolProfile.Order?.[0]?.date;
delete item.Order;
item.dateOfFirstActivity = symbolProfile.activities?.[0]?.date;
delete item.activities;
if (item.SymbolProfileOverrides) {
item.assetClass =

View File

@ -131,6 +131,7 @@ model Order {
isDraft Boolean @default(false)
quantity Float
symbolProfileId String
tags Tag[]
type Type
unitPrice Float
updatedAt DateTime @updatedAt
@ -138,7 +139,6 @@ model Order {
Account Account? @relation(fields: [accountId, accountUserId], references: [id, userId])
SymbolProfile SymbolProfile @relation(fields: [symbolProfileId], references: [id])
User User @relation(fields: [userId], onDelete: Cascade, references: [id])
tags Tag[]
@@index([accountId])
@@index([date])
@ -168,6 +168,7 @@ model Settings {
}
model SymbolProfile {
activities Order[]
assetClass AssetClass?
assetSubClass AssetSubClass?
comment String?
@ -192,7 +193,6 @@ model SymbolProfile {
url String?
userId String?
watchedBy User[] @relation("UserWatchlist")
Order Order[]
SymbolProfileOverrides SymbolProfileOverrides?
User User? @relation(fields: [userId], onDelete: Cascade, references: [id])