/**
 * <p class=proto-main>The proto is utilized for Destination,Address,POI and location used in other Protobuff .</p>
 *
 * <div class=proto-hier>
 * <a href="#com.fca.uconnect.global.Destination">Destination </a>
 *
 * <a href="#com.fca.uconnect.global.Address">Address</a>
 *
 * <a href="#com.fca.uconnect.global.PointOfInterest">PointOfInterest</a>
 *
 * <a href="#com.fca.uconnect.global.Location">Location</a>
 *
 * </div>
 *
 *  <h3 class=change-log-hdr> Change Log</h3>
 *  <table id="change-log" class="change-log"><thead><tr>
 *	<th>Version</th><th>Date</th><th>Notes</th></tr></thead>
 *   <tbody>
  * <tr><td>1.6</td><td>2018-06-21</td><td>PositionDirection Change to Double</td></tr>
 * <tr><td>1.5</td><td>2018-06-21</td><td>Added GPS Fix Type and isGPSFixUnavailable. Removed isGPSFixCurrent</td></tr>
 * <tr><td>1.4</td><td>2018-04-30</td><td>Added Vehicle direction object per request</td></tr>
 * <tr><td>1.3</td><td>2018-04-04</td><td>Added Zip code and Secondary Unit Designation to the Address object</td></tr>
 * <tr><td>1.2</td><td>2017-11-2</td><td>Update to Proto3</td></tr>
 *	<tr><td>1.1</td><td>2017-09-29</td><td>Add additional location error details</td></tr>
 *	<tr><td>1.0</td><td>2017-09-20</td><td>Release of initial Proto</td></tr>
 *	</tbody></table>
 *
 */
syntax="proto3";
package com.fca.uconnect.global;


message Destination {
	enum RoutePreference {
		DEFAULT = 0;
		FAST = 1;
		SHORT = 2;
		ECONOMICAL = 3;
		RECOMMENDATION = 4;
	}
	 Location location = 1; //Lat, long of destination
	 PointOfInterest destinationPoi	=2 ;///	Related POI
     Address destinationAddress = 3;/// Related Address
     int64 createTimestamp = 4;
     RoutePreference routePreference = 5;
}

message Address {
	 string countryName = 1; /// Country Name
	 string countryCode	 = 2; /// Two or three digit country code (US)
	 string provinceName= 3; /// State or Province Name
	 string provinceCode	 = 4; /// Two or three digit state or province code (MI)
	 string cityName= 5; /// City Name
	 string cityCode= 6; /// City abbreviation code
	 string districtCountyName	 = 7; /// District or county name
	 string districtCountyCode	 = 8; /// District or county code (Mac)
	 string streetName	 = 9; /// Name of Street
	 string secondUnitDesignator = 12; /// Unit designation for apartment or other
	 string streetCode	 = 10;
	 string houseNumber	 = 11; /// House number of address
	 string postalCode= 13;  /// Postal Code
}
message PointOfInterest {
	 string name = 1;
	 string category = 2;
	 int32 id = 3;
	 string phoneNumber = 4;
	 string description = 5;
	 string url = 6;
}
message Location {
	 double positionLatitude = 1; /// Position Latitude in degrees. Use NaN if not populated, during Privacy Mode
	 double positionLongitude = 2;/// Position Longitude in degrees. Use NaN if not populated, during Privacy Mode
	 int32 estimatedPositionError = 3;/// Estimated error in Meters in a radius around the lat/lon position. If GPS fix is not current, then estimated error should be an error value (e.g., -1 or 0x80000000).
	 double positionAltitude = 4;/// Position Altitude.
	 GpsFixType gpsFixTypeEnum = 5;/// Indicates the type of GPS Fix
	 bool isGPSFixNotAvailable = 8; /// True when the FixType is ID_FIX_NO_POS[0] or ID_FIX_ESTIMATED[3]
	 int32 estimatedAltitudeError = 6;/// Estimated error in Meters above or below altitude if GPS Fix is current.
	 double positionDirection = 7; /// Direction the vehicle is traveling.
enum GpsFixType {
	ID_FIX_NO_POS = 0; /// The GNSS fix position is not fixed.
	ID_FIX_3D = 1; ///3-Dimensional position fix.
	ID_FIX_2D = 2; /// 2-Dimensional position fix
	ID_FIX_ESTIMATED = 3; /// Estimated (i.e. forward predicted) position fix.


	 }
	 }

