package com.ruoyi.credit.domain;

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

import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 合同附件对象 dc_contract_attachment
 * 
 * @author ruoyi
 * @date 2025-12-17
 */
public class ContractAttachment extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 附件ID */
    private Long attachmentId;

    /** 合同ID */
    @Excel(name = "合同ID")
    @NotNull(message = "合同ID不能为空")
    private Long contractId;

    /** 附件名称 */
    @Excel(name = "附件名称")
    @NotBlank(message = "附件名称不能为空")
    @Size(max = 200, message = "附件名称长度不能超过200个字符")
    private String attachmentName;

    /** 附件类型 */
    @Excel(name = "附件类型")
    @NotBlank(message = "附件类型不能为空")
    @Size(max = 50, message = "附件类型长度不能超过50个字符")
    private String attachmentType;

    /** 文件路径 */
    @Excel(name = "文件路径")
    @NotBlank(message = "文件路径不能为空")
    @Size(max = 500, message = "文件路径长度不能超过500个字符")
    private String filePath;

    /** 文件大小 */
    @Excel(name = "文件大小")
    private Long fileSize;

    /** 文件哈希 */
    @Excel(name = "文件哈希")
    @Size(max = 128, message = "文件哈希长度不能超过128个字符")
    private String fileHash;

    /** 上传状态 */
    @Excel(name = "上传状态")
    @NotBlank(message = "上传状态不能为空")
    @Size(max = 20, message = "上传状态长度不能超过20个字符")
    private String uploadStatus;

    public void setAttachmentId(Long attachmentId) 
    {
        this.attachmentId = attachmentId;
    }

    public Long getAttachmentId() 
    {
        return attachmentId;
    }
    public void setContractId(Long contractId) 
    {
        this.contractId = contractId;
    }

    public Long getContractId() 
    {
        return contractId;
    }
    public void setAttachmentName(String attachmentName) 
    {
        this.attachmentName = attachmentName;
    }

    public String getAttachmentName() 
    {
        return attachmentName;
    }
    public void setAttachmentType(String attachmentType) 
    {
        this.attachmentType = attachmentType;
    }

    public String getAttachmentType() 
    {
        return attachmentType;
    }
    public void setFilePath(String filePath) 
    {
        this.filePath = filePath;
    }

    public String getFilePath() 
    {
        return filePath;
    }
    public void setFileSize(Long fileSize) 
    {
        this.fileSize = fileSize;
    }

    public Long getFileSize() 
    {
        return fileSize;
    }
    public void setFileHash(String fileHash) 
    {
        this.fileHash = fileHash;
    }

    public String getFileHash() 
    {
        return fileHash;
    }
    public void setUploadStatus(String uploadStatus) 
    {
        this.uploadStatus = uploadStatus;
    }

    public String getUploadStatus() 
    {
        return uploadStatus;
    }

    @Override
    public String toString() {
        return "ContractAttachment{" +
                "attachmentId=" + attachmentId +
                ", contractId=" + contractId +
                ", attachmentName='" + attachmentName + '\'' +
                ", attachmentType='" + attachmentType + '\'' +
                ", filePath='" + filePath + '\'' +
                ", fileSize=" + fileSize +
                ", fileHash='" + fileHash + '\'' +
                ", uploadStatus='" + uploadStatus + '\'' +
                '}';
    }
}