import { apiRequest } from "./_shared"; // Role (Platform Role) types - 角色管理接口 export type Role = { role_id: string; role_code: string; role_name: string; is_builtin: boolean; description: string | null; permission_codes: string[]; }; export type PlatformPermission = { permission_code: string; permission_name: string; module_code: string; description: string | null; }; export type RoleCreatePayload = { role_code: string; role_name: string; description?: string | null; permission_codes?: string[]; }; export type RoleUpdatePayload = { role_name?: string; description?: string | null; // null = clear }; export async function listPlatformRoles(): Promise { return apiRequest("/api/v1/platform/roles"); } export async function getPlatformRole(roleCode: string): Promise { return apiRequest(`/api/v1/platform/roles/${roleCode}/permissions`); } export async function listPlatformPermissions(): Promise { return apiRequest("/api/v1/platform/permissions"); } export async function createPlatformRole(input: RoleCreatePayload): Promise { return apiRequest( "/api/v1/platform/roles", { method: "POST", body: JSON.stringify(input) }, ); } export async function updatePlatformRole( roleCode: string, input: RoleUpdatePayload, ): Promise { return apiRequest( `/api/v1/platform/roles/${roleCode}`, { method: "PATCH", body: JSON.stringify(input) }, ); } export async function deletePlatformRole( roleCode: string, ): Promise<{ role_code: string; deleted: boolean }> { return apiRequest( `/api/v1/platform/roles/${roleCode}`, { method: "DELETE" }, ); } export async function updatePlatformRolePermissions( roleCode: string, permissionCodes: string[], ): Promise { return apiRequest( `/api/v1/platform/roles/${roleCode}/permissions`, { method: "PATCH", body: JSON.stringify({ permission_codes: permissionCodes }) }, ); } // 兼容旧的 workspace 级别接口(已废弃,建议使用 system-level 接口) /** @deprecated 使用 listPlatformEmployees 代替 */