package com.ai.da.model.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;

@Data
@Schema(description = "重新设计Collection 入参")
public class ReDesignCollectionDTO {

    @Schema(description = "collectionId")
    private Long collectionId;

    @Schema(description = "情绪板图片 数组")
    private List<DesignCollectionElementDTO> moodBoards;

    @Schema(description = "印花板图片 数组")
    private List<DesignCollectionPrintElementDTO> printBoards;

    @NotEmpty(message = "colorBoards.cannot.be.empty")
    @Schema(description = "颜色板RGB值 数组")
    private List<CollectionColorDTO> colorBoards;

    @Schema(description = "手稿板图片id  数组")
    private List<CollectionSketchDTO> sketchBoards;

    @Schema(description = "市场手稿板图片id  数组")
    private List<DesignCollectionElementDTO> marketingSketchs;

    @NotNull(message = "systemScale.cannot.be.empty")
    @Schema(description = "系统取图比列")
    private BigDecimal systemScale;

//    @NotNull(message = "templateId.cannot.be.empty")
    @Schema(description = "模特ID")
    private Long templateId;

//    @NotBlank(message = "modelType.cannot.be.empty")
    @Schema(description = "模特类型:System,Library")
    private String modelType;

    @NotBlank(message = "modelSex.cannot.be.empty")
    @Schema(description = "模特性别")
    private String modelSex;

    @NotBlank(message = "singleOverall.cannot.be.empty")
    @Schema(description = "控制生成类型的参数，两个选项：outfit时候传 single , 另外一个传 overall")
    private String singleOverall;

    @Schema(description = "single模式下的类别选择参数 选项有outwear,dress,blouse,skirt,trousers")
    private String switchCategory;

    @NotBlank(message = "timeZone.cannot.be.empty")
    @Schema(description = "本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取")
    private String timeZone;

    @NotBlank(message = "processId.cannot.be.empty")
    @Schema(description = "python端design进程ID")
    private String processId;

    private String moodboardPosition;

    private String moodTemplateId;

    private List<String> requestIdList;

    private Integer designNum;
}
