syntax = "proto3";

package nexuscrm.runtime.v1;

import "common/v1/common.proto";

option go_package = "github.com/pingcap-inc/nexuscrm-contract/wire-go/gen/runtime/v1;runtimev1";

service CommandAcceptanceService {
  rpc AcceptCommand(AcceptCommandRequest) returns (AcceptCommandResponse);
}

message AcceptCommandRequest {
  string command_id = 1;
  string idempotency_key = 2;
  string command_kind = 3;
  string partition_key = 4;
  bytes payload = 5;
  optional uint64 min_catalog_revision = 6;
  uint32 payload_format_version = 7;
  string payload_digest = 8;
}

message AcceptCommandResponse {
  string command_id = 1;
  reserved 2;
  bool duplicate = 3;
  nexuscrm.common.v1.ConsistencyReceipts receipts = 4;
}
