import request from '@/utils/request'

/**
 * 生成试穿效果
 * @param data 试穿效果数据
 * @param data.customerId 顾客ID
 * @param data.visitRecordId 进店记录id
 * @param data.styleId 样式id
 * @param data.modelPhotoId 模型照片id
 * @param data.customerPhotoId 顾客照片id
 * @param data.prompt 提示词
 * @param data.originalTryOnId 原始试穿效果id
 * @param data.isRegenerated 是否重新生成 0-否，1-是
*/
export function generateTryOnEffect(data: Object) {
	return request({
		url: '/api/try-on-effects/generate',
		method: 'post',
		data,
	})
}

/** 上传图片-AI换脸
 * @param data 图片数据
 * @param data.customerId 顾客ID
 * @param data.visitRecordId 进店记录id
 * @param data.file 顾客照片文件
 */
export function uploadCustomerPhoto(data: FormData) {
	return request({
		url: '/api/customer-photos/upload',
		method: 'post',
		data,
		loading: true,
	})
}
/**
 * 设置喜欢
 * @param tryOnId 试穿效果id
*/
export function setTryOnEffectFavorite(tryOnId: string | number) {
	if (!tryOnId) return Promise.reject('试穿效果id不能为空');
	return request({
		url: `/api/try-on-effects/set-favorite/${tryOnId}`,
		method: 'post',
	})
}
/**
 * 取消喜欢
 * @param tryOnId 试穿效果id
*/
export function cancelTryOnEffectFavorite(tryOnId: string | number) {
	if (!tryOnId) return Promise.reject('试穿效果id不能为空');
	return request({
		url: `/api/try-on-effects/cancel-favorite/${tryOnId}`,
		method: 'post',
	})
}

/** 查询进店记录-library
 * @param customerId 客户id
 */
export function getCustomerPhotos(customerId: string | number) {
	if (!customerId) return Promise.reject('客户id不能为空');
	return request({
		url: `/api/visit-records/customer/${customerId}`,
		method: 'get',
	})
}
/** 删除进店记录-library
 * @param visitRecordId 进店记录id
 */
export function deleteCustomerPhoto(visitRecordId: string | number) {
	if (!visitRecordId) return Promise.reject('进店记录id不能为空');
	return request({
		url: `/api/visit-records/${visitRecordId}`,
		method: 'delete',
		// loading: true,
	})
}
/** 查询收藏列表
 * @param visitRecordId 进店记录id
 */
export function getTryOnEffectFavoriteList(visitRecordId: string | number) {
	if (!visitRecordId) return Promise.reject('进店记录id不能为空');
	return request({
		url: `/api/try-on-effects/favorites/${visitRecordId}`,
		method: 'get',
	})
}
/** 查询某套试穿效果列表
 * @param styleId 服装id
 */
export function getTryOnEffectStyleList(styleId: string | number) {
	if (!styleId) return Promise.reject('服装id不能为空');
	return request({
		url: `/api/try-on-effects/style/${styleId}`,
		method: 'get',
	})
}


interface CustomerInfo {
	name: string
	email: string
}
export const  customerCheckin = (data: CustomerInfo) => {
	return request({
		url: '/api/customers/checkIn',
		method: 'get',
		params: data,
	})
}