import { Bill, Prisma } from '@prisma/client' import fetch from './fetch' export function getBillTotal({ tarif, milage, additionalCosts, }: { tarif: Prisma.Decimal milage?: number additionalCosts: Prisma.AdditionalCostsCreateInput[] }): Prisma.Decimal { const milageCosts = tarif.mul(milage) const additionalCostsSum = additionalCosts .reduce((acc, {value} ) => (value as Prisma.Decimal).plus(acc), new Prisma.Decimal(0)) return additionalCostsSum.add(milageCosts).toDecimalPlaces(2); } export async function createBill( bookingUuid: string, bill: Prisma.BillCreateInput ): Promise { return fetch(`/api/bookings/${bookingUuid}/bill`, { method: 'POST', body: bill, }) } export async function patchBill( bookingUuid: string, bill: Prisma.BillUpdateInput ): Promise { return fetch(`/api/bookings/${bookingUuid}/bill`, { method: 'POST', body: bill, }) }