package com.yida.data.common.core.entity.customform;

import java.util.Date;

import lombok.Data;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;
import java.time.LocalDate;
import java.time.LocalTime;
import java.util.List;

import io.swagger.annotations.ApiModelProperty;

/**
 * 自定义表单组件 Entity
 *
 * @author wjm
 * @date 2021-08-12 10:44:45
 */
@Data
@TableName("core_custom_form_items")
public class CoreCustomFormItems {

    /**
     *
     */
    @ApiModelProperty(value = "")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 表单ID
     */
    @ApiModelProperty(value = "表单ID")
    @TableField("form_id")
    private Long formId;

    /**
     * 组件类型，radio,checkbox,singleInput,moreInput,date,time,dateTime,uploadPic,uploadFile
     */
    @ApiModelProperty(value = "组件类型，radio,checkbox,singleInput,moreInput,date,time,dateTime,uploadPic,uploadFile")
    @TableField("item_type")
    private String itemType;

    /**
     * 组件题干名称，如：姓名，性别。。
     */
    @ApiModelProperty(value = "组件题干名称，如：姓名，性别。。")
    @TableField("item_title")
    private String itemTitle;

    /**
     * 表单字段名称
     */
    @ApiModelProperty(value = "表单字段名称")
    @TableField("item_filed_name")
    private String itemFiledName;

    /**
     * 题干说明，子题干
     */
    @ApiModelProperty(value = "题干说明，子题干")
    @TableField("item_sub_title")
    private String itemSubTitle;

    /**
     * 是否必填
     */
    @ApiModelProperty(value = "是否必填")
    @TableField("needed")
    private String needed;

    /**
     * 是否唯一
     */
    @ApiModelProperty(value = "是否唯一")
    @TableField("onlyed")
    private String onlyed;

    /**
     * 图片、文件允许上传数量
     */
    @ApiModelProperty(value = "图片、文件允许上传数量")
    @TableField("file_num")
    private String fileNum;

    /**
     * 输入框宽度，默认
     */
    @ApiModelProperty(value = "输入框宽度，默认")
    @TableField("input_width")
    private Integer inputWidth;

    /**
     * 输入框高度
     */
    @ApiModelProperty(value = "输入框高度")
    @TableField("input_height")
    private Integer inputHeight;

    /**
     * 最少输入
     */
    @ApiModelProperty(value = "最少输入")
    @TableField("input_min")
    private Integer inputMin;

    /**
     * 最大输入
     */
    @ApiModelProperty(value = "最大输入")
    @TableField("input_max")
    private Integer inputMax;

    /**
     * 输入提示
     */
    @ApiModelProperty(value = "输入提示")
    @TableField("input_placeholder")
    private String inputPlaceholder;

    /**
     * 输入限制，0不限，1文本，2数字，3中文，4字母，5邮箱，6电话号码，7身份证，8网址
     */
    @ApiModelProperty(value = "输入限制，0不限，1文本，2数字，3中文，4字母，5邮箱，6电话号码，7身份证，8网址")
    @TableField("input_verify")
    private Integer inputVerify;

    /**
     * 默认值
     */
    @ApiModelProperty(value = "默认值")
    @TableField("default_value")
    private String defaultValue;

    /**
     * 选项布局，1单列，2两列，3三列
     */
    @ApiModelProperty(value = "选项布局，1单列，2两列，3三列")
    @TableField("layout")
    private Integer layout;

    /**
     *
     */
    @ApiModelProperty(value = "")
    @TableField("sort")
    private Integer sort;

    /**
     *
     */
    @ApiModelProperty(value = "")
    @TableField(value = "create_date", fill = FieldFill.INSERT)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createDate;

    /**
     *
     */
    @ApiModelProperty(value = "")
    @TableField(value = "update_date", fill = FieldFill.UPDATE)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateDate;

    /**
     *
     */
    @ApiModelProperty(value = "")
    @TableField(value = "create_id", fill = FieldFill.INSERT)
    private Long createId;

    /**
     *
     */
    @ApiModelProperty(value = "")
    @TableField(value = "update_id", fill = FieldFill.UPDATE)
    private Long updateId;

    /**
     *
     */
    @ApiModelProperty(value = "")
    @TableField("del_flag")
    @TableLogic(value = "0", delval = "1")
    private Integer delFlag;


    @ApiModelProperty(value = "表单组件选项")
    @TableField(exist = false)
    private List<CoreCustomFormItemChildren> coreCustomFormItemChildrenList;
}
