package com.ruoyi.project.business.domain.train;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.ruoyi.framework.web.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 * @TableName tt_file_database
 */
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@Builder
public class TtFileDatabase extends BaseEntity {

    /**
     * ID
     */
    @NotNull(message = "[ID]不能为空")
    @ApiModelProperty("ID")
    @TableId(type = IdType.AUTO)
    private Long id;
    /**
     * 资料名
     */
    @Size(max = 100, message = "编码长度不能超过100")
    @ApiModelProperty("资料名")
    @Length(max = 100, message = "编码长度不能超过100")
    private String fileName;
    /**
     * 资料类型（关联字典）
     */
    @Size(max = 60, message = "编码长度不能超过60")
    @ApiModelProperty("资料类型（关联字典）")
    @Length(max = 60, message = "编码长度不能超过60")
    private String fileType;

    /**
     * 文件路径
     */
    @Size(max = 255, message = "编码长度不能超过255")
    @ApiModelProperty("文件路径")
    @Length(max = 255, message = "编码长度不能超过255")
    private String filePath;
    
    /**
     * 目录ID
     */
    @ApiModelProperty("目录ID")
    private Long directoryId;
    /**
     * 可见范围(角色) *可以复选、以[,]分隔
     */
    @Size(max = 500, message = "编码长度不能超过500")
    @ApiModelProperty("可见范围(角色) *可以复选、以[,]分隔")
    @Length(max = 500, message = "编码长度不能超过500")
    private String visibleRange1;
    /**
     * 可见范围(区域) *可以复选、以[,]分隔
     */
    @Size(max = 500, message = "编码长度不能超过500")
    @ApiModelProperty("可见范围(区域) *可以复选、以[,]分隔")
    @Length(max = 500, message = "编码长度不能超过500")
    private String visibleRange2;
    /**
     * 可见范围(代理商) *可以复选、以[,]分隔
     */
    @Size(max = 500, message = "编码长度不能超过500")
    @ApiModelProperty("可见范围(代理商) *可以复选、以[,]分隔")
    @Length(max = 500, message = "编码长度不能超过500")
    private String visibleRange3;
    /**
     * 简介
     */
    @Size(max = 2000, message = "编码长度不能超过2000")
    @ApiModelProperty("简介")
    @Length(max = 2000, message = "编码长度不能超过2,000")
    private String briefIntroduction;
    /**
     * 删除标记（0：未删除  1：已删除）
     */
    @ApiModelProperty("删除标记（0：未删除  1：已删除）")
    @TableLogic
    private String delFlag;


}
