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.NotNull;

@Data
@Schema(description = "GenerateThroughImageTextDTO")
public class GenerateThroughImageTextDTO {
    @NotNull(message = "userId cannot be empty")
    @Schema(description = "用户id")
    private Long userId;

    @Schema(description = "caption | prompt")
    private String text;

    @Schema(description = "图片在t_collection_element表中的id")
    private Long collectionElementId;

    // todo 后续取消这个字段的传输，由后端自行判断相关参数是否有值
//    @NotBlank(message = "you have to choose the generate type")
    @Schema(description = "text  image  text-image")
    private String generateType;

    @Schema(description = "图片来源：update，从library中选择,从toProductImage结果中选择 collection || library || productImage")
    private String designType;

    @NotBlank(message = "level1Type cannot be empty!")
    @Schema(description = "Moodboard Printboard Sketchboard MarketingSketch")
    private String level1Type;

    @Schema(description = "Outwear Dress Blouse Skirt Trousers || Logo Slogan Pattern")
    private String level2Type;

    @Schema(description = "性别")
    private String gender;


    @Schema(description = "选择的模型名 high || fast || wx || fp")
    private String modelName;

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

    @Schema(description = "唯一id，用于保持消息唯一性")
    private String uniqueId;

    @NotNull(message = "Please check if the required fields are empty.(isTestUser)")
    @Schema(description = "是否是测试用户")
    private Boolean isTestUser;

    @Schema(description = "页面上用户设计的slogan所截的图片")
    private String sloganBase64;

    @Schema(description = "种子 取值范围 0~500")
    private String seed;

    @Schema(description = "年龄区间 Adult || Child")
    private String ageGroup = "Adult";
}
