syntax = "proto3"; import "google/protobuf/empty.proto"; import "validate/validate.proto"; import "google/api/annotations.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; option go_package = "route256/pkg/api/loms/v1;loms"; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: { title: "LOMS Service"; version: "1.0.0"; }; schemes: HTTP; schemes: HTTPS; consumes: "application/json"; produces: "application/json"; }; service LOMS { option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_tag) = { description: "LOMS Service" external_docs: { url: "https://github.com/grpc-ecosystem/grpc-gateway/blob/main/examples/internal/proto/examplepb/a_bit_of_everything.proto"; description: "Find out more about grpc-gateway"; } }; rpc OrderCreate(OrderCreateRequest) returns (OrderCreateResponse) { option(google.api.http) = { post: "/order/create" body: "*" }; } rpc OrderInfo(OrderInfoRequest) returns (OrderInfoResponse) { option (google.api.http) = { get: "/order/info" }; } rpc OrderPay(OrderPayRequest) returns (google.protobuf.Empty) { option (google.api.http) = { post: "/order/pay" body: "*" }; } rpc OrderCancel(OrderCancelRequest) returns (google.protobuf.Empty) { option (google.api.http) = { post: "/order/cancel" body: "*" }; } rpc StocksInfo(StocksInfoRequest) returns (StocksInfoResponse) { option (google.api.http) = { get: "/stock/info" }; } } message OrderItem { int64 sku = 1 [(validate.rules).int64 = {gt: 0}]; uint32 count = 2 [(validate.rules).uint32 = {gt: 0}]; } // OrderCreate message OrderCreateRequest { int64 user_id = 1 [ (validate.rules).int64 = {gt: 0} ]; repeated OrderItem items = 2 [ (validate.rules).repeated = {min_items: 1} ]; } message OrderCreateResponse { int64 orderId = 1; } // OrderInfo message OrderInfoRequest { int64 orderId = 1 [(validate.rules).int64 = {gt: 0}]; } message OrderInfoResponse { string status = 1; int64 user_id = 2; repeated OrderItem items = 3; } enum OrderStatus { ORDER_STATUS_UNSPECIFIED = 0; ORDER_STATUS_NEW = 1; ORDER_STATUS_AWAITING_PAYMENT = 2; ORDER_STATUS_FAILED = 3; ORDER_STATUS_PAYED = 4; ORDER_STATUS_CANCELLED = 5; } // OrderPay message OrderPayRequest { int64 order_id = 1 [(validate.rules).int64 = {gt: 0}]; } // OrderCancel message OrderCancelRequest { int64 order_id = 1 [(validate.rules).int64 = {gt: 0}]; } // StocksInfo message StocksInfoRequest { int64 sku = 1 [(validate.rules).int64 = {gt: 0}]; } message StocksInfoResponse { uint32 count = 1; }