mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-30 12:18:11 +00:00
- Updated ContractRouteLineView to clarify that routes carry no quantity and are pure origin-destination lanes. - Modified GeneralContractService to reflect changes in route handling, removing quantity-related logic. - Adjusted BookingsService to persist contracted routes without quantities, aligning with the new contract structure. - Revised CreateBookingDto and CreateContractRouteDto to remove quantity fields, emphasizing shared pool usage. - Added ContractOrdersPanel component to display drawdown orders and their associated pool. - Implemented useContractOrders and useContractPool hooks for fetching order and pool data. - Created booking-orders.service.ts to manage API interactions for drawdown orders and pool data. - Updated BookingRequestDetailPage and PlaceOrderDialog to accommodate new order handling logic.
117 lines
4.9 KiB
TypeScript
117 lines
4.9 KiB
TypeScript
import type { FleetResourceSlug } from "@/pages/fleet/config/resources";
|
|
import type { BookingListFilter } from "@/services/bookings.service";
|
|
import type { RuleEngineListParams } from "@/services/ruleEngine/ruleEngine.service";
|
|
import type { CompanyListFilter } from "@/types/customer";
|
|
import type { RuleEngineResourceSlug } from "@/types/rule-engine";
|
|
import type { TrainScheduleFilters } from "@/types/trainScheduling";
|
|
|
|
export const QUERY_KEYS = {
|
|
USERS: {
|
|
ROOT: ["users"] as const,
|
|
ADD: ["users", "add"] as const,
|
|
},
|
|
|
|
FILES: {
|
|
ROOT: ["file-upload-settings"] as const,
|
|
list: () => ["file-upload-settings", "list"] as const,
|
|
byId: (id: string) => ["file-upload-settings", "detail", id] as const,
|
|
byCode: (code: string) => ["file-upload-settings", "by-code", code] as const,
|
|
},
|
|
|
|
DROPDOWN_SETTINGS: {
|
|
ROOT: ["dropdown-settings"] as const,
|
|
list: () => ["dropdown-settings", "list"] as const,
|
|
byId: (id: string) => ["dropdown-settings", "detail", id] as const,
|
|
byCode: (code: string) => ["dropdown-settings", "by-code", code] as const,
|
|
},
|
|
|
|
CUSTOMERS: {
|
|
ROOT: ["customers"] as const,
|
|
stats: ["customers", "stats"] as const,
|
|
list: (filter?: CompanyListFilter) =>
|
|
["customers", "list", filter ?? {}] as const,
|
|
byId: (id: string) => ["customers", "detail", id] as const,
|
|
bookings: (id: string) => ["customers", "detail", id, "bookings"] as const,
|
|
documents: (id: string) => ["customers", "detail", id, "documents"] as const,
|
|
payments: (id: string) => ["customers", "detail", id, "payments"] as const,
|
|
},
|
|
|
|
BOOKINGS: {
|
|
ROOT: ["bookings"] as const,
|
|
list: (filter?: BookingListFilter) =>
|
|
["bookings", "list", filter ?? {}] as const,
|
|
listSummary: (filter?: BookingListFilter) =>
|
|
["bookings", "list-summary", filter ?? {}] as const,
|
|
byId: (id: string) => ["bookings", "detail", id] as const,
|
|
},
|
|
|
|
BOOKING_ORDERS: {
|
|
ROOT: ["booking-orders"] as const,
|
|
byContract: (contractBookingId: string) =>
|
|
["booking-orders", "by-contract", contractBookingId] as const,
|
|
pool: (contractBookingId: string) =>
|
|
["booking-orders", "pool", contractBookingId] as const,
|
|
},
|
|
|
|
TRAIN_SCHEDULING: {
|
|
ROOT: ["train-scheduling"] as const,
|
|
eligible: (freightType?: string, filters?: TrainScheduleFilters) =>
|
|
["train-scheduling", "eligible-bookings", freightType ?? "CONTAINER", filters ?? {}] as const,
|
|
locomotives: (routeId?: string) =>
|
|
["train-scheduling", "locomotives", routeId ?? "all"] as const,
|
|
stations: () => ["train-scheduling", "stations"] as const,
|
|
schedules: () => ["train-scheduling", "schedules"] as const,
|
|
scheduleById: (id: string) => ["train-scheduling", "schedule", id] as const,
|
|
track: (id: string) => ["train-scheduling", "track", id] as const,
|
|
batchBoard: () => ["train-scheduling", "batch-board"] as const,
|
|
batchBoardDetail: (scheduleId: string) =>
|
|
["train-scheduling", "batch-board", scheduleId] as const,
|
|
unassignedBookings: (id: string) =>
|
|
["train-scheduling", "unassigned", id] as const,
|
|
compositionRemovals: (id: string) =>
|
|
["train-scheduling", "removals", id] as const,
|
|
},
|
|
|
|
FLEET: {
|
|
ROOT: ["fleet"] as const,
|
|
list: (resource: FleetResourceSlug | string) => ["fleet", "list", resource] as const,
|
|
},
|
|
|
|
FIRST_MILE: {
|
|
ROOT: ["first-mile"] as const,
|
|
list: (filter?: Record<string, unknown>) => ["first-mile", "list", filter ?? {}] as const,
|
|
byId: (id: string) => ["first-mile", "detail", id] as const,
|
|
},
|
|
|
|
LAST_MILE: {
|
|
ROOT: ["last-mile"] as const,
|
|
list: (filter?: Record<string, unknown>) => ["last-mile", "list", filter ?? {}] as const,
|
|
byId: (id: string) => ["last-mile", "detail", id] as const,
|
|
},
|
|
|
|
RULE_ENGINE: {
|
|
ROOT: ["rule-engine"] as const,
|
|
list: (resource: RuleEngineResourceSlug | string, params?: RuleEngineListParams) =>
|
|
["rule-engine", "list", resource, params ?? {}] as const,
|
|
detail: (resource: RuleEngineResourceSlug | string, id: string) =>
|
|
["rule-engine", "detail", resource, id] as const,
|
|
chain: ["rule-engine", "approval-rules", "chain"] as const,
|
|
selectOptions: (
|
|
resource: RuleEngineResourceSlug | string,
|
|
params?: Record<string, unknown>,
|
|
) => ["rule-engine", "select-options", resource, params ?? {}] as const,
|
|
orderList: (resource: RuleEngineResourceSlug | string) =>
|
|
["rule-engine", "order-list", resource] as const,
|
|
},
|
|
|
|
OVERVIEW: {
|
|
ROOT: ["overview"] as const,
|
|
dashboard: (range?: string) => ["overview", "dashboard", range ?? "30d"] as const,
|
|
bookingsTab: (range?: string) => ["overview", "bookings", range ?? "30d"] as const,
|
|
billingTab: (range?: string) => ["overview", "billing", range ?? "30d"] as const,
|
|
operationsTab: () => ["overview", "operations"] as const,
|
|
customersTab: (range?: string) => ["overview", "customers", range ?? "30d"] as const,
|
|
staffTab: (range?: string) => ["overview", "staff", range ?? "30d"] as const,
|
|
},
|
|
} as const;
|