Manual description
Protocol Documentation
Booking.proto
Booking related messages.
This file is really just an example. The data model is completely fictional.
Booking
Represents the booking of a vehicle.
Vehicles are some cool shit. But drive carefully!
| Field | Type | Label | Description |
|---|---|---|---|
| vehicle_id | int32 | ID of booked vehicle. | |
| customer_id | int32 | Customer that booked the vehicle. | |
| status | BookingStatus | Status of the booking. | |
| confirmation_sent | bool | Has booking confirmation been sent? | |
| payment_received | bool | Has payment been received? | |
| color_preference | string | Deprecated. Color preference of the customer. |
BookingStatus
Represents the status of a vehicle booking.
| Field | Type | Label | Description |
|---|---|---|---|
| id | int32 | Unique booking status ID. | |
| description | string | Booking status description. E.g. "Active". |
BookingStatusID
Represents the booking status ID.
| Field | Type | Label | Description |
|---|---|---|---|
| id | int32 | Unique booking status ID. |
EmptyBookingMessage
An empty message for testing
BookingService
Service for handling vehicle bookings.
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| BookVehicle | Booking | BookingStatus | Used to book a vehicle. Pass in a Booking and a BookingStatus will be returned. |
| BookingUpdates | BookingStatusID | BookingStatus stream | Used to subscribe to updates of the BookingStatus. |
Customer.proto
This file has messages for describing a customer.
Address
Represents a mail address.
| Field | Type | Label | Description |
|---|---|---|---|
| address_line_1 | string | required | First address line. |
| address_line_2 | string | optional | Second address line. |
| address_line_3 | string | optional | Second address line. |
| town | string | required | Address town. |
| county | string | optional | Address county, if applicable. |
| country | string | required | Address country. |
Customer
Represents a customer.
| Field | Type | Label | Description |
|---|---|---|---|
| id | int32 | required | Unique customer ID. |
| first_name | string | required | Customer first name. |
| last_name | string | required | Customer last name. |
| details | string | optional | Customer details. |
| email_address | string | optional | Customer e-mail address. |
| phone_number | string | repeated | Customer phone numbers, primary first. |
| mail_addresses | Address | repeated | Customer mail addresses, primary first. |
Vehicle.proto
Messages describing manufacturers / vehicles.
Manufacturer
Represents a manufacturer of cars.
| Field | Type | Label | Description |
|---|---|---|---|
| id | int32 | required | The unique manufacturer ID. |
| code | string | required | A manufacturer code, e.g. "DKL4P". |
| details | string | optional | Manufacturer details (minimum orders et.c.). |
| category | Manufacturer.Category | optional | Manufacturer category. Default: CATEGORY_EXTERNAL |
Model
Represents a vehicle model.
| Field | Type | Label | Description |
|---|---|---|---|
| id | string | required | The unique model ID. |
| model_code | string | required | The car model code, e.g. "PZ003". |
| model_name | string | required | The car model name, e.g. "Z3". |
| daily_hire_rate_dollars | sint32 | required | Dollars per day. |
| daily_hire_rate_cents | sint32 | required | Cents per day. |
Vehicle
Represents a vehicle that can be hired.
| Field | Type | Label | Description |
|---|---|---|---|
| id | int32 | required | Unique vehicle ID. |
| model | Model | required | Vehicle model. |
| reg_number | string | required | Vehicle registration number. |
| mileage | sint32 | optional | Current vehicle mileage, if known. |
| category | Vehicle.Category | optional | Vehicle category. |
| daily_hire_rate_dollars | sint32 | optional | Dollars per day. Default: 50 |
| daily_hire_rate_cents | sint32 | optional | Cents per day. |
| Extension | Type | Base | Number | Description |
|---|---|---|---|---|
| series | string | Model | 100 | Vehicle model series. |
Vehicle.Category
Represents a vehicle category. E.g. "Sedan" or "Truck".
| Field | Type | Label | Description |
|---|---|---|---|
| code | string | required | Category code. E.g. "S". |
| description | string | required | Category name. E.g. "Sedan". |
Manufacturer.Category
Manufacturer category. A manufacturer may be either inhouse or external.
| Name | Number | Description |
|---|---|---|
| CATEGORY_INHOUSE | 0 | The manufacturer is inhouse. |
| CATEGORY_EXTERNAL | 1 | The manufacturer is external. |
File-level Extensions
| Extension | Type | Base | Number | Description |
|---|---|---|---|---|
| country | string | Manufacturer | 100 | Manufacturer country. Default: China |