turboMessage.proto

Table of contents
No headers
// Google Protocol Buffers
// ----------------------------------------------------------------
// double  int32   uint32   sint32   fixed32   sfixed32   bytes    bool
// float   int64   uint64   sint64   fixed64   sfixed64   string


package turboExchange.Messages.turboMessage;



message RecoveryJob		//1000
{
	enum MessageEvent
	{
		NewJob		= 1;   //9100,GM-JOB
		JobUpdate	= 2;   //9100,MTS-UPD
	}
	
	
	message timedTextField
	{
		optional	int64			_dateTime					= 1;
		required	string			_text						= 2;
	}

	message vehicle
	{
		optional	string			_type						= 1;	    //1104
		optional	string			_make						= 2;	    //1103
		optional	string			_model						= 3;	    //1103
		optional	string			_registration				= 4;	    //1105
		optional	uint32			_odometer					= 5;	    //1106
		optional	string			_transmission				= 6;	    //1007
		optional    string			_fuelType					= 7;		//1108
		optional    string			_engine						= 8;		//1108		
		optional	string			_colour						= 9;	    //1110
		optional	string			_contents					= 10;	    //1111
		optional	bool			_towingATrailer				= 11;	    //1112
		optional	float			_grossMass					= 12;       //1113
		optional	string			_trim						= 13;       //1116
	}
	

	optional	MessageEvent	_messageEvent				= 1;		//9100
	required	string			_jobNumber					= 2;		//1004
	optional	string			_agentReference				= 3;		//1001
	optional	string			_acceptedBy					= 4;		//1002
	optional	int64			_jobDateTime				= 5;		//1005
	optional	string			_reference					= 6;		//1006
	optional	int64			_timeOfCall					= 7;		//1007
	optional	int64			_eta						= 8;		//1008
	optional	int64			_clearTime					= 9;		//1009
	optional	uint32			_onSceneElapsed				= 10;		//1010
	optional	uint32			_clearTimeElapsed			= 11;		//1011
	optional	uint32			_etaElapsed					= 12;		//1012
	optional	int64			_memberCallDateTime			= 13;		//1014/1015
	optional	int64			_dispatchTime				= 14;		//1018
	optional	uint32			_dispatchTimeElapsed		= 15;		//1019
	optional	string			_membershipDetails			= 16;		//1100
	optional	string			_clientName					= 17;		//1101
	optional	string			_clientAddress				= 18;		//1102 //coma separated
	optional	string			_clientAddressPostcode		= 19;		
	optional    string			_driverLocation				= 20;		//1109
	optional	string			_symptom					= 21;		//1114
	optional	string			_towType					= 22;		//1115
	optional	vehicle			_vehicle					= 23;
	optional	uint32			_odometer					= 24;		//1117
	optional	string			_vehicleLocation			= 25;		//1200
	optional	string			_driversPhoneNo				= 26;		//1201
	optional	string			_vehicleLocationOfKeys		= 27;		//1202
	optional	uint32			_peopleOnBoardAdult			= 28;		//1203
	optional	uint32			_peopleOnBoardChild			= 29;		//1203
	optional	string			_loadDescription			= 30;		//1204
	optional	string			_faultCode					= 31;		//1205
	optional	string			_faultDescription			= 32;		//1205
	optional	string			_categoryOfService			= 33;		//1206
	optional	string			_outcomeCode				= 34;		//1207
	optional	string			_outcomeDescription			= 35;		//1207
	optional	string			_towedTo				= 36;		//1208
	repeated	string			_recoveryDriver				= 37;		//1209
	repeated	timedTextField	_remarks					= 38;		//1210
	repeated	string			_recoveryVehicleUsed		= 39;		//1211
	repeated	timedTextField  _notes						= 40;		//1212 //This field is usually kept private, and shared between internal depatments.
	optional	double			_latitude					= 41;		//1213
	optional	double			_longitude					= 42;		//1213
	optional	string			_controllerContact			= 43;		//1223
	optional	string			_area						= 44;		//1222
}

message RecoveryJobReply  //1005
{
	enum Status
	{
		Accepted	= 1;
		Rejected	= 2;
	}
	
	enum RefuseCode
	{
		NightMode_00								= 1;	// Jobaccepted only by computer - Sender must now ring a pre arranged telephone number with job details. Used for example in 24hr operations when the computer is put into Night Mode because the operator has gone home for the night
		TooBusyToDeal_01							= 2;
		NotOurAera_02								= 3;
		ExtremeWeather_03							= 4;
		ExtremeTrafficConditions_04					= 5;
		NoFacilitiesAvailable_05					= 6;
		NoStaff_06									= 7;
		InDisputeWithOrganisationOrMember_07		= 8;
		UnableToAttendWithinETA_08					= 9;
		UnableToDoRecoveryAfterRoadsideAssist_09	= 10;
		TemporarilyUnavailable_10					= 11;
		GuaranteeOfPaymentNotGiven_11				= 12;
		NoLicenseForThisClass_12					= 13;
		OutOfDriverHours_13							= 14;
		UnableToDoJobOrParts_14						= 15;
		AlreadyWorkingForThisOrganisation_15		= 16;
		TelephoneNoAnswer_16						= 17;
		TelephoneRepeatedlyEngaged_17				= 18;
		TelephoneUnobtainable_18					= 19;
		PassedToFitter_19							= 20;
		RetransmitRequest_100						= 100;
	}
	
	required	Status		_status			= 1;  
	required	string		_jobNumber		= 2;  //1004
	optional	int64		_eta			= 3;  //1008
	optional	RefuseCode	_refuseCode		= 4;  //9101
}


