1
1
import { estimate } from "@trigger.dev/billing" ;
2
- import { sqlDatabaseSchema , PrismaClient , prisma } from "~/db.server" ;
2
+ import { sqlDatabaseSchema } from "~/db.server" ;
3
3
import { featuresForRequest } from "~/features.server" ;
4
4
import { BillingService } from "~/services/billing.server" ;
5
+ import { BasePresenter } from "./v3/basePresenter.server" ;
5
6
6
- export class OrgUsagePresenter {
7
- #prismaClient: PrismaClient ;
8
-
9
- constructor ( prismaClient : PrismaClient = prisma ) {
10
- this . #prismaClient = prismaClient ;
11
- }
12
-
7
+ export class OrgUsagePresenter extends BasePresenter {
13
8
public async call ( { userId, slug, request } : { userId : string ; slug : string ; request : Request } ) {
14
- const organization = await this . #prismaClient . organization . findFirst ( {
9
+ const organization = await this . _replica . organization . findFirst ( {
15
10
where : {
16
11
slug,
17
12
members : {
@@ -27,7 +22,7 @@ export class OrgUsagePresenter {
27
22
}
28
23
29
24
// Get count of runs since the start of the current month
30
- const runsCount = await this . #prismaClient . jobRun . count ( {
25
+ const runsCount = await this . _replica . jobRun . count ( {
31
26
where : {
32
27
organizationId : organization . id ,
33
28
createdAt : {
@@ -48,7 +43,7 @@ export class OrgUsagePresenter {
48
43
// ]
49
44
// This will be used to generate the chart on the usage page
50
45
// Use prisma queryRaw for this since prisma doesn't support grouping by month
51
- const monthlyRunsDataRaw = await this . #prismaClient . $queryRaw <
46
+ const monthlyRunsDataRaw = await this . _replica . $queryRaw <
52
47
{
53
48
month : string ;
54
49
count : number ;
@@ -64,7 +59,7 @@ export class OrgUsagePresenter {
64
59
const monthlyRunsDataDisplay = fillInMissingRunMonthlyData ( monthlyRunsData , 6 ) ;
65
60
66
61
// Max concurrency each day over past 30 days
67
- const concurrencyChartRawData = await this . #prismaClient . $queryRaw <
62
+ const concurrencyChartRawData = await this . _replica . $queryRaw <
68
63
{ day : Date ; max_concurrent_runs : BigInt } [ ]
69
64
> `
70
65
WITH time_boundaries AS (
@@ -115,7 +110,7 @@ export class OrgUsagePresenter {
115
110
concurrencyChartRawData
116
111
) ;
117
112
118
- const dailyRunsRawData = await this . #prismaClient . $queryRaw <
113
+ const dailyRunsRawData = await this . _replica . $queryRaw <
119
114
{ day : Date ; runs : BigInt } [ ]
120
115
> `SELECT date_trunc('day', "createdAt") as day, COUNT(*) as runs FROM ${ sqlDatabaseSchema } ."JobRun" WHERE "organizationId" = ${ organization . id } AND "createdAt" >= NOW() - INTERVAL '30 days' AND "internal" = FALSE GROUP BY day` ;
121
116
0 commit comments