mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-29 01:20:55 +00:00
73 lines
3.0 KiB
TypeScript
73 lines
3.0 KiB
TypeScript
import type { FleetResourceConfig } from "./resources";
|
|
import { VEHICLE_TYPE_OPTIONS } from "./vehicles";
|
|
|
|
const DRIVER_STATUS_OPTIONS = [
|
|
{ label: "Active", value: "ACTIVE" },
|
|
{ label: "Inactive", value: "INACTIVE" },
|
|
{ label: "Suspended", value: "SUSPENDED" },
|
|
{ label: "On leave", value: "ON_LEAVE" },
|
|
];
|
|
|
|
export const driversConfig: FleetResourceConfig = {
|
|
slug: "drivers",
|
|
label: "Drivers",
|
|
subtitle: "Manage driver records and licenses",
|
|
basePath: "/dashboard/drivers",
|
|
addLabel: "Add Driver",
|
|
entityLabel: "Driver",
|
|
searchPlaceholder: "Search drivers…",
|
|
supportsSearch: true,
|
|
removeAction: "delete",
|
|
cardTitleKey: "firstName",
|
|
cardCodeKey: "licenseNumber",
|
|
cardSubtitleKey: "status",
|
|
listFilters: [
|
|
{
|
|
key: "status",
|
|
label: "Status",
|
|
allLabel: "All statuses",
|
|
options: DRIVER_STATUS_OPTIONS,
|
|
},
|
|
],
|
|
searchKeys: ["firstName", "lastName", "email", "phoneNumber", "licenseNumber", "status"],
|
|
columns: [
|
|
{ id: "licenseNumber", header: "License Number", accessorKey: "licenseNumber", format: "code", size: 140 },
|
|
{ id: "firstName", header: "First Name", accessorKey: "firstName", format: "text", size: 120 },
|
|
{ id: "lastName", header: "Last Name", accessorKey: "lastName", format: "text", size: 120 },
|
|
{ id: "email", header: "Email", accessorKey: "email", format: "text", size: 180 },
|
|
{ id: "phoneNumber", header: "Phone", accessorKey: "phoneNumber", format: "text", size: 120 },
|
|
{ id: "licenseExpiryDate", header: "License Expiry", accessorKey: "licenseExpiryDate", format: "date", size: 130 },
|
|
{ id: "status", header: "Status", accessorKey: "status", format: "statusBadge", size: 100 },
|
|
],
|
|
formFields: [
|
|
{ name: "licenseNumber", label: "License Number", type: "text", required: true },
|
|
{ name: "firstName", label: "First Name", type: "text", required: true },
|
|
{ name: "lastName", label: "Last Name", type: "text", required: true },
|
|
{ name: "email", label: "Email", type: "email", required: true },
|
|
{ name: "phoneNumber", label: "Phone Number", type: "text", required: true },
|
|
{ name: "dateOfBirth", label: "Date of Birth", type: "date", required: true },
|
|
{ name: "licenseExpiryDate", label: "License Expiry Date", type: "date", required: true },
|
|
{ name: "status", label: "Status", type: "select", required: true, options: DRIVER_STATUS_OPTIONS },
|
|
{ name: "vehicleTypesAuthorized", label: "Authorized Vehicle Types", type: "multiselect", options: VEHICLE_TYPE_OPTIONS },
|
|
{ name: "address", label: "Address", type: "textarea" },
|
|
{ name: "emergencyContact", label: "Emergency Contact", type: "text" },
|
|
{ name: "notes", label: "Notes", type: "textarea" },
|
|
],
|
|
emptyValues: {
|
|
licenseNumber: "",
|
|
firstName: "",
|
|
lastName: "",
|
|
email: "",
|
|
phoneNumber: "",
|
|
dateOfBirth: "",
|
|
licenseExpiryDate: "",
|
|
status: "ACTIVE",
|
|
vehicleTypesAuthorized: [],
|
|
address: "",
|
|
emergencyContact: "",
|
|
notes: "",
|
|
},
|
|
};
|
|
|
|
export { DRIVER_STATUS_OPTIONS };
|