Files
Ferme/frontend/services/weight.ts

42 lines
1.4 KiB
TypeScript

import { useApi } from '~/composables/useApi'
import type {ReceptionData, ReceptionPayload, WeightEntryData} from '~/services/dto/reception-data'
import type {Ref} from "vue";
import type {ShipmentData, ShipmentPayload} from "~/services/dto/shipment-data";
import type {WeighingMode} from "~/composables/useWeighing";
export type WeightPayload = {
reception?: string
shipment?: string
type: 'gross' | 'tare'
dsd: number | null
weight: number | null
weighedAt: string | null
}
export async function createWeight(payload: WeightPayload) {
const api = useApi()
return api.post<WeightEntryData>('weights', payload)
}
export async function updateWeight(id: number, payload: Partial<WeightPayload>) {
const api = useApi()
return api.patch<WeightEntryData>(`weights/${id}`, payload,{
toastErrorKey: 'errors.weight.update',
toastSuccessKey: 'success.weight.update'
})
}
export type UseWeighingShipmentOptions = {
modeShipment: WeighingMode
shipment: Ref<ShipmentData | null>
updateShipment: (id: number, payload: ShipmentPayload) => Promise<ShipmentData | null>
loadShipment?: (id: number) => Promise<ShipmentData | null>
}
export type UseWeighingOptions = {
mode: WeighingMode
reception: Ref<ReceptionData | null>
updateReception: (id: number, payload: ReceptionPayload) => Promise<ReceptionData | null>
loadReception?: (id: number) => Promise<ReceptionData | null>
}