syntax = "proto2";

package com.xsignpostprocessing.model;

option java_multiple_files = true;
option java_package = "com.xsignpostprocessing.model";
option java_outer_classname = "Detections";

message Location {
  required double lat = 1;
  required double lng = 2;
}

message BBox {
  required int32 top = 1;
  required int32 left = 2;
  required int32 bottom = 3;
  required int32 right = 4;
}

message DetectedObject {
  required BBox bbox = 1;
  required float confidence = 2;
  required string title = 3;
}

message DetectedFrame {
  required int32 frameId = 1;
  repeated DetectedObject objects = 2;
  required int64 timestamp = 3;
  optional Location location = 4;
}

message DetectedSign {
  required int32 id = 1;
  required string label = 2;
  required Location location = 3;
  required int64 timestamp = 4;
  optional int32 refFrameIndex = 5;

  repeated RefFrame frames = 6;

  message RefFrame {
    required int32 frameId = 1;
    required int64 timestamp = 2;
    required BBox bbox = 3;
    required Location location = 4;
    required string label = 5;
    required float confidence = 6;
  }
}
