import { RoleType, BatchAddRole, UserSource } from '@/constants/enumerate';

export interface LoginData {
  account: string;
  password: string;
}

// 登录名	名称	来源	角色	状态	关联账号
export interface UserItem {
  id: number;
  // 登录名
  loginName: string;
  // 名称
  name: string;
  // 工号 (可选)
  empno: string;
  // 来源 (例如：内部用户)
  source: UserSource;
  // 角色 (例如：学校管理员, 扫描员)
  role: RoleType;
  // 状态 (启用/禁用)
  enable: boolean;
  // 关联账号
  relatedAccount: string;
  // 学校
  schoolId: number;
  // 最后登录IP
  lastLoginIp: string;
  // 描述
  description: string;
}
export type UserListPageRes = PageResult<UserItem>;

export interface UserListFilter {
  // 登录名
  loginName?: string;
  // 姓名
  name?: string;
  // 状态
  enable?: boolean;
  // 角色
  role?: RoleType;
  // 来源
  source?: UserSource;
}
export type UserListPageParam = PageParams<UserListFilter>;

export interface UserUpdateParam {
  id?: number;
  // 登录名
  loginName: string;
  // 名称
  name: string;
  // 工号 (可选)
  empno: string;
  // 状态 (启用/禁用)
  enable: boolean;
  // 角色 (例如：学校管理员, 扫描员)
  role: RoleType;
  // 密码
  password: string;
}

export interface ResetPasswordParam {
  ids: number[];
  password: string;
}
export interface EnableUserParam {
  ids: number[];
  enabled: boolean;
}

export interface UpdatePwdData {
  // id: number;
  // oldPassword: string;
  password: string;
}

export interface BatchCreateUserParam {
  // 角色
  role: BatchAddRole;
  // 命名规则
  prefix: string;
  // 每分组账号数
  number: number;
  // 是否随机密码
  random: boolean;
  // 密码
  password?: string;
  // 科目
  subjectCodeString: string;
}
