package com.sckw.core.model.file;

import com.fasterxml.jackson.annotation.JsonFormat;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * @author lfdc
 * @description 文件信息
 * @date 2023-07-03 15:07:00
 */
@Data
public class FileInfo implements Serializable {

    /**
     * 文件上传类型 oss/qiniuyun
     */
    @NotBlank(message = "文件上传类型不能为空")
    private String type;

    /**
     * 文件原名称
     */
    @NotBlank(message = "文件原名称不能为空")
    private String fileOriginalName;
    /**
     * 文件加密key
     */
    @NotBlank(message = "文件加密key不能为空")
    private String fileMd5;

    /**
     * 文件新名称
     */
    @NotBlank(message = "文件新名称不能为空")
    private String fileName;
    /**
     * 文件后缀
     */
    @NotBlank(message = "文件后缀不能为空")
    private String fileSuffix;
    /**
     * 文件大小  默认为mb
     */
    @NotNull(message = "文件大小不能为空")
    private BigDecimal fileSize;

    /**
     * 文件相对路径
     */
    @NotBlank(message = "文件相对路径不能为空")
    private String filePath;
    /**
     * 文件绝对路径
     */
    @NotBlank(message = "文件绝对路径不能为空")
    private String fileAbsolutePath;

    @JsonFormat(timezone = "yyyy-MM-dd HH:mm:ss")
    @NotBlank
    private String createTime;

    @NotNull(message = "文件修改人不能为空")
    private Long updateBy;
    @NotNull(message = "文件上传人不能为空")
    private Long createBy;

    @NotBlank
    @JsonFormat(timezone = "yyyy-MM-dd HH:mm:ss")
    private String updateTime;

    @NotNull(message = "文件删除标志不能为空")
    private Integer delFlag;

    @NotNull(message = "文件状态不能为空")
    private Integer status;

}
