package com.yingpaipay.business.domain.bo;

import com.yingpaipay.business.domain.Document;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;

/**
 * 文档业务对象 document
 *
 * @author Huanyi
 * @date 2025-12-11
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = Document.class, reverseConvertGenerate = false)
public class DocumentBo extends BaseEntity {

    /**
     * 序号
     */
    private Long id;

    /**
     * 文档标识
     */
    private String specification;

    /**
     * 名称/计划名称
     */
    private String name;

    /**
     * 所属文件夹
     */
    private Long folderId;

    /**
     * 文档类型
     * 0 -> 非计划文档
     * 1 -> 计划文档
     */
    private Integer type;

    private Long planSubmitter;

    /**
     * 递交人
     */
    private Long submitter;

    /**
     * 递交截止日期
     */
    private Date submitDeadline;

    /**
     * 计划文件类型
     * 字典值，对应的字典类型 : plan_document_type
     */
    private String planType;

    /**
     * 文件本体
     * 使用文件上传逻辑，可参考系统设置中的OSS设置
     */
    private Long actualDocument;

    /**
     * 递交时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date submitTime;

    /**
     * 备注
     */
    private String note;

    private Integer status;

    private Long projectId;

    private Boolean sendFlag;

    private Boolean sendStatus;

    private Date effectiveDate;

}
