import prisma from '../config/db.js';
import type { CreateUnitBody, UpdateUnitBody } from '../validators/unit.validator.js';
import type { Pagination } from '../utils/pagination.js';

export function createUnit(data: CreateUnitBody) {
  return prisma.unit.create({ data });
}

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

export function countUnits() {
  return prisma.unit.count();
}

export function getUnitById(id: number) {
  return prisma.unit.findUnique({ where: { id } });
}

export function updateUnit(id: number, data: UpdateUnitBody) {
  return prisma.unit.update({ where: { id }, data });
}

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