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 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"` Departure_address *geojson.Feature Destination_address *geojson.Feature Pickup_date int64 `json:"pickup_date"` Duration int64 `json:"duration"` Distance float64 `json:"distance"` } 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"` Pickup_date int64 `json:"pickup_date"` Duration int64 `json:"duration"` Distance float64 `json:"distance"` } 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"` }