/**
 * 人员管理 API
 */
import { get, post, del } from '@/utils/request';

export interface StaffQuery {
  page: number;
  pageSize: number;
  username?: string;
  phone?: string;
  roleId?: number;
  status?: number;
}

export interface StaffForm {
  id?: number;
  username: string;
  password?: string;
  realName: string;
  phone: string;
  email?: string;
  roleIds?: string;
  status?: number;
  remark?: string;
}

export interface RoleOption {
  id: number;
  name: string;
  code: string;
}

/**
 * 分页查询管理员列表
 */
export function getStaffList(params: StaffQuery): Promise<{ list: any[]; total: number }> {
  return post('/user', params);
}

/**
 * 获取管理员详情
 */
export function getStaffById(id: number): Promise<any> {
  return get(`/user/${id}`);
}

/**
 * 新增管理员
 */
export function addStaff(data: StaffForm): Promise<void> {
  return post('/user/add', data);
}

/**
 * 更新管理员
 */
export function updateStaff(data: StaffForm): Promise<void> {
  return post('/user/update', data);
}

/**
 * 删除管理员
 */
export function deleteStaff(id: number): Promise<void> {
  return del(`/user/${id}`);
}

/**
 * 重置密码
 */
export function resetStaffPassword(id: number, newPassword: string): Promise<void> {
  return post('/user/reset-password', { id, newPassword });
}

/**
 * 获取管理员统计
 */
export function getStaffStatistics(): Promise<{ total: number; active: number; disabled: number; todayLogin: number }> {
  return get('/user/statistics');
}

/**
 * 获取所有角色（下拉用）
 */
export function getAllRoles(): Promise<RoleOption[]> {
  return get('/role/list-all-role');
}
