Skip to content

Commit 3a46ada

Browse files
committed
simplified query args and updated migration
1 parent 27f0033 commit 3a46ada

6 files changed

Lines changed: 33 additions & 25 deletions

File tree

src/backend/src/prisma-query-args/bom.query-args.ts

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { Prisma } from '@prisma/client';
22
import { getUserQueryArgs } from './user.query-args.js';
3-
import { getReimbursementRequestQueryArgs } from './reimbursement-requests.query-args.js';
43

54
export type AssemblyQueryArgs = ReturnType<typeof getAssemblyQueryArgs>;
65

@@ -26,24 +25,40 @@ export const getMaterialQueryArgs = (organizationId: string) =>
2625
unit: true,
2726
manufacturer: true,
2827
reimbursementProducts: {
29-
include: {
30-
reimbursementRequest: getReimbursementRequestQueryArgs(organizationId)
28+
where: { dateDeleted: null },
29+
select: {
30+
dateDeleted: true,
31+
reimbursementRequest: {
32+
select: {
33+
reimbursementRequestId: true,
34+
identifier: true,
35+
dateDeleted: true
36+
}
37+
}
3138
}
3239
}
3340
}
3441
});
3542

3643
export type MaterialPreviewQueryArgs = ReturnType<typeof getMaterialPreviewQueryArgs>;
3744

38-
export const getMaterialPreviewQueryArgs = (organizationId: string) =>
45+
export const getMaterialPreviewQueryArgs = (_organizationId: string) =>
3946
Prisma.validator<Prisma.MaterialDefaultArgs>()({
4047
include: {
4148
unit: true,
4249
manufacturer: true,
4350
materialType: true,
4451
reimbursementProducts: {
45-
include: {
46-
reimbursementRequest: getReimbursementRequestQueryArgs(organizationId)
52+
where: { dateDeleted: null },
53+
select: {
54+
dateDeleted: true,
55+
reimbursementRequest: {
56+
select: {
57+
reimbursementRequestId: true,
58+
identifier: true,
59+
dateDeleted: true
60+
}
61+
}
4762
}
4863
}
4964
}

src/backend/src/prisma/migrations/20260313162334_remove_material_reimbursement_request_link/migration.sql

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,8 @@
77
-- DropForeignKey
88
ALTER TABLE "Material" DROP CONSTRAINT "Material_reimbursementRequestId_fkey";
99

10-
-- DropForeignKey
11-
ALTER TABLE "Sponsor" DROP CONSTRAINT "Sponsor_sponsorTierId_fkey";
12-
1310
-- DropIndex
1411
DROP INDEX "Material_reimbursementRequestId_idx";
1512

1613
-- AlterTable
1714
ALTER TABLE "Material" DROP COLUMN "reimbursementRequestId";
18-
19-
-- AlterTable
20-
ALTER TABLE "Sponsor" ALTER COLUMN "valueTypes" DROP DEFAULT;
21-
22-
-- AddForeignKey
23-
ALTER TABLE "Sponsor" ADD CONSTRAINT "Sponsor_sponsorTierId_fkey" FOREIGN KEY ("sponsorTierId") REFERENCES "Sponsor_Tier"("sponsorTierId") ON DELETE SET NULL ON UPDATE CASCADE;

src/backend/src/transformers/material.transformer.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import { Prisma } from '@prisma/client';
22
import { Assembly, Material, MaterialPreview, MaterialStatus } from 'shared';
33
import { AssemblyQueryArgs, MaterialPreviewQueryArgs, MaterialQueryArgs } from '../prisma-query-args/bom.query-args.js';
44
import { userTransformer } from './user.transformer.js';
5-
import { reimbursementRequestTransformer } from './reimbursement-requests.transformer.js';
65

76
export const assemblyTransformer = (assembly: Prisma.AssemblyGetPayload<AssemblyQueryArgs>): Assembly => {
87
return {
@@ -46,10 +45,10 @@ export const materialTransformer = (material: Prisma.MaterialGetPayload<Material
4645
reimbursementRequests: Array.from(
4746
new Map(
4847
material.reimbursementProducts
49-
.filter((p) => !p.dateDeleted && p.reimbursementRequest)
48+
.filter((p) => p.reimbursementRequest && !p.reimbursementRequest.dateDeleted)
5049
.map((p) => [p.reimbursementRequest!.reimbursementRequestId, p.reimbursementRequest!])
5150
).values()
52-
).map(reimbursementRequestTransformer)
51+
)
5352
};
5453
};
5554

@@ -73,9 +72,9 @@ export const materialPreviewTransformer = (
7372
reimbursementRequests: Array.from(
7473
new Map(
7574
material.reimbursementProducts
76-
.filter((p) => !p.dateDeleted && p.reimbursementRequest)
75+
.filter((p) => p.reimbursementRequest && !p.reimbursementRequest.dateDeleted)
7776
.map((p) => [p.reimbursementRequest!.reimbursementRequestId, p.reimbursementRequest!])
7877
).values()
79-
).map(reimbursementRequestTransformer)
78+
)
8079
};
8180
};

src/backend/tests/unmocked/reimbursement-requests.test.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1349,7 +1349,6 @@ describe('Reimbursement Requests', () => {
13491349
expect(updatedMaterial1!.status).toBe('ORDERED');
13501350
expect(updatedMaterial2!.status).toBe('ORDERED');
13511351
});
1352-
13531352
});
13541353

13551354
describe('Editing a reimbursement request', () => {

src/frontend/src/utils/bom.utils.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import { Material, ReimbursementRequest } from 'shared';
1+
import { Material, MaterialReimbursementRequest } from 'shared';
22
import { GridColDefStyle } from './tables';
33
import { centsToDollar } from './pipes';
44
import { DataGrid, GridValidRowModel } from '@mui/x-data-grid';
55
import { styled } from '@mui/system';
66

77
export interface BomRow extends GridValidRowModel {
8-
reimbursementRequests: ReimbursementRequest[];
8+
reimbursementRequests: MaterialReimbursementRequest[];
99
id: string;
1010
materialId: string;
1111
status: string;

src/shared/src/types/bom-types.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
import { Decimal } from 'decimal.js';
22
import { User } from './user-types.js';
3-
import { ReimbursementRequest } from './reimbursement-requests-types.js';
3+
4+
export interface MaterialReimbursementRequest {
5+
reimbursementRequestId: string;
6+
identifier: number;
7+
}
48

59
export enum MaterialStatus {
610
Ordered = 'ORDERED',
@@ -72,7 +76,7 @@ export interface Material {
7276
subtotal?: number;
7377
linkUrl: string;
7478
notes?: string;
75-
reimbursementRequests: ReimbursementRequest[];
79+
reimbursementRequests: MaterialReimbursementRequest[];
7680
}
7781

7882
export type MaterialPreview = Omit<

0 commit comments

Comments
 (0)