import request from '@/utils/request'

// 对话
export interface AgentParamsType {
	message: string // 消息
	projectID: string //
	versionID?: string //
	imageUrlList?: string[] // 图片URL列表
	configParams: Record<string, any> // 其他配置参数
	token: string
	needSuggestion?: boolean
	useReport: bolean
}
export const chatUrl = '/api/ai-design/chat'

export interface CreateProjectParamsType {
	type: string
	region: string
	style: string
	temperature: number | string
}
export const createProject = (data: CreateProjectParamsType): Promise<any> => {
	return request({ url: '/api/project/init', method: 'post', data })
}

/**
 * 获取项目信息和会话历史
 * @param data 获取项目信息参数
 * @param data.id 项目id
 * @returns 获取项目信息
 */
export const getProjectInfo = (data) => {
	return request({
		url: `/api/project/${data.id}`,
		method: 'get'
	})
}

/**
 * 获取项目版本列表
 * @param params 获取项目版本列表参数
 * @param params.page 页码
 * @param params.size 每页数量
 * @returns 获取项目版本列表
 */
export const getProjectList = (params) => {
	return request({
		url: `/api/project/list`,
		method: 'get',
		params,
		loading: true,
	})
}

/**
 * 修改项目信息
 * @param id 项目id
 * @param data 修改项目信息参数
 * @param data.name 项目名称
 * @param data.type 项目类型
 * @param data.region 项目区域
 * @param data.style 项目风格
 * @param data.temperature 项目温度
 * @returns 修改项目信息
 */
export const updateProject = (id: string, data: Object) => {
	return request({
		url: `/api/project/${id}`,
		method: 'put',
		data,
		loading: true,
	})
}
/**
 * 删除项目
 * @param id 项目id
 * @returns 删除项目
 */
export const deleteProject = (id: string) => {
	return request({
		url: `/api/project/${id}`,
		method: 'delete',
		loading: true,
	})
}

/**
 * 批量获取url对应的标题
 * @param { string[] } data 批量获取url对应的标题参数
 */
export const fetchUrlTitle = (data: string[]) => {
	return request({
		url: '/api/ai-design/fetch-url-content',
		method: 'post',
		data: { urls: data }
	})
}
