first commit
This commit is contained in:
95
internal/models.go
Normal file
95
internal/models.go
Normal file
@@ -0,0 +1,95 @@
|
||||
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"`
|
||||
}
|
||||
Reference in New Issue
Block a user