syntax = "proto3"; package modern_taco_shop; import "google/protobuf/empty.proto"; import "google/protobuf/timestamp.proto"; option csharp_namespace = "ModernTacoShop.TrackOrder.Protos"; service TrackOrder { rpc StartTrackingOrder (Order) returns (google.protobuf.Empty); rpc GetOrderStatus (OrderId) returns (stream Order); rpc HealthCheck (google.protobuf.Empty) returns (google.protobuf.Empty); } message Point { string latitude = 1; string longitude = 2; } message OrderId { int64 id = 1; } message Order { int64 order_id = 1; google.protobuf.Timestamp placed_on = 2; google.protobuf.Timestamp last_updated = 3; optional Point last_position = 4; OrderStatus status = 5; } enum OrderStatus { PLACED = 0; PREPARING = 1; IN_TRANSIT = 2; DELIVERED = 3; CANCELLED = 4; DELIVERY_ERROR = 5; }