package com.usky.vpp.domain;

import com.baomidou.mybatisplus.annotation.IdType;
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 lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 电子档案
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("vpp_file_archive")
public class VppFileArchive implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 档案名称
     */
    @NotBlank(message = "档案名称不能为空！")
    private String archiveName;

    /**
     * 原始文件名
     */
    @NotBlank(message = "原始文件名不能为空！")
    private String fileName;

    /**
     * 存储路径
     */
    @NotBlank(message = "文件路径不能为空！")
    private String fileUrl;

    /**
     * 档案类型 1图纸 2文档 3设计稿 4验收报告 5其他
     */
    @NotNull(message = "请选择档案类型！")
    private Integer archiveType;

    /**
     * 文件类型
     */
    private String fileType;

    /**
     * 文件大小kb
     */
    private Double fileSize;

    /**
     * 业务类型
     */
    private String bizType;

    /**
     * 业务主键
     */
    private Long bizId;

    /**
     * 站点id
     */
    @NotNull(message = "站点不能为空！")
    private Long siteId;

    /**
     * 备注
     */
    private String remark;

    /**
     * 上传人
     */
    private String createdBy;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;

    /**
     * 更新人
     */
    private String updatedBy;

    /**
     * 软删除标识 0未删除 1已删除
     */
    @TableField("delete_flag")
    private Integer deleteFlag;

    /**
     * 软删除时间
     */
    @TableField("deleted_at")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime deletedAt;

    /**
     * 版本号 默认V1.0
     */
    private String version;

    /**
     * 租户id
     */
    @TableField("tenant_id")
    private Integer tenantId;
}