package jnpf.model.franchisee.req;

import jnpf.model.franchisee.enums.FranchiseeCustomFieldTypeEnum;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * 加盟商自定义字段配置请求参数
 */
@Data
public class FranchiseeCustomFieldConfigReq implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 配置key（新增可为空，更新必填）
     */
    @Length(max = 100, message = "配置key长度不能超过100")
    private String key;

    /**
     * 字段名称
     */
    @NotBlank(message = "字段名称不能为空")
    @Length(max = 100, message = "字段名称长度不能超过100")
    private String fieldName;

    /**
     * 字段类型（文本/多选项/图片）
     */
    @NotNull(message = "字段类型不能为空")
    private FranchiseeCustomFieldTypeEnum fieldType;

    /**
     * 选项列表
     */
    @Valid
    private List<FranchiseeCustomFieldConfigOptionReq> optionList = new ArrayList<>();

    /**
     * 图片列表
     */
    @Valid
    private List<FranchiseeCustomFieldConfigOptionReq> imageList = new ArrayList<>();

    /**
     * 文本提示
     */
    @Length(max = 100, message = "字段名称长度不能超过100")
    private String textTips;

    /**
     * 是否必填
     */
    private Boolean requiredMark;

    /**
     * 排序
     */
    private Long sort;
}
