import type { UserFieldConfig } from '#/utils/userFieldConfig';

import { defHttp } from '#/api/request';

enum Api {
  Prefix = '/api/system/SysConfig',
  SynPrefix = '/api/system/SynThirdInfo',
}

// 获取系统配置
export function getSysConfig() {
  return defHttp.get({ url: Api.Prefix });
}
// 获取当前签名密码强度策略
export function getSignPasswordStrength() {
  return defHttp.get({ url: `${Api.Prefix}/signPasswordStrength` });
}
export function getUserFieldConfig() {
  return defHttp.get<{ data: UserFieldConfig }>({ url: `${Api.Prefix}/userFields` });
}
export function updateUserFieldConfig(data: UserFieldConfig) {
  return defHttp.put({ url: `${Api.Prefix}/userFields`, data });
}
// 获取登录前可公开展示的品牌配置
export function getSystemBrand() {
  return defHttp.get({ url: `${Api.Prefix}/brand` }, { errorMessageMode: 'none' });
}
// 获取权限配置开关
export function getPermissionSwitches() {
  return defHttp.get({ url: `${Api.Prefix}/permissionSwitches` }, { errorMessageMode: 'none' });
}
// 更新系统配置
export function update(data) {
  return defHttp.put({ url: Api.Prefix, data });
}
// 测试企业微信配置的连接
export function testQy(data, type) {
  return defHttp.post({ url: `${Api.Prefix}/${type}/testQyWebChatConnect`, data });
}
// 测试企业微信配置的连接
export function testDing(data) {
  return defHttp.post({ url: `${Api.Prefix}/testDingTalkConnect`, data });
}
// 获取系统管理员
export function getAdminList() {
  return defHttp.get({ url: `${Api.Prefix}/getAdminList` });
}
// 设置系统管理员
export function setAdminList(data) {
  return defHttp.put({ url: `${Api.Prefix}/setAdminList`, data });
}
// 本地所有组织信息(包含公司和部门)同步到钉钉
export function synAllOrganizeSysToDing(type, departmentId) {
  return defHttp.get({ url: `${Api.SynPrefix}/synAllOrganizeSysToDing?type=${type}&departmentId=${departmentId}` });
}
// 本地所有用户信息同步到钉钉
export function synAllUserSysToDing(type, departmentId) {
  return defHttp.get({ url: `${Api.SynPrefix}/synAllUserSysToDing?type=${type}&departmentId=${departmentId}` });
}
// 本地所有组织信息(包含公司和部门)同步到企业微信
export function synAllOrganizeSysToQy(type, departmentId) {
  return defHttp.get({ url: `${Api.SynPrefix}/synAllOrganizeSysToQy?type=${type}&departmentId=${departmentId}` });
}
// 本地所有用户信息同步到企业微信
export function synAllUserSysToQy(type, departmentId) {
  return defHttp.get({ url: `${Api.SynPrefix}/synAllUserSysToQy?type=${type}&departmentId=${departmentId}` });
}
// 获取第三方(如：企业微信、钉钉)的组织与用户同步统计信息
// thirdType: 1-企业微信; 2-钉钉
export function getSynData(type) {
  return defHttp.get({ url: `${Api.SynPrefix}/getSynThirdTotal/${type}` });
}
// 解除第三方(如：企业微信、钉钉)的组织与用户同步
// thirdType: 1-企业微信; 2-钉钉
export function clearAllSyn(type) {
  return defHttp.get({ url: `${Api.SynPrefix}/clearAllSyn`, data: { type } });
}
// 获取第三方同步配置
export function getSocialsConfig() {
  return defHttp.get({ url: `${Api.Prefix}/socials` });
}
// 更新第三方同步配置
export function updateSocialsConfig(data) {
  return defHttp.put({ url: `${Api.Prefix}/socials`, data });
}
// 获取同步失败、未同步数原因
export function getHandleNum(data) {
  return defHttp.get({ url: `${Api.SynPrefix}/getHandleNum`, data });
}
