From 80f5aeda17436c21773cb1785fad6e36808e06fc Mon Sep 17 00:00:00 2001 From: Shir0-Kage Date: Mon, 12 Jan 2026 19:32:30 +0800 Subject: [PATCH 1/3] Modified schema.prisma to add new column, Added migration.sql, Modified \lib\actions to update current time to updatedAt when update action is called --- components/admin/Organisations.tsx | 1 + lib/actions/booking.ts | 1 + lib/actions/event.ts | 2 ++ lib/actions/organisation.ts | 11 ++++++++++- .../20260109175200_updated_at/migration.sql | 6 ++++++ prisma/schema.prisma | 5 +++++ 6 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 prisma/migrations/20260109175200_updated_at/migration.sql diff --git a/components/admin/Organisations.tsx b/components/admin/Organisations.tsx index f87883e..d13de18 100644 --- a/components/admin/Organisations.tsx +++ b/components/admin/Organisations.tsx @@ -126,6 +126,7 @@ export default function OrganisationsPage({ if (formData.telegramUrl) editOrganisation.set('telegramUrl', formData.telegramUrl); editOrganisation.set('category', formData.category); + // editOrganisation.set('category', formData.category); editOrganisationAction(editOrganisation); setSelectedOrganisation(null); diff --git a/lib/actions/booking.ts b/lib/actions/booking.ts index dd0cb02..367918a 100644 --- a/lib/actions/booking.ts +++ b/lib/actions/booking.ts @@ -213,6 +213,7 @@ export const editBooking = async ( bookedForOrgId: data.organisationId, start: data.startTime, end: data.endTime, + updatedAt: Date.now(), }, }, } diff --git a/lib/actions/event.ts b/lib/actions/event.ts index fc8eb99..b0ed95c 100644 --- a/lib/actions/event.ts +++ b/lib/actions/event.ts @@ -143,6 +143,7 @@ export const editEvent = async ( bookedForOrgId: data.organisationId, start: data.startTime, end: data.endTime, + updatedAt: Date.now(), }, include: { booking: true }, }); @@ -158,6 +159,7 @@ export const editEvent = async ( bookedForOrgId: data.organisationId, start: data.startTime, end: data.endTime, + updatedAt: Date.now(), }, }); }); diff --git a/lib/actions/organisation.ts b/lib/actions/organisation.ts index de9805d..ee8e152 100644 --- a/lib/actions/organisation.ts +++ b/lib/actions/organisation.ts @@ -112,7 +112,16 @@ export const editOrganisation = async ( try { await prisma.organisation.update({ where: { id: data.id }, - data, + data: { + id: data.id, + name: data.name, + category: data.category, + isAdminOrg: data.isAdminOrg, + description: data.description, + telegramUrl: data.telegramUrl, + updatedAt: Date.now(), + }, + }); } catch (error) { console.error('Error editing organisation:', error); diff --git a/prisma/migrations/20260109175200_updated_at/migration.sql b/prisma/migrations/20260109175200_updated_at/migration.sql new file mode 100644 index 0000000..d686525 --- /dev/null +++ b/prisma/migrations/20260109175200_updated_at/migration.sql @@ -0,0 +1,6 @@ +-- AlterTable +ALTER TABLE "public"."organisations" ADD COLUMN "updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP; +ALTER TABLE "public"."users" ADD COLUMN "updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP; +ALTER TABLE "public"."user_on_org" ADD COLUMN "updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP; +ALTER TABLE "public"."bookings" ADD COLUMN "updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP; +ALTER TABLE "public"."events" ADD COLUMN "updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP; \ No newline at end of file diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 688a0a0..c0f5e6f 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -16,6 +16,7 @@ model User { userOrgs UserOnOrg[] deleted Boolean @default(false) // supports soft delete deletedAt DateTime? @map("deleted_at") + updatedAt DateTime? @default(now()) @map("updated_at") @@map("users") } @@ -42,6 +43,7 @@ model Organisation { isInactive Boolean @default(false) @map("is_inactive") isInvisible Boolean @default(false) @map("is_invisible") // is not displayed on the website createdAt DateTime @default(now()) @map("created_at") + updatedAt DateTime? @default(now()) @map("updated_at") @@map("organisations") } @@ -56,6 +58,7 @@ model UserOnOrg { events Event[] deleted Boolean @default(false) // supports soft delete deletedAt DateTime? @map("deleted_at") + updatedAt DateTime? @default(now()) @map("updated_at") @@id([userId, orgId]) @@map("user_on_org") @@ -85,6 +88,7 @@ model Booking { event Event? deleted Boolean @default(false) // supports soft delete deletedAt DateTime? @map("deleted_at") + updatedAt DateTime? @default(now()) @map("updated_at") @@map("bookings") } @@ -104,6 +108,7 @@ model Event { bookingId Int? @unique @map("booking_id") deleted Boolean @default(false) // supports soft delete deletedAt DateTime? @map("deleted_at") + updatedAt DateTime? @default(now()) @map("updated_at") @@map("events") } From f22cb10d28c0e0bf726384d9ed3bbfc0aaaa40ee Mon Sep 17 00:00:00 2001 From: Shir0-Kage Date: Mon, 12 Jan 2026 19:38:26 +0800 Subject: [PATCH 2/3] removed comment --- components/admin/Organisations.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/components/admin/Organisations.tsx b/components/admin/Organisations.tsx index d13de18..f87883e 100644 --- a/components/admin/Organisations.tsx +++ b/components/admin/Organisations.tsx @@ -126,7 +126,6 @@ export default function OrganisationsPage({ if (formData.telegramUrl) editOrganisation.set('telegramUrl', formData.telegramUrl); editOrganisation.set('category', formData.category); - // editOrganisation.set('category', formData.category); editOrganisationAction(editOrganisation); setSelectedOrganisation(null); From c4be3936052c3e23265f8f662924f98dcefc497d Mon Sep 17 00:00:00 2001 From: Shir0-Kage Date: Tue, 13 Jan 2026 09:16:07 +0800 Subject: [PATCH 3/3] added updatedAt to prisma.schema, made field non-compulsory, removed server action modifications --- lib/actions/booking.ts | 1 - lib/actions/event.ts | 2 -- lib/actions/organisation.ts | 11 +---------- prisma/schema.prisma | 10 +++++----- 4 files changed, 6 insertions(+), 18 deletions(-) diff --git a/lib/actions/booking.ts b/lib/actions/booking.ts index 367918a..dd0cb02 100644 --- a/lib/actions/booking.ts +++ b/lib/actions/booking.ts @@ -213,7 +213,6 @@ export const editBooking = async ( bookedForOrgId: data.organisationId, start: data.startTime, end: data.endTime, - updatedAt: Date.now(), }, }, } diff --git a/lib/actions/event.ts b/lib/actions/event.ts index b0ed95c..fc8eb99 100644 --- a/lib/actions/event.ts +++ b/lib/actions/event.ts @@ -143,7 +143,6 @@ export const editEvent = async ( bookedForOrgId: data.organisationId, start: data.startTime, end: data.endTime, - updatedAt: Date.now(), }, include: { booking: true }, }); @@ -159,7 +158,6 @@ export const editEvent = async ( bookedForOrgId: data.organisationId, start: data.startTime, end: data.endTime, - updatedAt: Date.now(), }, }); }); diff --git a/lib/actions/organisation.ts b/lib/actions/organisation.ts index ee8e152..de9805d 100644 --- a/lib/actions/organisation.ts +++ b/lib/actions/organisation.ts @@ -112,16 +112,7 @@ export const editOrganisation = async ( try { await prisma.organisation.update({ where: { id: data.id }, - data: { - id: data.id, - name: data.name, - category: data.category, - isAdminOrg: data.isAdminOrg, - description: data.description, - telegramUrl: data.telegramUrl, - updatedAt: Date.now(), - }, - + data, }); } catch (error) { console.error('Error editing organisation:', error); diff --git a/prisma/schema.prisma b/prisma/schema.prisma index c0f5e6f..e2c5275 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -16,7 +16,7 @@ model User { userOrgs UserOnOrg[] deleted Boolean @default(false) // supports soft delete deletedAt DateTime? @map("deleted_at") - updatedAt DateTime? @default(now()) @map("updated_at") + updatedAt DateTime @updatedAt @map("updated_at") @@map("users") } @@ -43,7 +43,7 @@ model Organisation { isInactive Boolean @default(false) @map("is_inactive") isInvisible Boolean @default(false) @map("is_invisible") // is not displayed on the website createdAt DateTime @default(now()) @map("created_at") - updatedAt DateTime? @default(now()) @map("updated_at") + updatedAt DateTime @updatedAt @map("updated_at") @@map("organisations") } @@ -58,7 +58,7 @@ model UserOnOrg { events Event[] deleted Boolean @default(false) // supports soft delete deletedAt DateTime? @map("deleted_at") - updatedAt DateTime? @default(now()) @map("updated_at") + updatedAt DateTime @updatedAt @map("updated_at") @@id([userId, orgId]) @@map("user_on_org") @@ -88,7 +88,7 @@ model Booking { event Event? deleted Boolean @default(false) // supports soft delete deletedAt DateTime? @map("deleted_at") - updatedAt DateTime? @default(now()) @map("updated_at") + updatedAt DateTime @updatedAt @map("updated_at") @@map("bookings") } @@ -108,7 +108,7 @@ model Event { bookingId Int? @unique @map("booking_id") deleted Boolean @default(false) // supports soft delete deletedAt DateTime? @map("deleted_at") - updatedAt DateTime? @default(now()) @map("updated_at") + updatedAt DateTime @updatedAt @map("updated_at") @@map("events") }