package com.backendsys.entity.Tencent;

import com.backendsys.entity.validator.RangeArray;
import com.backendsys.entity.validator.RangeStringArray;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.Size;
import lombok.Data;

@Data
public class TencentCustomservicePayloadDTO {

    @NotEmpty(message="主播名称不能为空")
    @Size(min = 2, max = 50, message = "主播名称长度在 {min}-{max} 字符")
    private String anchor_name;
    private String anchor_name_view;

    @NotEmpty(message="定制类别不能为空")
    @RangeStringArray(message="定制类别取值有误，范围应是(IMAGE：2D小样本-标准版(专属口型)形象定制, IMAGE_GENERAL：2D小样本-标准版(通用口型)形象定制, IMAGE_4K：2D小样本-高精版(专属口型)形象定制, VOICE：2D小样本声音定制, IMAGE_PHOTO：2D小样本(照片数智人)形象定制)", value = {"IMAGE", "IMAGE_GENERAL", "IMAGE_4K", "VOICE", "IMAGE_PHOTO"})
    private String make_type;

    @Size(max = 500, message = "视频格式授权书URL长度不超过 {max} 字符")
    private String identity_cos_url;

    @Size(max = 500, message = "PDF格式授权书URL长度不超过 {max} 字符")
    private String identity_written_cos_url;

    @NotEmpty(message="形象定制素材URL不能为空")
    @Size(max = 500, message = "形象定制素材URL长度不超过 {max} 字符")
    private String material_cos_url;

    // 形象定制类型，训练出来的形象是否带原始背景。默认“否”，即不带原始背景，在应用过程中可以按需更换背景
    @RangeArray(message="是否去除形象背景取值有误，范围应是(-1否, 1是)", value = {"-1", "1"})
    private Integer is_remove_background;

    @NotEmpty(message="性别不能为空")
    @RangeStringArray(message="性别取值有误，范围应是(MALE：男, FEMALE：女)", value = {"MALE", "FEMALE"})
    private String sex_type;

    @Size(max = 100, message = "定制备注信息长度不超过 {max} 字符")
    private String notes;

    @Size(min = 4, max = 1000, message = "生成驱动demo的文本内容长度在 {min}-{max} 字符")
    private String text_driver;

    @Size(max = 500, message = "生成驱动demo的音频文件路径长度不超过 {max} 字符")
    private String voice_driver_cos_file;

}
