import prisma from '../config/db.js';
import type { CreateEquipmentBody, UpdateEquipmentBody } from '../validators/equipment.validator.js';
import type { Pagination } from '../utils/pagination.js';

export function createEquipment(data: CreateEquipmentBody) {
  return prisma.equipment.create({ data, include: { unit: true } });
}

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

export function countEquipment() {
  return prisma.equipment.count();
}

export function getEquipmentById(id: number) {
  return prisma.equipment.findUnique({ where: { id }, include: { unit: true } });
}

export function updateEquipment(id: number, data: UpdateEquipmentBody) {
  return prisma.equipment.update({ where: { id }, data, include: { unit: true } });
}

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