96 lines
3.3 KiB
Go
96 lines
3.3 KiB
Go
|
package internal
|
||
|
|
||
|
import (
|
||
|
"github.com/paulmach/orb/geojson"
|
||
|
)
|
||
|
|
||
|
const (
|
||
|
Punctual AvailabilitiesType = "PUNCTUAL"
|
||
|
Regular AvailabilitiesType = "REGULAR"
|
||
|
BookingStatusINITIATED BookingStatus = "INITIATED"
|
||
|
BookingStatusWAITINGPASSENGERCONFIRMATION BookingStatus = "WAITING_PASSENGER_CONFIRMATION"
|
||
|
BookingStatusWAITINGDRIVERCONFIRMATION BookingStatus = "WAITING_DRIVER_CONFIRMATION"
|
||
|
BookingStatusCONFIRMED BookingStatus = "CONFIRMED"
|
||
|
BookingStatusCANCELLED BookingStatus = "CANCELLED"
|
||
|
BookingStatusCOMPLETEDPENDINGVALIDATION BookingStatus = "COMPLETED_PENDING_VALIDATION"
|
||
|
BookingStatusVALIDATED BookingStatus = "VALIDATED"
|
||
|
)
|
||
|
|
||
|
type Passenger struct {
|
||
|
Passenger_departure_address *geojson.Feature
|
||
|
Passenger_destination_address *geojson.Feature
|
||
|
Passenger_pickup_date int64
|
||
|
Passenger User
|
||
|
Preferences Preferences
|
||
|
}
|
||
|
|
||
|
type Driver struct {
|
||
|
Driver_departure_address *geojson.Feature
|
||
|
Radius int32
|
||
|
Driver User
|
||
|
Preferences Preferences
|
||
|
AvailabilitiesType AvailabilitiesType
|
||
|
RegularAvailabilities []RegularAvailabilities `json:"availabilities,omitempty"`
|
||
|
PunctualAvailabilities []PunctualAvailabilities `json:"availabilities,omitempty"`
|
||
|
Car Car `json:"car,omitempty"`
|
||
|
}
|
||
|
|
||
|
type Car struct {
|
||
|
Model string `json:"model,omitempty"`
|
||
|
Brand string `json:"brand,omitempty"`
|
||
|
}
|
||
|
|
||
|
type AvailabilitiesType string
|
||
|
type BookingStatus string
|
||
|
|
||
|
type User struct {
|
||
|
ID string `json:"id"`
|
||
|
Operator string `json:"operator"`
|
||
|
Alias string `json:"alias"`
|
||
|
FirstName string `json:"first_name,omitempty"`
|
||
|
LastName string `json:"last_name,omitempty"`
|
||
|
Grade int64 `json:"grade,omitempty"`
|
||
|
Picture string `json:"picture,omitempty"`
|
||
|
Gender string `json:"gender,omitempty"`
|
||
|
VerifiedIdentity bool `json:"verified_identity,omitempty"`
|
||
|
}
|
||
|
|
||
|
type Preferences struct {
|
||
|
Smoking bool `json:"smoking,omitempty"`
|
||
|
Animals bool `json:"animals,omitempty"`
|
||
|
Music bool `json:"music,omitempty"`
|
||
|
Is_talker bool `json:"is_talker,omitempty"`
|
||
|
Luggage_size int64 `json:"luggage_size,omitempty"`
|
||
|
}
|
||
|
|
||
|
type BookingRequest struct {
|
||
|
ID string `json:"id"`
|
||
|
Passenger_id string `json:"passenger_id"`
|
||
|
Driver_id string `json:"driver_id"`
|
||
|
Status BookingStatus `json:"booking_status"`
|
||
|
Details map[string]any `json:"booking_details"`
|
||
|
Operator string `json:"operator"`
|
||
|
}
|
||
|
|
||
|
type Booking struct {
|
||
|
ID string `json:"id"`
|
||
|
Passenger User `json:"passenger"`
|
||
|
Driver User `json:"driver"`
|
||
|
PassengerPickupAddress *geojson.Feature
|
||
|
PassengerDropAddress *geojson.Feature
|
||
|
Status BookingStatus `json:"booking_status"`
|
||
|
Details map[string]any `json:"booking_details"`
|
||
|
}
|
||
|
|
||
|
type RegularAvailabilities struct {
|
||
|
DayOfWeek string `json:"dayOfWeek"`
|
||
|
StartTime string `json:"startTime"`
|
||
|
EndTime string `json:"endTime"`
|
||
|
}
|
||
|
|
||
|
type PunctualAvailabilities struct {
|
||
|
Date int64 `json:"date"`
|
||
|
StartTime string `json:"startTime"`
|
||
|
EndTime string `json:"endTime"`
|
||
|
}
|