TorbatYar/frontend/modules/delivery/features/drivers.tsx
Mortezakoohjani 7978970783 feat(delivery): add Torbat Driver frontend module with real API wiring.
Ship the delivery platform UI under modules/delivery with thin app routes, BFF proxy, CRUD for phase 10.0-10.1 APIs, and capability-gated future screens.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-27 12:02:01 +03:30

40 lines
1.5 KiB
TypeScript

"use client";
import { createDeliveryListPage } from "@/modules/delivery/components/DeliveryListCrudPage";
import { deliveryApi } from "@/modules/delivery/services/delivery-api";
export const DriversPage = createDeliveryListPage({
title: "رانندگان",
breadcrumb: "رانندگان",
resourceKey: "drivers",
permission: "delivery.drivers.view",
api: {
list: async (tenantId, params) => {
const res = await deliveryApi.drivers.list(tenantId, params);
return Array.isArray(res) ? res : res.items;
},
get: deliveryApi.drivers.get,
create: deliveryApi.drivers.create,
update: deliveryApi.drivers.update,
remove: deliveryApi.drivers.remove,
},
columns: [
{ key: "code", header: "کد", type: "link", linkPrefix: "/delivery/drivers" },
{ key: "display_name", header: "نام" },
{ key: "mobile", header: "موبایل" },
{ key: "status", header: "وضعیت", type: "status" },
{ key: "created_at", header: "ایجاد", type: "datetime" },
],
createFields: [
{ name: "organization_id", label: "سازمان", type: "organization", required: true },
{ name: "hub_id", label: "هاب", type: "hub" },
{ name: "code", label: "کد", required: true },
{ name: "display_name", label: "نام نمایشی", required: true },
{ name: "mobile", label: "موبایل" },
{ name: "email", label: "ایمیل", type: "email" },
],
detailHref: (row) => row.id ? `/delivery/drivers/${row.id}` : null,
});
export default DriversPage;