syntax = "proto3"; message BusinessSolutionModel { int32 id = 1; string type = 2; string articleId = 3; double price = 4; LengthUnitModel width = 5; LengthUnitModel depth = 6; LengthUnitModel height = 7; repeated ElementModel elements = 8; } message ElementModel { int32 id = 1; string type = 2; string articleId = 3; string name = 4; double price = 5; int32 quantity = 6; bool isInvisible3D = 7; bool isInvisible2D = 8; oneof subtype { GroupElementModel groupElementModel = 101; } } message GroupElementModel { repeated ElementModel children = 1; } message LengthUnitModel { double value = 1; LengthUnitType type = 2; } enum LengthUnitType { Meter = 0; Decimeter = 1; Centimeter = 2; Millimeter = 3; Inch = 4; Foot = 5; Yard = 6; }