package com.qmth.jkserver.model;

//import java.io.Serializable;
//import java.util.Date;
//import org.springframework.data.annotation.Id;
//import org.springframework.data.mongodb.core.index.Indexed;
//import org.springframework.data.mongodb.core.mapping.Document;
//import org.springframework.data.mongodb.core.mapping.Field;
//import com.qmth.jkserver.enums.AttachmentType;
//
//@Document(collection = "jk_attachment")
//public class Attachment implements Serializable {
//
//	/**
//	 *
//	 */
//	private static final long serialVersionUID = 7830780540837880100L;
//
//	@Id
//	private String id;
//
//	@Indexed
//	@Field("exam_code")
//	private String examCode;
//
//	//文件存储路径
//	@Field("path")
//	private String path;
//
//	//文件大小  单位 字节
//	@Field("size")
//	private Long size;
//
//	//原始文件名字
//	@Field("original_name")
//	private String originalName;
//
//	//文件存储名字
//	@Indexed
//	@Field("name")
//	private String name;
//
//	//文件md5
//	@Field("md5")
//	private String md5;
//
//	//文件的后缀
//	@Field("ext")
//	private String ext;
//
//	@Field("time")
//	private Date time;
//
//	@Field("access_uri")
//	private String accessUri;
//
//	//是否已经转存到工作区了
//	@Field("moved")
//	private boolean moved;
//
//	//与存储区文件对应的 工作区文件的ID
//	@Indexed
//	@Field("relate_id")
//	private String relateId;
//
//	//类型
//	@Field("type")
//	private AttachmentType type;
//
//	//阿里云  OSS Bucket
//	@Field("bucket")
//    private String bucket;
//
//	//阿里云  OSS object_key
//	@Field("object_key")
//    private String objectKey;
//
//	/**
//	 * @return the bucket
//	 */
//	public String getBucket() {
//		return bucket;
//	}
//
//	/**
//	 * @param bucket the bucket to set
//	 */
//	public void setBucket(String bucket) {
//		this.bucket = bucket;
//	}
//
//	/**
//	 * @return the objectKey
//	 */
//	public String getObjectKey() {
//		return objectKey;
//	}
//
//	/**
//	 * @param objectKey the objectKey to set
//	 */
//	public void setObjectKey(String objectKey) {
//		this.objectKey = objectKey;
//	}
//
//	public String getMd5() {
//		return md5;
//	}
//
//	public void setMd5(String md5) {
//		this.md5 = md5;
//	}
//
//	/**
//	 * @return the type
//	 */
//	public AttachmentType getType() {
//		return type;
//	}
//
//	/**
//	 * @param type the type to set
//	 */
//	public void setType(AttachmentType type) {
//		this.type = type;
//	}
//
//	/**
//	 * @return the relateId
//	 */
//	public String getRelateId() {
//		return relateId;
//	}
//
//	/**
//	 * @param relateId the relateId to set
//	 */
//	public void setRelateId(String relateId) {
//		this.relateId = relateId;
//	}
//
//	public boolean isMoved() {
//		return moved;
//	}
//
//	public void setMoved(boolean moved) {
//		this.moved = moved;
//	}
//
//	/**
//	 * @return the accessUri
//	 */
//	public String getAccessUri() {
//		return accessUri;
//	}
//
//	/**
//	 * @param accessUri the accessUri to set
//	 */
//	public void setAccessUri(String accessUri) {
//		this.accessUri = accessUri;
//	}
//
//	/**
//	 * @return the id
//	 */
//	public String getId() {
//		return id;
//	}
//
//	/**
//	 * @param id the id to set
//	 */
//	public void setId(String id) {
//		this.id = id;
//	}
//
//	/**
//	 * @return the examCode
//	 */
//	public String getExamCode() {
//		return examCode;
//	}
//
//	/**
//	 * @param examCode the examCode to set
//	 */
//	public void setExamCode(String examCode) {
//		this.examCode = examCode;
//	}
//
//	/**
//	 * @return the path
//	 */
//	public String getPath() {
//		return path;
//	}
//
//	/**
//	 * @param path the path to set
//	 */
//	public void setPath(String path) {
//		this.path = path;
//	}
//
//	/**
//	 * @return the size
//	 */
//	public Long getSize() {
//		return size;
//	}
//
//	/**
//	 * @param size the size to set
//	 */
//	public void setSize(Long size) {
//		this.size = size;
//	}
//
//	/**
//	 * @return the originalName
//	 */
//	public String getOriginalName() {
//		return originalName;
//	}
//
//	/**
//	 * @param originalName the originalName to set
//	 */
//	public void setOriginalName(String originalName) {
//		this.originalName = originalName;
//	}
//
//	/**
//	 * @return the name
//	 */
//	public String getName() {
//		return name;
//	}
//
//	/**
//	 * @param name the name to set
//	 */
//	public void setName(String name) {
//		this.name = name;
//	}
//
//	/**
//	 * @return the ext
//	 */
//	public String getExt() {
//		return ext;
//	}
//
//	/**
//	 * @param ext the ext to set
//	 */
//	public void setExt(String ext) {
//		this.ext = ext;
//	}
//
//	/**
//	 * @return the time
//	 */
//	public Date getTime() {
//		return time;
//	}
//
//	/**
//	 * @param time the time to set
//	 */
//	public void setTime(Date time) {
//		this.time = time;
//	}
//}

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qmth.jkserver.enums.AttachmentType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.File;
import java.io.Serializable;

