syntax = "proto3";

package event.api.v1;
import "errors/errors.proto";
import "google/protobuf/empty.proto";
import "google/api/annotations.proto";
import "validate/validate.proto";

option go_package = "github.com/go-saas/kit/event/api/v1;v1";


message MessageProto{
  string key=1;
  bytes value=2;
  map<string,string> header=3;
}

message HandleEventRequest{
  MessageProto message=2 [(validate.rules).message.required=true];
}

message PublishEventRequest{
  repeated MessageProto messages=2 [(validate.rules).repeated.min_items=1];
}

// EventService proxy event handler
service EventService{
  rpc HandleEvent(HandleEventRequest)returns(google.protobuf.Empty){
  }
  rpc PublishEvent(PublishEventRequest)returns(google.protobuf.Empty){
  }
}
