import { api } from '@/lib/api' import type { UserResponse, RoleResponse, PermissionResponse } from '@/types/api' // ─── Users ──────────────────────────────────────────────────────────────────── export interface CreateUserBody { username: string password: string fullName: string roleId: string reportsToUserId?: string | null } export interface UpdateUserBody { fullName: string username?: string roleId?: string currentPassword?: string newPassword?: string } export const users = { list: () => api.get('/users').then(r => r.data), get: (id: string) => api.get(`/users/${id}`).then(r => r.data), create: (body: CreateUserBody) => api.post('/users', body).then(r => r.data), update: (id: string, body: UpdateUserBody) => api.put(`/users/${id}`, body).then(r => r.data), deactivate: (id: string) => api.delete(`/users/${id}`), } // ─── Roles ──────────────────────────────────────────────────────────────────── export interface RoleBody { name: string level: number } export const roles = { list: () => api.get('/roles').then(r => r.data), get: (id: string) => api.get(`/roles/${id}`).then(r => r.data), getPermissions: (id: string) => api.get(`/roles/${id}/permissions`).then(r => r.data), create: (body: RoleBody) => api.post('/roles', body).then(r => r.data), update: (id: string, body: RoleBody) => api.put(`/roles/${id}`, body).then(r => r.data), assignPermissions: (id: string, permissionIds: string[]) => api.put(`/roles/${id}/permissions`, { permissionIds }).then(r => r.data), deactivate: (id: string) => api.delete(`/roles/${id}`), } // ─── Permissions ────────────────────────────────────────────────────────────── export const permissions = { list: () => api.get('/permissions').then(r => r.data), }