/**
 * <p>
 * 附件表
 * </p>
 *
 * @author wangliang
 * @since 2023-03-03
 */
@ApiModel(value="JkAttachment对象", description="附件表")
@TableName("jk_attachment")
public class Attachment implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    @ApiModelProperty(value = "考试编码")
    private String examCode;

    @ApiModelProperty(value = "文件存储路径")
    private String path;

    @ApiModelProperty(value = "文件大小")
    private Double size;

    @ApiModelProperty(value = "原始文件名称")
    private String originalName;

    @ApiModelProperty(value = "文件存储名称")
    private String name;

    @ApiModelProperty(value = "md5")
    private String md5;

    @ApiModelProperty(value = "文件后缀")
    private String ext;

    @ApiModelProperty(value = "创建时间")
    private Long time;

    @ApiModelProperty(value = "真实地址")
    private String accessUri;

    @ApiModelProperty(value = "是否已经转存到工作区了，1：是，0：不是")
    private Boolean moved;

    @ApiModelProperty(value = "工作区文件ID")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long relateId;

    @ApiModelProperty(value = "类型，FILE：文件，FOLDER：文件夹")
    private AttachmentType type;

    @ApiModelProperty(value = "文件")
    @TableField(exist = false)
    private File fileJson;

    public File getFileJson() {
        return fileJson;
    }

    public void setFileJson(File fileJson) {
        this.fileJson = fileJson;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getExamCode() {
        return examCode;
    }

    public void setExamCode(String examCode) {
        this.examCode = examCode;
    }

    public String getPath() {
        return path;
    }

    public void setPath(String path) {
        this.path = path;
    }

    public Double getSize() {
        return size;
    }

    public void setSize(Double size) {
        this.size = size;
    }

    public String getOriginalName() {
        return originalName;
    }

    public void setOriginalName(String originalName) {
        this.originalName = originalName;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getMd5() {
        return md5;
    }

    public void setMd5(String md5) {
        this.md5 = md5;
    }

    public String getExt() {
        return ext;
    }

    public void setExt(String ext) {
        this.ext = ext;
    }

    public Long getTime() {
        return time;
    }

    public void setTime(Long time) {
        this.time = time;
    }

    public String getAccessUri() {
        return accessUri;
    }

    public void setAccessUri(String accessUri) {
        this.accessUri = accessUri;
    }

    public Boolean getMoved() {
        return moved;
    }

    public void setMoved(Boolean moved) {
        this.moved = moved;
    }

    public Long getRelateId() {
        return relateId;
    }

    public void setRelateId(Long relateId) {
        this.relateId = relateId;
    }

    public AttachmentType getType() {
        return type;
    }

    public void setType(AttachmentType type) {
        this.type = type;
    }
}
