import { query } from "../db/pool.js";

export type AppLogLevel = "info" | "warning" | "error";

export interface AppLogInput {
  level: AppLogLevel;
  source: string;
  message: string;
  details?: Record<string, unknown>;
}

export async function recordAppEvent(input: AppLogInput): Promise<void> {
  try {
    await query(
      "INSERT INTO app_event_log (level, source, message, details) VALUES ($1, $2, $3, $4)",
      [input.level, input.source, input.message, JSON.stringify(input.details ?? {})]
    );
  } catch (err) {
    console.error("[app-log] failed to persist event:", err);
  }
}
