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

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import top.continew.starter.data.core.annotation.Query;
import top.continew.starter.data.core.enums.QueryType;

import java.io.Serial;
import java.io.Serializable;
import java.util.List;

/**
 * 模型查询条件
 *
 * @author 张波
 * @since 2024/10/19 15:38
 */
@Data
@Schema(description = "模型查询条件")
public class ModelQuery implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    @Schema(description = "模型ID", example = "1")
    @Query(columns = {"id"}, type = QueryType.IN)
    private List<Integer> ids;

    /**
     * 模型名称
     */
    @Schema(description = "模型名称", example = "测试模型")
    @Query(columns = {"name"}, type = QueryType.LIKE)
    private String name;

    /**
     * 平台分类
     */
    @Schema(description = "平台分类", example = "绘画")
    @Query(columns = {"platform_category"}, type = QueryType.EQ)
    private String platformCategory;

    /**
     * 类型
     */
    @Schema(description = "类型", example = "Lora")
    @Query(columns = {"type"}, type = QueryType.EQ)
    private String type;

    /**
     * 版本
     */
    @Schema(description = "版本", example = "SDXL")
    @Query(columns = {"version"}, type = QueryType.EQ)
    private String version;

    /**
     * 分类
     */
    @Schema(description = "分类", example = "动漫游戏")
    @Query(columns = {"category"}, type = QueryType.EQ)
    private String category;

    /**
     * 专业分类
     */
    @Schema(description = "专业分类", example = "环境艺术")
    @Query(columns = "professional_category", type = QueryType.EQ)
    private String professionalCategory;

    /**
     * 系列
     */
    @Schema(description = "系列", example = "室内系列")
    @Query(columns = {"series"}, type = QueryType.EQ)
    private String series;
}