message RecoveryClearDown   //1010
{
	//"9100,MTS-CLR
	required	string			_jobNumber					= 1;		//1004
	optional	string			_agentReference				= 2;		//1001
	optional	int64			_etaTime					= 3;        //1008
	optional	int64			_timeOnScene				= 4;       
	optional	int32			_timeOnSceneElapsed			= 5;        //1010
	optional	int64			_timeClear					= 6;		//1009
	optional	string			_faultCode					= 7;		//1205
	optional	string			_faultDescription			= 8;		//1205
	optional	string			_outcomeCode				= 9;		//1207
	optional	string			_outcomeDescription			= 10;		//1207
	optional	uint32			_odometer					= 11;		//1106
}

message TextMessage  //1400
{
	//9100,MTS-MSG
	required	string			_text						= 1;		//1220
	optional	string			_jobNumber					= 2;		//1004
	optional	string			_agentReference				= 3;		//1001
	optional	int64			_dateTime					= 4;		//1005
	
}

message VehicleHire  //1500
{
	//"9100,VEHICLE-HIRE"
	optional	string			_sendersPhoneNumber			= 1;		//9003
	optional	string			_vehicleUsed				= 2;		//1211
	optional	int64			_eta						= 3;		//1008
	optional	string			_vehicleBodyType			= 4;		//1701
	optional	uint32			_maxLoadLbs					= 5;		//1702
	optional	string			_vehicleLocation					= 6;		//1200	
	optional	string			_deliveredTo				= 7;		//1208
}


message Invoice
{
	enum Currency
	{
		GBP = 1;
		EU	= 2;
	}
	
	enum InvoiceType
	{
		Invoice		=	1;
		CreditNote  =   2;
		Proforma	=   3;
	}
	
	message price
	{
		required	float		_quantity			= 1;
		required	float 		_unitNet			= 2;
		required	float 		_totalNet			= 3;
		required	float		_totalVAT			= 4;
		required	float		_vatRate			= 5;
		optional    string		_description		= 6;
	} 	

	message autherisedCost
	{
		optional	float		_miles				= 1;
		optional	float		_netCost			= 2;
		optional	string		_autherisedRef		= 3;
	}
	
	required	RecoveryJob		_recoveryJob		= 1;
	required    InvoiceType		_invoiceType		= 2;
	required	string			_invoiceNumber		= 3;	 //0000
	required	int64			_invoiceDate		= 4;
	optional	string			_vatNumber			= 5;	 //1000	
	optional	Currency		_currencyType		= 6;
	optional	string			_agentNumber		= 7;	 //1001
	repeated	price			_calloutCharge		= 8;	 //0001
	repeated	price			_mileageCharge		= 9;	 //0002
	repeated	price			_labourCharge		= 10;	 //0003
	repeated	price			_tollCharge			= 11;	 //0004
	repeated	price			_hours				= 12;	 //0005
	repeated	price			_extraMan			= 13;	 //0006
	repeated	price			_serviceVan			= 14;	 //0007
	repeated	price			_partsSold			= 15;	 //0008	
	repeated	price			_fuelSupplied		= 16;	 //0009
	repeated	price			_othercharges		= 17;	 //0010
	repeated	price			_trailerMiles		= 18;	 //0011
	optional	float			_quotedPrice		= 19;	 //0012
	required	float			_totalNet			= 20;	 //0013
	required	float			_totalVatAmount		= 21;	 //0014
	required	float			_totalGross			= 22;	 //0015
	optional	float			_discountPercent	= 23;	 //0016
	optional	float			_discount			= 24;	 //0016
	optional    string			_accountRef			= 25;	 //0017  
	optional	autherisedCost  _autherisedCost		= 26;	 
	optional	string			_remittenceRef		= 27;    //0021
	optional	int64			_remittenceDate		= 28;    //0022
	optional	float			_remittenceGross	= 29;    //0023
	optional	string			_remarks			= 30;	 //1210

}

message InvoiceReply
{
	enum InvoiceType
	{
		Invoice		=	1;
		CreditNote  =   2;
		Proforma	=   3;
	}
	enum Reply
	{
		InvoicedReceived		= 1;
		InvoceAccepted			= 2;
		InvoiceRefused			= 3;
		InvoiceOnHold			= 4;
		DuplicateInvoice		= 5;
		PrintedInvoiceRequired	= 6;
	}
	required	InvoiceType		_type			= 1;
	required	Reply			_reply			= 2;	 //0021
	required	string			_invoiceNumber	= 3;	 //0000
	optional 	string			_jobNumber		= 4;	 //1004
	optional	string			_remarks		= 5;	 //1210
}



message InvoiceRemittance  //9100,REMITTANCE
{
	message invoice
	{
		required	string			_invoiceNumber	= 1;	//0000
		optional	string			_jobNumber		= 2;	//1004
		required	float			_net			= 3;	//0013
		required	float			_vat			= 4;	//0014
		required	float			_gross			= 5;	//1015
		optional	string			_remarks		= 6;
	}
	
	optional	string			_agentRef			= 1;	//1001
	optional	string			_remittanceRef		= 2;	//0021
	repeated	invoice			_invoice			= 3;
	optional	string			_jobNumber			= 4;	//1004
	required	float			_remittanceGross	= 5;	//0023
}


message TurboData   //4000
{
	required string			_message		= 3;
	optional uint32			_magicNumber	= 4;
}