import { eq } from 'drizzle-orm';
import type { DrizzleClient } from '../client.js';
import { reportTickets } from '../schema.js';

export async function createReportTicketRecord(
  db: DrizzleClient,
  values: typeof reportTickets.$inferInsert,
): Promise<{ id: string }> {
  const [row] = await db.insert(reportTickets).values(values).returning({ id: reportTickets.id });
  if (!row) throw new Error('Failed to create report ticket');
  return row;
}

export async function updateReportTicketStatus(
  db: DrizzleClient,
  reportId: string,
  status: 'RESOLVED' | 'DISMISSED' | 'INVESTIGATING',
  resolvedAt?: Date | null,
): Promise<void> {
  await db
    .update(reportTickets)
    .set({
      status,
      ...(resolvedAt !== undefined ? { resolvedAt } : {}),
    })
    .where(eq(reportTickets.id, reportId));
}
