/*
 * @Author: xiejiang
 * @Date: 2024-12-03 10:42:22
 * @LastEditors: xiejiang
 * @LastEditTime: 2024-12-04 15:28:30
 * @Description:
 * Copyright（c）2024 by 好老师教育科技有限公司 All right Reserved.
 */
import http from '@/api'
import {
  ReqRolePage,
  ReqRole,
  ResRoleList,
  ResUserList,
  ReqUserPage,
  ReqUser,
  ResLog,
  ReqLogPage
} from '@/api/interface/user-roles/index'

const api = {
  getRolePage: '/platform/role/page', // 平台角色分页查询
  postRoleAddUpd: '/platform/role/addUpd', // 添加/编辑角色
  getRoleOperate: '/platform/role/operate', // 平台角色 - 1删除/2启用/3停用
  getRoleDetail: '/platform/role/detail', // 角色详情
  getRoleList: '/platform/role/list', // 平台角色列表查询

  // 平台用户
  getUserList: '/platform/user/list', // 平台用户分页查询
  getUserDetail: '/platform/user/detail', // 用户详情
  postUserAddUpd: '/platform/user/addUpd', // 添加/修改用户
  getUserOperate: '/platform/user/operate', // 启用/停用/删除/ 平台用户

  getLogs: '/platform/login/logs' // 登录日志查询(按角色或按用户)
}

/**
 * @description 平台角色分页查询
 * @author 汪洋
 * @docs http://api.seevin.com/project/669/interface/api/33188
 * @param page 页码  [必填]
 * @param limit 每页数量（默认为10）
 * @param roleName 角色名称
 * @param status 角色状态 1编辑中 2 启用 3 停用
 */
export const getRolePage = (params: ReqRolePage) => {
  return http.get<ResRoleList[]>(api.getRolePage, params)
}

/**
 * @description 添加/编辑角色
 * @author 汪洋
 * @docs http://api.seevin.com/project/669/interface/api/33126
 * @param description 角色描述
 * @param roleId 角色id
 * @param roleName 角色姓名
 */
export const postRoleAddUpd = (data: ReqRole) => {
  return http.post<Boolean>(api.postRoleAddUpd, data, { noLoading: false })
}

/**
 * @description 平台角色 - 1删除/2启用/3停用
 * @author 汪洋
 * @docs http://api.seevin.com/project/669/interface/api/33129
 * @param roleId roleId
 * @param operateType 平台角色 - 1删除/2启用/3停用
 */
export const getRoleOperate = (params: ReqRole) => {
  return http.get<Boolean>(api.getRoleOperate, params, { noLoading: false })
}

/**
 * @description 角色详情
 * @author 汪洋
 * @docs http://api.seevin.com/project/669/interface/api/33157
 * @param page 页码  [必填]
 * @param limit 每页数量（默认为10）
 * @param roleId 角色id
 */
export const getRoleDetail = (params: ReqRole) => {
  return http.get<ResRoleList>(api.getRoleDetail, params)
}

/**
 * @description 平台角色列表查询
 * @author 汪洋
 * @docs http://api.seevin.com/project/669/interface/api/33128
 * @param roleName 角色名称
 * @param status 角色状态 1编辑中 2 启用 3 停用
 */
export const getRoleList = (params: ReqRole) => {
  return http.get<ResRoleList[]>(api.getRoleList, params, { noLoading: true })
}

/*------------------- 用户列表 -------------------*/

/**
 * @description 平台用户分页查询
 * @author 汪洋
 * @docs http://api.seevin.com/project/669/interface/api/33193
 * @param page 页码  [必填]
 * @param limit 每页数量（默认为10）
 * @param mobileOrName 姓名或手机号
 * @param status 状态 1编辑中 2启用 3 停用
 */
export const getUserList = (params: ReqUserPage) => {
  return http.get<ResUserList[]>(api.getUserList, params)
}

/**
 * @description 添加/修改用户
 * @author 汪洋
 * @docs http://api.seevin.com/project/669/interface/api/33191
 * @param mobile 手机号
 * @param remark 备注
 * @param roleIds 角色id
 * @param userId 用户id
 * @param userName 用户姓名
 */
export const postUserAddUpd = (data: ReqUser) => {
  return http.post<Boolean>(api.postUserAddUpd, data)
}

/**
 * @description 启用/停用/删除/ 平台用户
 * @author 汪洋
 * @docs http://api.seevin.com/project/669/interface/api/33194
 * @param operateType 操作类型 1删除/2启用/3停用
 * @param userId 用户id
 */
export const getUserOperate = (params: ReqUser) => {
  return http.get<Boolean>(api.getUserOperate, params, { noLoading: true })
}

/**
 * @description 用户详情
 * @author 汪洋
 * @docs http://api.seevin.com/project/669/interface/api/33192
 * @param page 页码  [必填]
 * @param limit 每页数量（默认为10）
 * @param userId 用户id
 */
export const getUserDetail = (params: ReqUserPage) => {
  return http.get<ResUserList>(api.getUserDetail, params)
}

/**
 * @description 登录日志查询(按角色或按用户)
 * @author 汪洋
 * @docs http://api.seevin.com/project/669/interface/api/33124
 * @param userId 用户id
 * @param roleId roleId
 */
export const getLogs = (params: ReqLogPage) => {
  return http.get<ResLog[]>(api.getLogs, params)
}
