import { prisma } from "@/lib/prisma";
import type {
  ProcedureRhRecipientCreateInput,
  ProcedureRhRecipientUpdateInput,
} from "@/validators/procedure-rh-recipients";

export function listProcedureRhRecipients(includeInactive = false) {
  return prisma.procedure_rh_recipients.findMany({
    where: includeInactive ? undefined : { is_active: true },
    orderBy: [{ is_active: "desc" }, { label: "asc" }, { email: "asc" }],
  });
}

export function getActiveProcedureRhRecipient(id: number) {
  return prisma.procedure_rh_recipients.findFirst({
    where: { id, is_active: true },
  });
}

export function createProcedureRhRecipient(
  input: ProcedureRhRecipientCreateInput,
) {
  return prisma.procedure_rh_recipients.create({
    data: {
      label: input.label,
      email: input.email,
    },
  });
}

export function updateProcedureRhRecipient(
  id: number,
  input: ProcedureRhRecipientUpdateInput,
) {
  return prisma.procedure_rh_recipients.update({
    where: { id },
    data: {
      ...(input.label !== undefined ? { label: input.label } : {}),
      ...(input.email !== undefined ? { email: input.email } : {}),
      ...(input.isActive !== undefined ? { is_active: input.isActive } : {}),
    },
  });
}
