syntax = "proto3"; package crabs.crm; import "google/api/annotations.proto"; option go_package = "pkg/crm"; service CRM { rpc GetCatalog(GetCatalogReq) returns (CatalogRsp) { option (google.api.http) = { get: "/catalog" }; } rpc GetPositions(GetPositionsReq) returns (PositionsRsp) { option (google.api.http) = { get: "/positions/{id}" }; } rpc GetProduct(GetProductReq) returns (ProductRsp) { option (google.api.http) = { get: "/products/{id}" }; } } message GetCatalogReq {} message CatalogRsp { repeated Category categories = 1; } message Category { int64 id = 1; string name = 2; string uri = 3; repeated Category children = 4; } message GetPositionsReq { int64 id = 1; } message PositionsRsp { repeated Product products = 1; } message Product { int64 id = 1; string article = 2; string name = 3; string uri = 4; repeated string images = 5; string description = 6; repeated GroupedProduct grouped_products = 7; string unit = 8; double inventory = 9; repeated Variant variants = 10; repeated Characteristic characteristics = 11; int64 category = 12; } message GroupedProduct { string name = 1; string uri = 2; string image = 3; } message Variant { int64 price = 1; repeated Property properties = 2; } message Property { string name = 1; string value = 2; } message Characteristic { string name = 1; string value = 2; } message GetProductReq{ int64 id = 1; } message ProductRsp { Product product = 1; }