Documentation
¶
Index ¶
Constants ¶
View Source
const ( // PassengerAccepted means the passenger is in the ride PassengerAccepted = "accepted" // PassengerInterested means the passenger would like to join the ride PassengerInterested = "interested" // PassengerRejected means the passenger cannot join the ride PassengerRejected = "rejected" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Car ¶
type Car struct {
ID string `json:"id"`
Make string `json:"make"`
Model string `json:"model"`
Year int `json:"year"`
Color string `json:"color"`
UserID string `json:"user_id" db:"user_id"`
CreatedAt time.Time `json:"created_at" db:"created_at"`
UpdatedAt time.Time `json:"updated_at" db:"updated_at"`
}
Car model instance
type CarChangeSet ¶
type CarChangeSet struct {
Make *string
Model *string
Year *int
Color *string
UserID *string // this one you would set in adapter
}
CarChangeSet is an object for updates
type Passenger ¶
type Passenger struct {
ID string `json:"id" db:"id"`
DriverID string `json:"driver_id" db:"driver_id"`
PassengerID string `json:"passenger_id" db:"passenger_id"`
RideID string `json:"ride_id" db:"ride_id"`
Status string `json:"status" db:"status"`
CreatedAt time.Time `json:"created_at" db:"created_at"`
UpdatedAt time.Time `json:"updated_at" db:"updated_at"`
}
Passenger is the entity for the ride passenger relation
func NewPassenger ¶
func NewPassenger(p *PassengerChangeSet) (*Passenger, error)
NewPassenger creates and validates a passenger from a changeset
func (*Passenger) ApplyUpdates ¶
func (p *Passenger) ApplyUpdates(o *PassengerChangeSet) error
ApplyUpdates attempts to update the passenger with the given changes
type PassengerChangeSet ¶
type PassengerChangeSet struct {
PassengerID *string `json:"passenger_id"`
RideID *string `json:"ride_id"`
Status *string `json:"status"`
}
PassengerChangeSet is what is allowed to be changed
type Ride ¶
type Ride struct {
ID string `json:"id" db:"id"`
DriverID string `json:"driver_id" db:"driver_id"`
CarID string `json:"car_id" db:"car_id"`
Seats int `json:"seats" db:"seats"`
SeatsTaken *int `json:"seats_taken,omitempty" db:"seats_taken"` //extra detail field
StartCity string `json:"start_city" db:"start_city"`
EndCity string `json:"end_city" db:"end_city"`
StartLat float64 `json:"start_dest_lat" db:"start_dest_lat"`
StartLon float64 `json:"start_dest_lon" db:"start_dest_lon"`
EndLat float64 `json:"end_dest_lat" db:"end_dest_lat"`
EndLon float64 `json:"end_dest_lon" db:"end_dest_lon"`
PricePerSeat float64 `json:"price_per_seat" db:"price_per_seat"`
Info string `json:"info" db:"info"`
PassengerStatus *string `json:"passenger_status,omitempty" db:"passenger_status"` // extra detail field
StartDate time.Time `json:"start_date" db:"start_date"`
CreatedAt time.Time `json:"created_at" db:"created_at"`
UpdatedAt time.Time `json:"updated_at" db:"updated_at"`
}
Ride is a ride entity
func NewRide ¶
func NewRide(r *RideChangeSet) (*Ride, error)
NewRide returns a Ride with the change set fields applied
func (*Ride) ApplyUpdates ¶
func (r *Ride) ApplyUpdates(o *RideChangeSet) error
ApplyUpdates attempts to update ride and validates the updates
type RideChangeSet ¶
type RideChangeSet struct {
DriverID *string `json:"-"`
CarID *string `json:"car_id"`
Seats *int `json:"seats"`
StartCity *string `json:"start_city"`
EndCity *string `json:"end_city"`
StartLat *float64 `json:"start_dest_lat"`
StartLon *float64 `json:"start_dest_lon"`
EndLat *float64 `json:"end_dest_lat"`
EndLon *float64 `json:"end_dest_lon"`
PricePerSeat *float64 `json:"price_per_seat"`
Info *string `json:"info"`
StartDate time.Time `json:"start_date"`
}
RideChangeSet is the fields that are modifiable in the ride
type User ¶
type User struct {
ID string `json:"id"`
FirstName string `json:"first_name" db:"first_name"`
LastName string `json:"last_name" db:"last_name"`
Email string `json:"email"`
ProfileImage string `json:"profile_image" db:"profile_image"`
AuthLevel int `json:"auth_level" db:"auth_level"`
CreatedAt time.Time `json:"created_at" db:"created_at"`
UpdatedAt time.Time `json:"updated_at" db:"updated_at"`
}
User model instance
Click to show internal directories.
Click to hide internal directories.