package ls;

message Location {
    // Coordinates in microdegrees
    required int64 Latitude = 1;
    required int64 Longitude = 2;
    
     // the accuracy of the location estimate
    required int32 accuracy = 3;
    
    optional int32 altitude = 4;
    optional int32 verticalAccuracy = 5;
    
    // location type 0 = Apple centroid, 1 = carrier data, etc
    optional int32 locationType = 6;
}

message CellTower {
  required int32 mcc = 1;
  required int32 mnc = 2;
  required int32 cellID = 3;
  required int32 lacID = 4;
  optional Location location = 5;
}

message WirelessAP {
    required string macID = 1;
    optional Location location = 2;
}

message LocationRequest {
    repeated CellTower cellTower = 1;
    repeated WirelessAP wirelessAP = 2;
    optional int32 numberOfSurroundingCells = 3;
    optional int32 numberOfSurroundingWifis = 4;
}

message LocationResponse {
    repeated CellTower cellTower = 1;
    repeated WirelessAP wirelessAP = 2;
}
