import axiosClient from '../axios/axios'; import type { Role, RoleListParams, RoleListResponse, RoleRequest } from '@/types'; const ROLES_ENDPOINT = 'api/roles'; export const roleService = { getRoles: async (params?: RoleListParams): Promise => { const response = await axiosClient.get(ROLES_ENDPOINT, { params: { skip: params?.skip ?? 0, limit: params?.limit ?? 10, search_term: params?.search_term, name: params?.name, display_name: params?.display_name, description: params?.description, effective_status: params?.effective_status, sort_by: params?.sort_by, sort_order: params?.sort_order, }, }); return response.data; }, getRoleById: async (id: number): Promise => { const response = await axiosClient.get(`${ROLES_ENDPOINT}/${id}`); return response.data; }, saveRole: async (payload: RoleRequest): Promise => { const response = payload.id ? await axiosClient.put(ROLES_ENDPOINT, payload) : await axiosClient.post(ROLES_ENDPOINT, payload); return response.data; }, updateRoleStatus: async (id: number, isActive: boolean): Promise => { const response = await axiosClient.patch(`${ROLES_ENDPOINT}/${id}/status`, { is_active: isActive, }); return response.data; }, };