syntax = "proto3";
package core;

message Speed {
    uint64 send_bps = 1;
    uint64 receive_bps = 2;
}

message Credential {
    string username = 1;
    string password = 2;
}

enum AuthResult {
    AUTH_SUCCESS = 0;
    AUTH_INVALID_CRED = 1;
    AUTH_INTERNAL_ERROR = 2;
}

message ClientAuthRequest {
    Credential credential = 1;
    Speed speed = 2;
}

message ServerAuthResponse {
    AuthResult result = 1;
    string message = 2;
    Speed speed = 3;
}

enum ConnectionType {
    Stream = 0;
    Packet = 1;
}

enum ConnectResult {
    CONN_SUCCESS = 0;
    CONN_FAILED = 1;
    CONN_BLOCKED = 2;
}

message ClientConnectRequest {
    ConnectionType type = 1;
    string address = 2;
}

message ServerConnectResponse {
    ConnectResult result = 1;
    string message = 2;
}