From caf19575c6f8069387a89067529c09832f33d6c1 Mon Sep 17 00:00:00 2001 From: Asis Ferrer Date: Tue, 16 Jun 2026 13:37:58 +0200 Subject: [PATCH] refactor: rename DB columns recipientId to personId --- prisma/migrations/20260603100143_init/migration.sql | 12 ++++++------ prisma/schema.prisma | 12 ++++++------ .../assignments/[assignmentId]/edit/page.tsx | 2 +- .../inventory/assets/_components/edit.asset.form.tsx | 2 +- src/services/assignment.service.ts | 8 ++++---- src/services/movement.service.ts | 2 +- src/use-cases/asset.use-cases.ts | 12 ++++++------ src/use-cases/assignment.use-cases.ts | 8 ++++---- tests/integration/use-cases/asset.use-cases.test.ts | 12 ++++++------ .../use-cases/assignment.use-cases.test.ts | 6 +++--- 10 files changed, 38 insertions(+), 38 deletions(-) diff --git a/prisma/migrations/20260603100143_init/migration.sql b/prisma/migrations/20260603100143_init/migration.sql index 9261850..7447609 100644 --- a/prisma/migrations/20260603100143_init/migration.sql +++ b/prisma/migrations/20260603100143_init/migration.sql @@ -90,7 +90,7 @@ CREATE TABLE "Assignment" ( "notes" TEXT, "itemId" TEXT, "assetId" TEXT, - "recipientId" TEXT, + "personId" TEXT, "assignmentDate" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "returnDate" TIMESTAMP(3), "createdBy" TEXT NOT NULL, @@ -111,7 +111,7 @@ CREATE TABLE "Movement" ( "assetId" TEXT, "previousStock" INTEGER, "newStock" INTEGER, - "recipientId" TEXT, + "personId" TEXT, "assignmentId" TEXT, "userId" TEXT NOT NULL, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, @@ -171,7 +171,7 @@ CREATE INDEX "Assignment_itemId_idx" ON "Assignment"("itemId"); CREATE INDEX "Assignment_assetId_idx" ON "Assignment"("assetId"); -- CreateIndex -CREATE INDEX "Assignment_recipientId_idx" ON "Assignment"("recipientId"); +CREATE INDEX "Assignment_personId_idx" ON "Assignment"("personId"); -- CreateIndex CREATE INDEX "Assignment_createdBy_idx" ON "Assignment"("createdBy"); @@ -183,7 +183,7 @@ CREATE INDEX "Movement_itemId_idx" ON "Movement"("itemId"); CREATE INDEX "Movement_assetId_idx" ON "Movement"("assetId"); -- CreateIndex -CREATE INDEX "Movement_recipientId_idx" ON "Movement"("recipientId"); +CREATE INDEX "Movement_personId_idx" ON "Movement"("personId"); -- CreateIndex CREATE INDEX "Movement_type_idx" ON "Movement"("type"); @@ -207,7 +207,7 @@ ALTER TABLE "Assignment" ADD CONSTRAINT "Assignment_itemId_fkey" FOREIGN KEY ("i ALTER TABLE "Assignment" ADD CONSTRAINT "Assignment_assetId_fkey" FOREIGN KEY ("assetId") REFERENCES "Asset"("id") ON DELETE SET NULL ON UPDATE CASCADE; -- AddForeignKey -ALTER TABLE "Assignment" ADD CONSTRAINT "Assignment_recipientId_fkey" FOREIGN KEY ("recipientId") REFERENCES "Person"("id") ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE "Assignment" ADD CONSTRAINT "Assignment_personId_fkey" FOREIGN KEY ("personId") REFERENCES "Person"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "Assignment" ADD CONSTRAINT "Assignment_createdBy_fkey" FOREIGN KEY ("createdBy") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; @@ -219,7 +219,7 @@ ALTER TABLE "Movement" ADD CONSTRAINT "Movement_itemId_fkey" FOREIGN KEY ("itemI ALTER TABLE "Movement" ADD CONSTRAINT "Movement_assetId_fkey" FOREIGN KEY ("assetId") REFERENCES "Asset"("id") ON DELETE SET NULL ON UPDATE CASCADE; -- AddForeignKey -ALTER TABLE "Movement" ADD CONSTRAINT "Movement_recipientId_fkey" FOREIGN KEY ("recipientId") REFERENCES "Person"("id") ON DELETE SET NULL ON UPDATE CASCADE; +ALTER TABLE "Movement" ADD CONSTRAINT "Movement_personId_fkey" FOREIGN KEY ("personId") REFERENCES "Person"("id") ON DELETE SET NULL ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "Movement" ADD CONSTRAINT "Movement_assignmentId_fkey" FOREIGN KEY ("assignmentId") REFERENCES "Assignment"("id") ON DELETE SET NULL ON UPDATE CASCADE; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index d361962..3a7e64d 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -133,8 +133,8 @@ model Assignment { item Item? @relation(fields: [itemId], references: [id], onDelete: SetNull, onUpdate: Cascade) assetId String? @unique asset Asset? @relation(fields: [assetId], references: [id], onDelete: SetNull, onUpdate: Cascade) - recipientId String? - person Person? @relation(fields: [recipientId], references: [id], onDelete: Cascade, onUpdate: Cascade) + personId String? + person Person? @relation(fields: [personId], references: [id], onDelete: Cascade, onUpdate: Cascade) assignmentDate DateTime @default(now()) returnDate DateTime? createdBy String @@ -145,7 +145,7 @@ model Assignment { @@index([itemId]) @@index([assetId]) - @@index([recipientId]) + @@index([personId]) @@index([createdBy]) } @@ -170,8 +170,8 @@ model Movement { asset Asset? @relation(fields: [assetId], references: [id], onDelete: SetNull, onUpdate: Cascade) previousStock Int? newStock Int? - recipientId String? - person Person? @relation(fields: [recipientId], references: [id], onDelete: SetNull, onUpdate: Cascade) + personId String? + person Person? @relation(fields: [personId], references: [id], onDelete: SetNull, onUpdate: Cascade) assignmentId String? assignment Assignment? @relation(fields: [assignmentId], references: [id], onDelete: SetNull, onUpdate: Cascade) userId String @@ -180,7 +180,7 @@ model Movement { @@index([itemId]) @@index([assetId]) - @@index([recipientId]) + @@index([personId]) @@index([type]) @@index([userId]) } \ No newline at end of file diff --git a/src/app/(dashboard)/assignments/[assignmentId]/edit/page.tsx b/src/app/(dashboard)/assignments/[assignmentId]/edit/page.tsx index 2bd2f76..22b4776 100644 --- a/src/app/(dashboard)/assignments/[assignmentId]/edit/page.tsx +++ b/src/app/(dashboard)/assignments/[assignmentId]/edit/page.tsx @@ -42,7 +42,7 @@ export default async function EditAssignmentPage({ initialData={{ ...assignment, id: assignment.id, - personId: assignment.recipientId ?? "", + personId: assignment.personId ?? "", itemId: assignment.itemId ?? undefined, assetId: assignment.assetId ?? undefined, quantity: assignment.quantity ?? undefined, diff --git a/src/app/(dashboard)/inventory/assets/_components/edit.asset.form.tsx b/src/app/(dashboard)/inventory/assets/_components/edit.asset.form.tsx index 6ee48eb..61aa38d 100644 --- a/src/app/(dashboard)/inventory/assets/_components/edit.asset.form.tsx +++ b/src/app/(dashboard)/inventory/assets/_components/edit.asset.form.tsx @@ -64,7 +64,7 @@ export default function EditAssetForm({ serialNumber: asset.serialNumber, deliveryNote: asset.deliveryNote ?? undefined, status: asset.status as UpdateAssetStatus, - personId: asset.assignment?.recipientId ?? undefined, + personId: asset.assignment?.personId ?? undefined, }, shouldFocusError: true, mode: "onSubmit", diff --git a/src/services/assignment.service.ts b/src/services/assignment.service.ts index 00cb514..8ff3e86 100644 --- a/src/services/assignment.service.ts +++ b/src/services/assignment.service.ts @@ -83,7 +83,7 @@ export const AssignmentService = { personId: string, ): Promise => { return prisma.assignment.findMany({ - where: { recipientId: personId }, + where: { personId: personId }, include: { person: true, item: true, @@ -99,7 +99,7 @@ export const AssignmentService = { return db.assignment.create({ data: { ...rest, - recipientId: personId, + personId: personId, }, }) }, @@ -108,7 +108,7 @@ export const AssignmentService = { where: { id }, data: { returnDate: new Date(), - recipientId: null, + personId: null, quantity: null, assetId: null, itemId: null, @@ -126,7 +126,7 @@ export const AssignmentService = { }, data: { returnDate: new Date(), - recipientId: null, + personId: null, quantity: null, assetId: null, itemId: null, diff --git a/src/services/movement.service.ts b/src/services/movement.service.ts index 383f76b..39bb82a 100644 --- a/src/services/movement.service.ts +++ b/src/services/movement.service.ts @@ -55,7 +55,7 @@ export const MovementService = { return await db.movement.create({ data: { ...rest, - recipientId: personId, + personId: personId, }, }) }, diff --git a/src/use-cases/asset.use-cases.ts b/src/use-cases/asset.use-cases.ts index 38fc854..267e692 100644 --- a/src/use-cases/asset.use-cases.ts +++ b/src/use-cases/asset.use-cases.ts @@ -93,7 +93,7 @@ function getAssetTransition({ willBeAssigned: nextStatus === "ASSIGNED", wasAvailable: previousStatus === "AVAILABLE", willBeAvailable: nextStatus === "AVAILABLE", - personChanged: activeAssignment?.recipientId !== nextPersonId, + personChanged: activeAssignment?.personId !== nextPersonId, } } @@ -162,7 +162,7 @@ export async function createAssetUseCase( assetId: newAsset.id, quantity: 1, type: status === "ASSIGNED" ? "ASSIGNMENT" : "IN", - personId: createdAssignment?.recipientId || undefined, + personId: createdAssignment?.personId || undefined, assignmentId: createdAssignment?.id, userId: actorId, }, @@ -277,7 +277,7 @@ export async function updateAssetUseCase( ? transition.nextItemId : activeAssignment.itemId || undefined, assetId: activeAssignment.assetId || undefined, - personId: activeAssignment.recipientId || undefined, + personId: activeAssignment.personId || undefined, assignmentId: activeAssignment.id, userId: actorId, }, @@ -419,7 +419,7 @@ export async function updateAssetUseCase( quantity: activeAssignment.quantity || 1, itemId: activeAssignment.itemId || undefined, assetId: activeAssignment.assetId || undefined, - personId: activeAssignment.recipientId || undefined, + personId: activeAssignment.personId || undefined, assignmentId: activeAssignment.id, userId: actorId, }, @@ -445,7 +445,7 @@ export async function updateAssetUseCase( createdBy: actorId, itemId, assetId: id, - recipientId: transition.nextPersonId, + personId: transition.nextPersonId, quantity: 1, returnDate: null, }, @@ -457,7 +457,7 @@ export async function updateAssetUseCase( { itemId, assetId: id, - recipientId: transition.nextPersonId, + personId: transition.nextPersonId, quantity: 1, returnDate: null, }, diff --git a/src/use-cases/assignment.use-cases.ts b/src/use-cases/assignment.use-cases.ts index 2dca11b..96ea029 100644 --- a/src/use-cases/assignment.use-cases.ts +++ b/src/use-cases/assignment.use-cases.ts @@ -216,14 +216,14 @@ export async function updateAssignmentUseCase( } } - if (assignment.recipientId !== personId) { + if (assignment.personId !== personId) { await MovementService.create( { type: "RETURN", quantity: assignment.quantity || 1, itemId: assignment.itemId || undefined, assetId: assignment.assetId || undefined, - personId: assignment.recipientId || undefined, + personId: assignment.personId || undefined, assignmentId: id, userId: actorId, }, @@ -247,7 +247,7 @@ export async function updateAssignmentUseCase( id, { createdBy: actorId, - recipientId: personId, + personId: personId, itemId, assetId, quantity, @@ -261,7 +261,7 @@ export async function updateAssignmentUseCase( await AssignmentService.update( id, { - recipientId: personId, + personId: personId, itemId, assetId, quantity, diff --git a/tests/integration/use-cases/asset.use-cases.test.ts b/tests/integration/use-cases/asset.use-cases.test.ts index 34a6cdb..68b3416 100644 --- a/tests/integration/use-cases/asset.use-cases.test.ts +++ b/tests/integration/use-cases/asset.use-cases.test.ts @@ -114,7 +114,7 @@ describe("asset use-cases", () => { expect(assignment).toMatchObject({ itemId: item.id, assetId: result.assetId, - recipientId: person.id, + personId: person.id, quantity: 1, createdBy: actor.id, returnDate: null, @@ -124,7 +124,7 @@ describe("asset use-cases", () => { type: "ASSIGNMENT", itemId: item.id, assetId: result.assetId, - recipientId: person.id, + personId: person.id, assignmentId: assignment.id, quantity: 1, userId: actor.id, @@ -170,7 +170,7 @@ describe("asset use-cases", () => { expect(activeAssignment).toMatchObject({ itemId: item.id, assetId: created.assetId, - recipientId: person.id, + personId: person.id, quantity: 1, }) @@ -202,7 +202,7 @@ describe("asset use-cases", () => { expect(returnedAssignment).toMatchObject({ itemId: null, assetId: null, - recipientId: null, + personId: null, quantity: null, }) expect(movements).toHaveLength(3) @@ -214,7 +214,7 @@ describe("asset use-cases", () => { expect(movements[1]).toMatchObject({ itemId: item.id, assetId: created.assetId, - recipientId: person.id, + personId: person.id, assignmentId: activeAssignment.id, quantity: 1, userId: actor.id, @@ -282,7 +282,7 @@ describe("asset use-cases", () => { type: "RETURN", itemId: item.id, assetId: created.assetId, - recipientId: person.id, + personId: person.id, assignmentId: activeAssignment.id, quantity: 1, userId: actor.id, diff --git a/tests/integration/use-cases/assignment.use-cases.test.ts b/tests/integration/use-cases/assignment.use-cases.test.ts index 9722e6b..db3a8cf 100644 --- a/tests/integration/use-cases/assignment.use-cases.test.ts +++ b/tests/integration/use-cases/assignment.use-cases.test.ts @@ -68,7 +68,7 @@ describe("assignment use-cases", () => { expect(updatedItem.stock).toBe(3) expect(assignment).toMatchObject({ itemId: item.id, - recipientId: person.id, + personId: person.id, quantity: 2, notes: "Initial assignment", createdBy: actor.id, @@ -79,7 +79,7 @@ describe("assignment use-cases", () => { expect(movements[0]).toMatchObject({ type: "ASSIGNMENT", itemId: item.id, - recipientId: person.id, + personId: person.id, assignmentId: result.assignmentId, quantity: 2, userId: actor.id, @@ -150,7 +150,7 @@ describe("assignment use-cases", () => { expect(assignment).toMatchObject({ itemId: null, assetId: null, - recipientId: null, + personId: null, quantity: null, }) expect(movements).toHaveLength(2)