Skip to content

Commit fd10e45

Browse files
committed
Migrate sales to earnings model and update related routes
1 parent f3eaedd commit fd10e45

File tree

8 files changed

+25
-14
lines changed

8 files changed

+25
-14
lines changed

apps/web/app/api/programs/[programId]/metrics/route.ts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,21 @@ export const GET = withWorkspace(
3333
},
3434
}),
3535

36-
prisma.sale.aggregate({
37-
where,
36+
prisma.earnings.aggregate({
37+
where: {
38+
...where,
39+
type: "sale",
40+
},
3841
_sum: {
3942
amount: true,
4043
},
4144
}),
4245

43-
prisma.sale.count({
44-
where,
46+
prisma.earnings.count({
47+
where: {
48+
...where,
49+
type: "sale",
50+
},
4551
}),
4652

4753
prisma.programEnrollment.count({

apps/web/app/api/programs/[programId]/sales/amount/route.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,9 @@ export const GET = withWorkspace(
2121

2222
const { partnerId } = parsed;
2323

24-
const salesAmount = await prisma.sale.aggregate({
24+
const salesAmount = await prisma.earnings.aggregate({
2525
where: {
26+
type: "sale",
2627
programId,
2728
partnerId,
2829
createdAt: {

apps/web/app/api/programs/[programId]/sales/count/route.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,10 @@ export const GET = withWorkspace(
2121

2222
const { startDate, endDate } = getStartEndDates(parsed);
2323

24-
const salesCount = await prisma.sale.groupBy({
24+
const salesCount = await prisma.earnings.groupBy({
2525
by: ["status"],
2626
where: {
27+
type: "sale",
2728
programId,
2829
status,
2930
partnerId,

apps/web/app/api/programs/[programId]/sales/route.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,10 @@ export const GET = withWorkspace(
3232
programId,
3333
});
3434

35-
const sales = await prisma.sale.findMany({
35+
const sales = await prisma.earnings.findMany({
3636
where: {
3737
programId,
38+
type: "sale",
3839
...(status && { status }),
3940
...(customerId && { customerId }),
4041
...(payoutId && { payoutId }),

apps/web/lib/actions/partners/update-sale-status.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export const updateSaleStatusAction = authActionClient
1818
const { workspace } = ctx;
1919
const { saleId, status } = parsedInput;
2020

21-
const sale = await prisma.sale.findUniqueOrThrow({
21+
const sale = await prisma.earnings.findUniqueOrThrow({
2222
where: {
2323
id: saleId,
2424
program: {
@@ -50,7 +50,7 @@ export const updateSaleStatusAction = authActionClient
5050
});
5151
}
5252

53-
await prisma.sale.update({
53+
await prisma.earnings.update({
5454
where: {
5555
id: sale.id,
5656
},

apps/web/scripts/migrate-sales.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
import "dotenv-flow/config";
21
import { prisma } from "@dub/prisma";
32
import { EventType } from "@dub/prisma/client";
3+
import "dotenv-flow/config";
44

55
async function main() {
66
const sales = await prisma.sale.findMany({
77
select: {
8+
id: true,
89
programId: true,
910
partnerId: true,
1011
linkId: true,
@@ -14,6 +15,7 @@ async function main() {
1415
eventId: true,
1516
amount: true,
1617
earnings: true,
18+
currency: true,
1719
status: true,
1820
createdAt: true,
1921
updatedAt: true,

packages/prisma/schema/customer.prisma

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ model Customer {
1616
createdAt DateTime @default(now())
1717
updatedAt DateTime @updatedAt
1818
19-
project Project @relation(fields: [projectId], references: [id], onDelete: Cascade)
20-
link Link? @relation(fields: [linkId], references: [id])
19+
project Project @relation(fields: [projectId], references: [id], onDelete: Cascade)
20+
link Link? @relation(fields: [linkId], references: [id])
2121
sales Sale[]
2222
earnings Earnings[]
2323

packages/prisma/schema/earnings.prisma

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ model Earnings {
2626
type EventType
2727
amount Int?
2828
quantity Int
29-
earnings Int?
30-
// currency String
29+
earnings Int @default(0)
30+
currency String?
3131
status EarningsStatus @default(pending)
3232
3333
createdAt DateTime @default(now())

0 commit comments

Comments
 (0)