task-managment / src / server / log.ts
log.ts
Raw
import { db } from "@/database/db";
import { eventsLog, eventType, } from "@/database/schema";
import * as schema from "@/database/schema";


interface createLogProps {
    eventType: (typeof eventType.enumValues)[number];
    userId: string;
    item: Record<string,any>;
    tableName: keyof typeof schema;
    modifiedItem:string
}

export const createLogRecord = async (
  tx: any,
  values: createLogProps
) => {
  const { eventType, userId, item, tableName,modifiedItem } = values;

  try {
    const modifiedFields = Object.entries(item).map(([key, value]) => `${key}: ${value}`)
    .join(", ");
    

    await tx.insert(eventsLog).values({
      eventType,
      userId,
      modifiedItem,
      tableName,
      description: modifiedFields, 
    });
  } catch (err) {
    console.error("Error al crear log record:", err);
    throw new Error("Error al crear log record");
  }
};