package com.zb.mom.ww.mxgateway.client;

/**
 * Reports the client and protocol version numbers compiled into this build.
 *
 * <p>Used by smoke-test tooling and the CLI to confirm that a gateway and
 * worker speak the same protocol version as the client.
 */
public final class MxGatewayClientVersion {
    private static final int GATEWAY_PROTOCOL_VERSION = 3;
    private static final int WORKER_PROTOCOL_VERSION = 1;
    private static final String CLIENT_VERSION = "0.2.1";

    private MxGatewayClientVersion() {
    }

    /**
     * Returns the human-readable client release version.
     *
     * @return the client version string
     */
    public static String clientVersion() {
        return CLIENT_VERSION;
    }

    /**
     * Returns the gRPC gateway protocol version this client targets.
     *
     * @return the gateway protocol version
     */
    public static int gatewayProtocolVersion() {
        return GATEWAY_PROTOCOL_VERSION;
    }

    /**
     * Returns the worker IPC protocol version this client targets.
     *
     * @return the worker protocol version
     */
    public static int workerProtocolVersion() {
        return WORKER_PROTOCOL_VERSION;
    }
}
