import prisma from '../config/db.js';
import type { CreateContractorBody, UpdateContractorBody } from '../validators/contractor.validator.js';
import type { Pagination } from '../utils/pagination.js';

export function createContractor(data: CreateContractorBody) {
  return prisma.contractor.create({ data });
}

export function getContractors({ skip, take }: Pick<Pagination, 'skip' | 'take'>) {
  return prisma.contractor.findMany({ orderBy: { name: 'asc' }, skip, take });
}

export function countContractors() {
  return prisma.contractor.count();
}

export function getContractorById(id: number) {
  return prisma.contractor.findUnique({ where: { id } });
}

export function updateContractor(id: number, data: UpdateContractorBody) {
  return prisma.contractor.update({ where: { id }, data });
}

export async function deleteContractor(id: number) {
  await prisma.contractor.delete({ where: { id } });
}
