mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-29 14:08:11 +00:00
fix last first mile
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
import { api } from '../auth/http';
|
||||
import { URL_CONSTANTS } from '@/constants/URLS';
|
||||
|
||||
export const FIRST_MILE_STATUSES = [
|
||||
'PAYMENT_PENDING',
|
||||
'READY_TO_TRANSIT',
|
||||
'IN_TRANSIT',
|
||||
'RECEIVED_TO_PORT',
|
||||
] as const;
|
||||
export type FirstMileApiStatus = (typeof FIRST_MILE_STATUSES)[number];
|
||||
|
||||
export interface FirstMileBooking {
|
||||
id: string;
|
||||
reference: string;
|
||||
firstMilePickupAddress?: string | null;
|
||||
cargoFreeText?: string | null;
|
||||
cargoTotalWeightVgm: number;
|
||||
totalAmount: number;
|
||||
scheduledDate?: string | null;
|
||||
company?: { id: string; name?: string; phone?: string | null; contactPersonName?: string | null; contactPersonPhone?: string | null } | null;
|
||||
serviceType?: { id: string; name?: string } | null;
|
||||
originYard?: { id: string; name?: string } | null;
|
||||
destinationYard?: { id: string; name?: string } | null;
|
||||
cargoType?: { id: string; name?: string } | null;
|
||||
}
|
||||
|
||||
export interface FirstMileVehicle {
|
||||
id: string;
|
||||
plateNumber: string;
|
||||
manufacturer: string;
|
||||
model: string;
|
||||
}
|
||||
|
||||
export interface FirstMileRecord {
|
||||
id: string;
|
||||
bookingId: string;
|
||||
status: FirstMileApiStatus;
|
||||
advancedPayment: number;
|
||||
remainingPayment: number;
|
||||
estimatedKm?: number | null;
|
||||
exactKm?: number | null;
|
||||
vehicleId?: string | null;
|
||||
booking?: FirstMileBooking | null;
|
||||
vehicle?: FirstMileVehicle | null;
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
}
|
||||
|
||||
export interface FirstMileListResponse {
|
||||
data: FirstMileRecord[];
|
||||
meta: { total: number; page: number; pageSize: number; totalPages: number };
|
||||
}
|
||||
|
||||
const FM = URL_CONSTANTS.FIRST_MILE;
|
||||
|
||||
export const firstMileService = {
|
||||
list: (pageSize = 1000) =>
|
||||
api.get<FirstMileListResponse>(`${FM.BASE}?pageSize=${pageSize}`),
|
||||
getById: (id: string) => api.get<FirstMileRecord>(FM.BY_ID(id)),
|
||||
update: (id: string, data: { status?: FirstMileApiStatus; vehicleId?: string | null }) =>
|
||||
api.patch<FirstMileRecord>(FM.BY_ID(id), data),
|
||||
accept: (bookingReference: string) =>
|
||||
api.post<FirstMileRecord>(FM.ACCEPT(bookingReference)),
|
||||
};
|
||||
@@ -0,0 +1,64 @@
|
||||
import { api } from '../auth/http';
|
||||
import { URL_CONSTANTS } from '@/constants/URLS';
|
||||
|
||||
export const LAST_MILE_STATUSES = [
|
||||
'PAYMENT_PENDING',
|
||||
'READY_TO_TRANSIT',
|
||||
'IN_TRANSIT',
|
||||
'DELIVERED',
|
||||
] as const;
|
||||
export type LastMileApiStatus = (typeof LAST_MILE_STATUSES)[number];
|
||||
|
||||
export interface LastMileBooking {
|
||||
id: string;
|
||||
reference: string;
|
||||
lastMileDeliveryAddress?: string | null;
|
||||
cargoFreeText?: string | null;
|
||||
cargoTotalWeightVgm: number;
|
||||
totalAmount: number;
|
||||
scheduledDate?: string | null;
|
||||
company?: { id: string; name?: string; phone?: string | null; contactPersonName?: string | null; contactPersonPhone?: string | null } | null;
|
||||
serviceType?: { id: string; name?: string } | null;
|
||||
originYard?: { id: string; name?: string } | null;
|
||||
destinationYard?: { id: string; name?: string } | null;
|
||||
cargoType?: { id: string; name?: string } | null;
|
||||
}
|
||||
|
||||
export interface LastMileVehicle {
|
||||
id: string;
|
||||
plateNumber: string;
|
||||
manufacturer: string;
|
||||
model: string;
|
||||
}
|
||||
|
||||
export interface LastMileRecord {
|
||||
id: string;
|
||||
bookingId: string;
|
||||
status: LastMileApiStatus;
|
||||
advancedPayment: number;
|
||||
remainingPayment: number;
|
||||
estimatedKm?: number | null;
|
||||
exactKm?: number | null;
|
||||
vehicleId?: string | null;
|
||||
booking?: LastMileBooking | null;
|
||||
vehicle?: LastMileVehicle | null;
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
}
|
||||
|
||||
export interface LastMileListResponse {
|
||||
data: LastMileRecord[];
|
||||
meta: { total: number; page: number; pageSize: number; totalPages: number };
|
||||
}
|
||||
|
||||
const LM = URL_CONSTANTS.LAST_MILE;
|
||||
|
||||
export const lastMileService = {
|
||||
list: (pageSize = 1000) =>
|
||||
api.get<LastMileListResponse>(`${LM.BASE}?pageSize=${pageSize}`),
|
||||
getById: (id: string) => api.get<LastMileRecord>(LM.BY_ID(id)),
|
||||
update: (id: string, data: { status?: LastMileApiStatus; vehicleId?: string | null }) =>
|
||||
api.patch<LastMileRecord>(LM.BY_ID(id), data),
|
||||
accept: (bookingReference: string) =>
|
||||
api.post<LastMileRecord>(LM.ACCEPT(bookingReference)),
|
||||
};
|
||||
Reference in New Issue
Block a user