package top.continew.admin.business.model.resp;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import top.continew.admin.common.enums.DisEnableStatusEnum;
import top.continew.starter.extension.crud.model.resp.BaseResp;
import top.continew.starter.file.excel.converter.ExcelBaseEnumConverter;

import java.io.Serial;

/**
 * 模型信息
 *
 * @author 张波
 * @since 2024/10/19 15:41
 */
@Data
@ExcelIgnoreUnannotated
@Schema(description = "模型信息")
public class ModelResp extends BaseResp {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 模型名称
     */
    @Schema(description = "模型名称", example = "测试模型")
    @ExcelProperty(value = "模型名称", order = 2)
    private String name;

    @Schema(description = "轮播图地址", example = "无")
    private String images;

    @Schema(description = "基础模型", example = "SDXL")
    private String version;

    /**
     * 推荐分辨率
     */
    @Schema(description = "推荐分辨率", example = "1536*1024")
    @ExcelProperty(value = "推荐分辨率", order = 4)
    private String recommendedResolution;

    /**
     * 提示词是否开启
     */
    @Schema(description = "提示词是否开启", example = "是/否")
    @ExcelProperty(value = "提示词是否开启", converter = ExcelBaseEnumConverter.class, order = 5)
    private DisEnableStatusEnum promptEnabled;

    /**
     * 采样方法
     */
    @Schema(description = "采样方法", example = "Euler a")
    @ExcelProperty(value = "采样方法", order = 6)
    private String samplingMethod;

    /**
     * CFG
     */
    @Schema(description = "CFG", example = "3")
    @ExcelProperty(value = "CFG", order = 7)
    private Integer cfg;

    /**
     * VAE
     */
    @Schema(description = "VAE", example = "无")
    @ExcelProperty(value = "VAE", order = 8)
    private String vae;

    /**
     * 采样步数
     */
    @Schema(description = "采样步数", example = "20")
    @ExcelProperty(value = "采样步数", order = 9)
    private Integer samplingSteps;
}
