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";

// ApprovalNotificationFlowReadService exposes one bounded Catalog read. L0
// owns Flow eligibility and protection decisions; product routes, permissions,
// response DTOs, and executable Flow definitions remain outside this wire.
service ApprovalNotificationFlowReadService {
  rpc ReadApprovalNotificationFlows(ReadApprovalNotificationFlowsRequest) returns (ReadApprovalNotificationFlowsResponse);
}

message ReadApprovalNotificationFlowsRequest {
  optional uint64 min_catalog_revision = 1;
}

message ApprovalNotificationFlowDescriptor {
  string name = 1;
  string label = 2;
  string description = 3;
}

message ReadApprovalNotificationFlowsResponse {
  repeated ApprovalNotificationFlowDescriptor flows = 1;
  nexuscrm.common.v1.ConsistencyReceipts receipts = 2;
}
