import { request } from './http'; import { resourceApi } from './resource'; /** 平台角色、菜单、账号和工作台接口。 */ export interface DashboardMetric { name: string; value: number; } export interface DashboardDailyMetric { date: string; order_count: number; order_amount: number; } export interface DashboardOverview { gas_basic_count: number; delivery_basic_count: number; staff_count: number; user_count: number; product_count: number; active_contract_count: number; today_order_count: number; today_order_amount: number; pending_ticket_count: number; paid_amount: number; order_statuses: DashboardMetric[]; product_statuses: DashboardMetric[]; payment_channels: DashboardMetric[]; recent_orders: DashboardDailyMetric[]; } export type PlatformRole = { identity: string; role_code: string; name: string; location_scope: string; is_system: boolean; status: number }; export type PlatformMenu = { identity: string; parent_identity?: string; group_code: string; name: string; icon: string; path: string; sort_no: number }; export const platformApi = { overview: () => request('/dashboard/overview'), listAccount: () => request<{ total: number; list: Record[] }>('/platform_account'), listRole: () => resourceApi.list('/platform_role'), createRole: (data: Record) => resourceApi.create('/platform_role', data), listMenu: () => request<{ total: number; list: PlatformMenu[] }>('/platform_menu'), listRoleMenuIdentities: (identity: string) => request<{ menu_identities: string[] }>( `/platform_role/${identity}/menu`, ), replaceRoleMenus: (identity: string, menuIdentities: string[]) => request<{ updated: boolean }>( `/platform_role/${identity}/menu`, { method: 'PUT', body: JSON.stringify({ menu_identities: menuIdentities }), }, ), };