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

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import jakarta.validation.constraints.NotNull;
import top.continew.admin.common.enums.DisEnableStatusEnum;
import top.continew.starter.extension.crud.model.req.BaseReq;

import java.io.Serial;

/**
 * 创建或修改模型信息
 *
 * @author 张波
 * @since 2024/10/19 15:47
 */
@Data
@Schema(description = "创建或修改模型信息")
public class ModelReq extends BaseReq {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 模型名称
     */
    @Schema(description = "模型名称", example = "测试模型")
    @NotNull(message = "模型名称不能为空")
    private String name;

    /**
     * 平台分类
     */
    @Schema(description = "平台分类", example = "绘画")
    private String platformCategory;

    /**
     * 类型
     */
    @Schema(description = "类型", example = "Lora")
    private String type;

    /**
     * 版本
     */
    @Schema(description = "版本", example = "SDXL")
    private String version;

    /**
     * 分类
     */
    @Schema(description = "分类", example = "动漫游戏")
    private String category;

    /**
     * 专业分类
     */
    @Schema(description = "专业分类", example = "环境艺术")
    private String professionalCategory;

    /**
     * 系列
     */
    @Schema(description = "系列", example = "室内系列")
    private String series;

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

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

    /**
     * 提示词是否开启
     */
    @Schema(description = "提示词是否开启", example = "是/否")
    private DisEnableStatusEnum promptEnabled;

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

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

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

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