package cn.axzo.workflow.core.repository.entity;

import cn.axzo.framework.data.mybatisplus.model.BaseEntity;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

/**
 * 模板关联的文档
 *
 * @author wangli
 * @since 2025-03-27 14:09
 */
@EqualsAndHashCode(callSuper = true)
@TableName(value = "ext_ax_model_doc", autoResultMap = true)
@Data
@ToString(callSuper = true)
public class ExtAxModelDoc extends BaseEntity<ExtAxModelDoc> {

    /**
     * 文档被关联的模型 Id
     */
    private String modelId;

    /**
     * 文档被关联的模板对应的业务标识
     */
    private String modelKey;

    /**
     * 文档关联 ID
     * <p>
     * word/excel 对应 wps 的 Id，
     * hp 对应 docContent 的 ID，
     * pdf 对应 oss 中的 fileKey
     */
    @TableField(updateStrategy = FieldStrategy.NOT_EMPTY)
    private String fileRelationId;

    /**
     * 文档名称
     */
    private String fileName;

    /**
     * 模板名称
     */
    private String templateName;

    /**
     * 自动归档路径
     */
    private String location;

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

    /**
     * 业务标签
     */
    private String tag;

    /**
     * 启用状态
     */
    private Boolean status;

    /**
     * 临时文档
     */
    private Boolean tempFile;
    /**
     * 是否必选
     */
    @TableField(value = "`require`")
    private Boolean require;

    /**
     * 排序号
     */
    @TableField(value = "`order`")
    private Integer order;

    /**
     * 租户 ID
     */
    private String tenantId;
}
