// 租户/子账号管理

import { id } from 'element-plus/es/locale';
import request from '/@/utils/request';

// 获取租户列表参数
type TenantListDTO = {
	accountType: number; // 账号类型
	companyType: number; // 企业类型
	status: number; // 状态  0: 启用 1: 禁用
	accountName: string; // 账号名称
	page: number; // 页码
	size: number; // 页数
	orderBy: string; // 排序字段
	direction: string; // 排序方式
};
// 获取租户列表
export const getTenantList = (params: Partial<TenantListDTO>) => {
	return request({
		url: '/tenant/list',
		method: 'get',
		params,
	});
};
// 创建租户参数
type CreateTenantDTO = {
	id?: number; // 租户id
	companyType: number | string; // 企业类型
	companyName: string; // 企业名称
	accountName: string; // 账号名称
	accountType: number | string; // 账号类型
	phone: string; // 手机号
	validStart: string; // 有效期开始
	validEnd: string; // 有效期结束
	accountLimit: number; // 子账号最大数量
};
// 创建租户
export const createTenant = (data: CreateTenantDTO) => {
	return request({
		url: '/tenant/create',
		method: 'post',
		data,
	});
};
// 修改租户
export const updateTenant = (data: CreateTenantDTO) => {
	return request({
		url: '/tenant/update',
		method: 'post',
		data,
	});
};
// 租户禁用
export const disableTenant = (data: { id: number }) => {
	return request({
		url: '/tenant/disable',
		method: 'post',
		data,
	});
};
// 租户启用
export const enableTenant = (data: { id: number }) => {
	return request({
		url: '/tenant/enable',
		method: 'post',
		data,
	});
};
// 租户导出
export const exportTenant = (params: Partial<TenantListDTO>) => {
	return request({
		url: '/tenant/export',
		method: 'get',
		params,
		responseType: 'blob',
	});
};
// 租户删除
export const deleteTenant = (data: { id: number }) => {
	return request({
		url: `/tenant/${data.id}/delete`,
		method: 'post',
	});
};

// 获取子账号列表参数
type TenantUserListDTO = {
	mobile: string; // 手机号
	companyName: string; // 企业名称
	accountType: number; // 账号类型
	status: number; // 状态 0: 启用 1: 禁用
	page: number; // 页码
	size: number; // 页数
	orderBy: string; // 排序字段
	direction: string; // 排序方式
};
// 获取子账号列表
export const getTenantUserList = (params: Partial<TenantUserListDTO>) => {
	return request({
		url: '/tenant/user/list',
		method: 'get',
		params,
	});
};

// 创建租户子账号参数
type CreateTenantUserDTO = {
	id?: number; // 子账号id
	name: string; // 姓名
	mobile: string; // 手机号
	companyName: number; // 企业名称
	department: string; // 部门
	accountType: string; // 账号类型
};
// 创建租户子账号
export const createTenantUser = (data: CreateTenantUserDTO) => {
	return request({
		url: '/tenant/user/create',
		method: 'post',
		data,
	});
};
// 修改租户子账号
export const updateTenantUser = (data: CreateTenantUserDTO) => {
	return request({
		url: '/tenant/user/update',
		method: 'post',
		data,
	});
};
// 租户子账号批量导入
export const importTenantUser = (data: any) => {
	return request({
		url: '/tenant/user/import',
		method: 'post',
		headers: { 'Content-Type': 'multipart/form-data' },
		data,
	});
};
// 租户子账号导出
export const exportTenantUser = (params: Partial<TenantUserListDTO>) => {
	return request({
		url: '/tenant/user/export',
		method: 'get',
		params,
		responseType: 'blob',
	});
};
// 租户子账号禁用
export const disableTenantUser = (data: { id: number }) => {
	return request({
		url: '/tenant/user/disable',
		method: 'post',
		data,
	});
};
// 租户子账号启用
export const enableTenantUser = (data: { id: number }) => {
	return request({
		url: '/tenant/user/enable',
		method: 'post',
		data,
	});
};
// 租户子账号删除
export const deleteTenantUser = (data: { id: number }) => {
	return request({
		url: `/tenant/user/${data.id}/delete`,
		method: 'post',
	});
};
