import request from '@/utils/request'

/**
 * 登录发送验证码
 * @param data - 包含邮箱的参数
 * @param data.email - 邮箱
 * @param data.password - 密码
*/
export const AccountSendLoginCode = (data) => {
	return request({
		url: '/buyer/account/preLogin',
		method: 'post',
		data,
		loading: true
	})
}
/**
 * 登录
 * @param data - 包含邮箱的参数
 * @param data.email - 邮箱
 * @param data.password - 密码
 * @param data.emailVerifyCode - 验证码
*/
export const AccountLogin = (data) => {
	return request({
		url: '/buyer/account/login',
		method: 'post',
		data,
		loading: true
	})
}

/**
 * 注册
 * @param data - 包含注册信息的参数
 * @param data.email - 邮箱
 * @param data.password - 密码
 * @param data.username - 用户名
 * @param data.emailVerifyCode - 验证码
 */
export const AccountRegister = (data) => {
	return request({
		url: '/buyer/account/register',
		method: 'post',
		data,
		loading: true
	})
}
/**
 * 注册||忘记密码：发送邮箱验证码
 * @param data - 包含邮箱的参数
 * @param data.email - 邮箱
 * @param data.operationType - 操作类型：FORGET_PWD, REGISTER
*/
export const AccountSendVerifyCode = (data) => {
	return request({
		url: '/buyer/account/sendCode',
		method: 'post',
		data,
		loading: true
	})
}
/**
 * 忘记密码：重置密码
 * @param data - 包含邮箱的参数
 * @param data.email - 邮箱
 * @param data.password - 密码
 * @param data.emailVerifyCode - 验证码
*/
export const AccountResetPassword = (data) => {
	return request({
		url: '/buyer/account/resetPassword',
		method: 'post',
		data,
		loading: true
	})
}
/**
 * 通用验证码校验
 * @param data - 包含邮箱的参数
 * @param data.email - 邮箱
 * @param data.emailVerifyCode - 验证码
 * @param data.operationType - 操作类型：FORGET_PWD, BIND_MAILBOX
*/
export const AccountVerifyCode = (data) => {
	return request({
		url: '/buyer/account/verifyCode',
		method: 'post',
		data,
		loading: true
	})
}

/**
 * 变更邮箱：发送新邮箱验证码
 * @param data - 包含邮箱的参数
 * @param data.oldEmail - 旧邮箱
 * @param data.newEmail - 新邮箱
*/
export const AccountSendEmailChangeCode = (data) => {
	return request({
		url: '/buyer/account/sendEmailChangeCode',
		method: 'post',
		data,
		loading: true
	})
}
/**
 * 变更邮箱：绑定新邮箱
 * @param data - 包含邮箱的参数
 * @param data.oldEmail - 旧邮箱
 * @param data.newEmail - 新邮箱
 * @param data.emailVerifyCode - 验证码
*/
export const AccountBindEmail = (data) => {
	return request({
		url: '/buyer/account/bindEmail',
		method: 'post',
		data,
		loading: true
	})
}

/**
 * 退出登录
 * @param data - 参数
 * @param data.userId - 用户ID
*/
export const AccountLogout = (data) => {
	return request({
		url: '/buyer/account/logout',
		method: 'post',
		data,
		loading: true
	})
}
