import request, { RequestEventStreamConfig } from '@/utils/request'

export type DrawingFormType = {
    prompt: string      // 是 关键词
    action: string      // 是 操作 generate=生成图片 upsample{index}=放大 variation{index}=变换
    image_base: string  // 否 图片地址 图生成图时必填
    image_id: string    // 否 图片id 图片放大或变换时必填
    scale: string       // 否 图片比例
    other: string       // 否 其它参数
    model: string       // 是 绘画的模型
    no_content: string  // 否 不想出现的内容
    version: string     // 否 绘画版本
    style: string       // 否 风格 动漫-default 可爱-cute 丰富-expressive 风景-scenic
    engine: string      // 否 意间sd-绘画引擎
    quality: string     // 否 DALLE-3 画质
}

// 生成图片
export function drawing(data: any) {
    // @ts-ignore
    return request.post({
        url: '/draw/imagine',
        data,
        method: 'POST',
        timeout: 120000
    })
}

// 生成图片详情
export function drawingDetail(data: { records_id: number[] }) {
    return request.post({ url: '/draw_records/detail', data })
}

// 生成图片记录
export function drawingRecord(data: any) {
    return request.get({
        url: '/draw_records/records',
        data
    }, { ignoreCancel: true })
}

// 删除
export function drawingDelete(data: { ids: number[] }) {
    return request.post({ url: '/draw_records/delete', data, method: 'POST' })
}

// 关键词分类
export function keywordCate() {
    return request.get({
        url: '/draw_prompt/category'
    })
}

// 关键词
export function keywordPrompt(data: any) {
    return request.get({
        url: '/draw_prompt/prompt',
        data
    })
}

// 绘画示例
export function drawingExample() {
    return request.get({ url: '/draw_prompt/example' })
}

// 关键词翻译
export function keywordPromptTranslate(data: { prompt: string }) {
    return request.get({
        url: '/draw_prompt/translate',
        data
    })
}

// 绘画模型
export function drawingModel() {
    return request.get({ url: '/draw/modelConfig' })
}

// 意间绘画风格选择
export function yjStyleSelector() {
    return request.get({ url: '/draw/getSelector' })
}

// SD
export function sdModelList() {
    return request.get({ url: '/draw/getSdModel' })
}