syntax = "proto2";

package Protocol.Data.ContactRequest;
import "ControlChannel.proto";

enum Limits {
    MessageMaxCharacters = 2000;
    NicknameMaxCharacters = 30;
}

extend Control.OpenChannel {
    optional ContactRequest contact_request = 200;
}

extend Control.ChannelResult {
    optional Response response = 201;
}

// Sent only as an attachment to OpenChannel
message ContactRequest {
    optional string nickname = 1;
    optional string message_text = 2;
}

// Response is the only valid message to send on the channel
message Response {
    enum Status {
        Undefined = 0; // Not valid on the wire
        Pending = 1;
        Accepted = 2;
        Rejected = 3;
        Error = 4;
    }

    required Status status = 1;
}

