import request from '@/utils/request'

/**
 * 
 * 发送验证码
 * @param params 发送验证码的参数
 * @param params.email 邮箱
 * @param params.type 验证码类型
 * @param params.password 密码
 * @returns 验证码发送成功的响应
 */
export const SendVerificationCode = (params) => {
	return request({
		url: '/api/user/send-verification-code',
		method: 'post',
		loading: true,
		params
	})
}

/**
 * 注册用户
 * @param data 注册用户的参数
 * @param data.username 姓名
 * @param data.password 密码
 * @param data.email 邮箱
 * @param data.verificationCode 验证码
 * @returns 注册成功后的token
*/
export const Register = (data) => {
	return request({
		url: '/api/user/register',
		method: 'post',
		loading: true,
		data
	})
}
/**
 * 登录用户
 * @param data 登录用户的参数
 * @param data.email 邮箱
 * @param data.password 密码
 * @param data.verificationCode 验证码
 * @returns 登录成功后的token
*/
export const Login = (data) => {
	return request({
		url: '/api/user/login',
		method: 'post',
		loading: true,
		data
	})
}
/**
 * 退出登录
 * @returns 退出登录成功的响应
*/
export const Logout = () => {
	return request({
		url: '/api/user/logout',
		method: 'post',
		loading: true,
	})
}

/**
 * 忘记密码
 * @param data 忘记密码的参数
 * @param data.email 邮箱
 * @param data.newPassword 新密码
 * @param data.verificationCode 验证码
 * @returns 忘记密码成功后的token
*/
export const ForgotPassword = (data) => {
	return request({
		url: '/api/user/forgot-password',
		method: 'post',
		loading: true,
		data
	})
}

/**
 * 获取用户信息
 * @returns 用户信息
*/
export const GetUserInfo = () => {
	return request({
		url: '/api/user/info',
		method: 'get',
		loading: true,
	})
}

/**
 * 更新用户拓展信息
 * @param data 更新用户拓展信息的参数
 * @param data.base 基础信息
 * @param data.vibe 风格特点
 * @param data.role 角色类型
 * @returns 更新用户拓展信息成功的响应
*/
export const UpdateUserProfile = (data, loading = false) => {
	return request({
		url: '/api/user/profile',
		method: 'put',
		loading,
		data
	})
}

/**
 * 上传头像
 * @param data 上传头像的参数
 * @param data.avatar 头像文件
 * @returns 上传头像成功的响应
*/
export const UpdateUserAvatar = (data) => {
	return request({
		url: '/api/user/avatar',
		method: 'post',
		data
	})
}

/**
 * 获取上传头像次数
*/
export const getAvatarLimit = () => {
	return request({
		url: '/api/user/avatar/limit',
		method: 'get',
	})
}

/**
 * 获取用户风格图片列表
 * @param params 获取用户风格图片列表的参数	
 * @param params.pageNum 页码
 * @param params.pageSize 每页数量
 * @returns 用户风格图片列表
*/
export const GetUserStyleImages = (params) => {
	return request({
		url: '/api/user/style/images',
		method: 'get',
		params,
		loading: true,
	})
}
