/** * Roles API * Handles all role-related API requests */ import { apiClient } from './client'; export interface Role { id: string; name: string; description: string; permissions: Record>; created_at: string; updated_at: string; } export interface RoleListResponse { success: boolean; message: string; data: Role[]; } /** * Get all roles */ export async function getAllRoles(): Promise { const response = await apiClient.get('/api/roles'); return response; } /** * Get a single role by ID */ export async function getRoleById(id: string): Promise { return apiClient.get(`/api/roles/${id}`); } /** * Create a new role */ export async function createRole(data: { name: string; description: string; permissions?: Record>; }): Promise { return apiClient.post('/api/roles', data); } /** * Update an existing role */ export async function updateRole( id: string, data: { name?: string; description?: string; permissions?: Record>; } ): Promise { return apiClient.put(`/api/roles/${id}`, data); } /** * Delete a role */ export async function deleteRole(id: string): Promise { return apiClient.delete(`/api/roles/${id}`); }