117 lines
4.5 KiB
Go
117 lines
4.5 KiB
Go
package entity
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
//WebhookResponse has the data and events from the webhook
|
|
type WebhookResponse struct {
|
|
EventID string `json:"event_id,omitempty"`
|
|
HREF string `json:"href,omitempty"`
|
|
OccurredAt time.Time `json:"occurred_at,omitempty"`
|
|
EventType string `json:"event_type,omitempty"`
|
|
Ride Ride `json:"event,omitempty"`
|
|
}
|
|
|
|
// Ride entity data
|
|
type Ride struct {
|
|
ID int64 `db:"ride_id" json:"-"`
|
|
UUID string `db:"ride_uuid" json:"ride_uuid"`
|
|
User User `db:"user" json:"user"`
|
|
Status RideStatus `db:"status" json:"status"`
|
|
Type RideType `db:"type" json:"type"`
|
|
InternalID string `db:"internal_id" json:"internal_id"`
|
|
RequestDate *time.Time `db:"request_date" json:"request_date"`
|
|
RequestMiliseconds *int64 `db:"request_ms" json:"request_ms"`
|
|
GenerateDate *time.Time `db:"generate_date" json:"generate_date"`
|
|
GenerateMiliseconds *int64 `db:"generate_ms" json:"generate_ms"`
|
|
Note string `db:"notes" json:"notes"`
|
|
PrimetimePercentage string `db:"primetime_percentage" json:"primetime_percentage"`
|
|
Passenger RidePassenger `db:"passenger" json:"passenger"`
|
|
Driver RideDriver `db:"driver" json:"driver"`
|
|
Vehicle RideVehicle `db:"vehicle" json:"vehicle"`
|
|
Route RideRoute `db:"route" json:"route"`
|
|
VisitDate *time.Time `db:"visit_date" json:"visit_date"`
|
|
VisitTime *time.Time `db:"visit_time" json:"visit_time"`
|
|
PickupTime *time.Time `db:"pickup_time" json:"pickup_time"`
|
|
Created time.Time `db:"create_at" json:"create_at"`
|
|
Updated time.Time `db:"update_at" json:"update_at"`
|
|
Visit Visit `db:"visit" json:"visit"`
|
|
CreatedUser User `db:"created_user" json:"created_user"`
|
|
TripType TripType `db:"trip_type" json:"trip_type"`
|
|
}
|
|
|
|
// RidePassenger entity data
|
|
type RidePassenger struct {
|
|
ID int64 `db:"ride_passenger_id" json:"-"`
|
|
FirstName string `db:"first_name" json:"first_name"`
|
|
LastName string `db:"last_name" json:"last_name"`
|
|
ImageURL *string `db:"image_url" json:"image_url"`
|
|
PhoneNumber string `db:"phone_number" json:"phone_number"`
|
|
InternalID *string `db:"internal_id" json:"internal_id"`
|
|
}
|
|
|
|
// RideStatus entity data
|
|
type RideStatus struct {
|
|
ID int64 `db:"ride_status_id" json:"-"`
|
|
Key string `db:"key" json:"key"`
|
|
Value string `db:"value" json:"value"`
|
|
}
|
|
|
|
// RideStatus entity data
|
|
type TripType struct {
|
|
ID int64 `db:"trip_type_id" json:"-"`
|
|
Key string `db:"trip_type_key" json:"key"`
|
|
Value string `db:"trip_type" json:"value"`
|
|
}
|
|
|
|
// RideType entity data
|
|
type RideType struct {
|
|
ID int64 `db:"ride_type_id" json:"-"`
|
|
Key string `db:"key" json:"key"`
|
|
Value string `db:"value" json:"value"`
|
|
}
|
|
|
|
// RideRoute entity data
|
|
type RideRoute struct {
|
|
ID int64 `db:"ride_route_id" json:"-"`
|
|
Origin Location `db:"origin" json:"origin"`
|
|
Destination Location `db:"destination" json:"destination"`
|
|
RouteKML *string `db:"route_kml" json:"route_kml"`
|
|
Distance float64 `db:"distance" json:"distance"`
|
|
Duration int64 `db:"duration" json:"duration"`
|
|
ETA int64 `db:"eta" json:"eta"`
|
|
Created time.Time `db:"create_at" json:"create_at"`
|
|
Updated time.Time `db:"update_at" json:"update_at"`
|
|
}
|
|
|
|
// Location entity data
|
|
type Location struct {
|
|
ID string `db:"id" json:"id"`
|
|
Name string `db:"name" json:"name"`
|
|
Address string `db:"address" json:"address"`
|
|
Latitude float64 `db:"lat" json:"lat"`
|
|
Longitude float64 `db:"lng" json:"lng"`
|
|
}
|
|
|
|
// RideDriver entity data
|
|
type RideDriver struct {
|
|
ID int64 `db:"ride_driver_id" json:"-"`
|
|
Name string `db:"name" json:"name"`
|
|
ImageURL *string `db:"image_url" json:"image_url"`
|
|
PhoneNumber string `db:"phone_number" json:"phone_number"`
|
|
Rating *string `db:"rating" json:"rating"`
|
|
}
|
|
|
|
// RideVehicle entity data
|
|
type RideVehicle struct {
|
|
ID int64 `db:"ride_vehicle_id" json:"-"`
|
|
Color string `db:"color" json:"color"`
|
|
ImageURL string `db:"image_url" json:"image_url"`
|
|
LicensePlate string `db:"license_plate" json:"license_plate"`
|
|
LicensePlateState string `db:"license_plate_state" json:"license_plate_state"`
|
|
Make string `db:"make" json:"make"`
|
|
Model string `db:"model" json:"model"`
|
|
Year int64 `db:"year" json:"year"`
|
|
}
|