package com.sundot.airport.system.domain.approval.constants;

/**
 * 审批流程常量
 *
 * @author simon lin
 * @date 2025-09-06
 */
public class ApprovalConstants {
    /**
     * 流程状态 - 运行中
     */
    public static final String INSTANCE_STATUS_RUNNING = "RUNNING";

    /**
     * 流程状态 - 已完成
     */
    public static final String INSTANCE_STATUS_COMPLETED = "COMPLETED";

    /**
     * 流程状态 - 已驳回
     */
    public static final String INSTANCE_STATUS_REJECTED = "REJECTED";

    /**
     * 流程状态 - 已取消
     */
    public static final String INSTANCE_STATUS_CANCELLED = "CANCELLED";

    /**
     * 任务状态 - 待处理
     */
    public static final String TASK_STATUS_PENDING = "PENDING";

    /**
     * 任务状态 - 已同意
     */
    public static final String TASK_STATUS_APPROVED = "APPROVED";

    /**
     * 任务状态 - 已驳回
     */
    public static final String TASK_STATUS_REJECTED = "REJECTED";

    /**
     * 任务状态 - 已取消
     */
    public static final String TASK_STATUS_CANCELLED = "CANCELLED";

    /**
     * 节点类型 - 开始
     */
    public static final String NODE_TYPE_START = "START";

    /**
     * 节点类型 - 审批
     */
    public static final String NODE_TYPE_APPROVE = "APPROVE";

    /**
     * 节点类型 - 通知
     */
    public static final String NODE_TYPE_NOTIFY = "NOTIFY";

    /**
     * 节点类型 - 结束
     */
    public static final String NODE_TYPE_END = "END";

    /**
     * 审批人类型 - 指定用户
     */
    public static final String APPROVER_TYPE_USER = "USER";

    /**
     * 审批人类型 - 角色
     */
    public static final String APPROVER_TYPE_ROLE = "ROLE";

    /**
     * 审批人类型 - 部门
     */
    public static final String APPROVER_TYPE_DEPT = "DEPT";

    /**
     * 审批人类型 - 班组长
     */
    public static final String APPROVER_TYPE_GROUP_LEADER = "GROUP_LEADER";

    /**
     * 审批人类型 - 科长
     */
    public static final String APPROVER_TYPE_SECTION_LEADER = "SECTION_LEADER";

    /**
     * 操作类型 - 提交
     */
    public static final String ACTION_SUBMIT = "SUBMIT";

    /**
     * 操作类型 - 同意
     */
    public static final String ACTION_APPROVE = "APPROVE";

    /**
     * 操作类型 - 驳回
     */
    public static final String ACTION_REJECT = "REJECT";

    /**
     * 操作类型 - 取消
     */
    public static final String ACTION_CANCEL = "CANCEL";

    /**
     * 操作类型 - 完成
     */
    public static final String ACTION_COMPLETE = "COMPLETE";

    /**
     * 流程类型 - 个人级别
     */
    public static final String WORKFLOW_TYPE_PERSONAL = "PERSONAL";

    /**
     * 流程类型 - 科级
     */
    public static final String WORKFLOW_TYPE_SECTION = "SECTION";

    /**
     * 流程类型 - 班组级
     */
    public static final String WORKFLOW_TYPE_GROUP = "GROUP";

    /**
     * 流程类型 - 查获上报
     */
    public static final String WORKFLOW_TYPE_SEIZURE_REPORT = "SEIZURE_REPORT";

    /**
     * 流程代码 - 个人级别
     */
    public static final String WORKFLOW_CODE_PERSONAL_LEVEL = "PERSONAL_LEVEL";

    /**
     * 流程代码 - 科级
     */
    public static final String WORKFLOW_CODE_SECTION_LEVEL = "SECTION_LEVEL";

    /**
     * 流程代码 - 班组级
     */
    public static final String WORKFLOW_CODE_GROUP_LEVEL = "GROUP_LEVEL";

    /**
     * 流程代码 - 查获上报(安检员)
     */
    public static final String WORKFLOW_CODE_SEIZURE_REPORT_STAFF = "SEIZURE_REPORT_STAFF";

    /**
     * 流程代码 - 查获上报(班组长)
     */
    public static final String WORKFLOW_CODE_SEIZURE_REPORT_LEADER = "SEIZURE_REPORT_LEADER";

    /**
     * 紧急程度 - 低
     */
    public static final String URGENT_LEVEL_LOW = "LOW";

    /**
     * 紧急程度 - 普通
     */
    public static final String URGENT_LEVEL_NORMAL = "NORMAL";

    /**
     * 紧急程度 - 高
     */
    public static final String URGENT_LEVEL_HIGH = "HIGH";

    /**
     * 紧急程度 - 紧急
     */
    public static final String URGENT_LEVEL_URGENT = "URGENT";

    /**
     * 角色 - 班组长
     */
    public static final String ROLE_GROUP_LEADER = "group_leader";

    /**
     * 角色 - 科长
     */
    public static final String ROLE_SECTION_LEADER = "section_leader";

    /**
     * 角色 - 质检员
     */
    public static final String ROLE_QUALITY_INSPECTOR = "quality_inspector";

    /**
     * 状态 - 正常
     */
    public static final String STATUS_NORMAL = "0";

    /**
     * 状态 - 停用
     */
    public static final String STATUS_DISABLE = "1";

    /**
     * 删除标志 - 存在
     */
    public static final String DEL_FLAG_NORMAL = "0";

    /**
     * 删除标志 - 删除
     */
    public static final String DEL_FLAG_DELETE = "2";
}