package com.xdap.self_development.domain.pojo;


import com.definesys.mpaas.query.annotation.RowID;
import com.definesys.mpaas.query.annotation.RowIDType;
import com.definesys.mpaas.query.annotation.Table;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 参数流程记录
 * </p>
 *
 * @author Lys111
 * @since 2025-11-26
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Table("param_approval_record")
public class ParamApprovalRecordPojo implements Serializable {

    /**
     * ID
     */
    @RowID(sequence = "param_approval_record_s", type = RowIDType.UUID)
    private String id;

    /**
     * 流程ID
     */
    private String approvalId;

    /**
     * 环节名称
     */
    private String nodeName;

    /**
     * 处理人
     */
    private String assignee;

    /**
     * 操作
     */
    private String operator;

    /**
     * 操作时间
     */
    private Date operateTime;

    /**
     * 审批说明
     */
    private String approvalComment;

    /**
     * 环节顺序
     */
    private Integer nodeOrder;

    /**
     * 创建人
     */
    private String createdBy;

    /**
     * 创建时间
     */
    private Date creationDate;

    /**
     * 最后更新人
     */
    private String lastUpdatedBy;

    /**
     * 最后更新时间
     */
    private Date lastUpdateDate;

    private Integer approvalLevel;

    public ParamApprovalRecordPojo(
            String approvalId,
            String nodeName,
            String assignee,
            String operator,
            Date operateTime,
            String approvalComment,
            Integer nodeOrder,
            Date creationDate,
            Integer approvalLevel
    ) {
        this.approvalId = approvalId;
        this.nodeName = nodeName;
        this.assignee = assignee;
        this.operator = operator;
        this.operateTime = operateTime;
        this.approvalComment = approvalComment;
        this.nodeOrder = nodeOrder;
        this.creationDate = creationDate;
        this.approvalLevel = approvalLevel;
    }
}
