♻️ refactor: change all id types to uuidv7

This commit is contained in:
Rafi Arrafif
2026-01-27 22:29:21 +07:00
parent 2f1e37ce52
commit c730689587
6 changed files with 113 additions and 81 deletions

View File

@ -2,6 +2,7 @@ import { PrismaClient } from "@prisma/client";
import { PrismaPg } from "@prisma/adapter-pg";
import pg from "pg";
import dotenv from "dotenv";
import { generateUUIDv7 } from "../../../helpers/databases/uuidv7";
dotenv.config();
const pool = new pg.Pool({
@ -9,4 +10,26 @@ const pool = new pg.Pool({
});
const adapter = new PrismaPg(pool);
export const prisma = new PrismaClient({ adapter });
export const prisma = new PrismaClient({ adapter }).$extends({
query: {
$allModels: {
async create({ args, query }) {
if (
args.data &&
typeof args.data === "object" &&
!("id" in args.data)
) {
// do nothing
} else if (args.data && !args.data.id) {
(args.data as { id?: string }).id = generateUUIDv7();
}
return query(args);
},
async upsert({ args, query }) {
const create = args.create as any;
if (create && !create.id) create.id = generateUUIDv7();
return query(args);
},
},
},
});