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;
    }