task-managment / src / database / schema / eventsLog.ts
eventsLog.ts
Raw
import { relations } from 'drizzle-orm';
import {  pgTable,serial,char,pgEnum, primaryKey,integer,index,uniqueIndex,timestamp,unique, varchar, json, text, jsonb, uuid } from 'drizzle-orm/pg-core';
import { z } from 'zod';
import { user } from './user';

export const eventType=pgEnum('eventType',['crear','modificar','eliminar'])
export const eventTypeScheme=z.enum(eventType.enumValues)

export const eventsLog = pgTable("eventsLog", {
	id: uuid("id").primaryKey().defaultRandom().notNull(),
    eventType:eventType('eventType').notNull(),
	  userId:varchar('userId',{length:255}).references(()=>user.id,{onDelete:'cascade',onUpdate:'cascade'}),
    description:text('newValues').notNull(),
    modifiedItem:text('modifiedItem').notNull(),
    tableName:varchar('tableName',{length:80}).notNull(),
    createdAt:timestamp('createdAt').defaultNow(),
});

export const eventsLogRelations=relations(eventsLog,({one,many})=>({
  user:one(user,{
    fields:[eventsLog.userId],
    references:[user.id]
  })
}))