42 lines
1.4 KiB
TypeScript
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>
|
|
}
|