import prisma from '../config/db.js';
import type { CreateVendorBody, UpdateVendorBody } from '../validators/vendor.validator.js';
import type { Pagination } from '../utils/pagination.js';

export function createVendor(data: CreateVendorBody) {
  return prisma.vendor.create({ data });
}

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

export function countVendors() {
  return prisma.vendor.count();
}

export function getVendorById(id: number) {
  return prisma.vendor.findUnique({ where: { id } });
}

export function updateVendor(id: number, data: UpdateVendorBody) {
  return prisma.vendor.update({ where: { id }, data });
}

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