models

package
v0.0.0-...-95589b7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 28, 2024 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidUUID          = errors.New("invalid uuid")
	ErrMissingDestination   = errors.New("destination does not exist")
	ErrLaunchPadUnavailable = errors.New("launchpad is unavailable")
	ErrBookingNotFound      = errors.New("booking not found")
)

Functions

This section is empty.

Types

type AllBookingsResponse

type AllBookingsResponse struct {
	Bookings []BookingResponse `json:"bookings"`
	Limit    int               `json:"limit"`
	Cursor   string            `json:"cursor"`
}

type Booking

type Booking struct {
	ID        uuid.UUID     `json:"id"`
	User      User          `json:"user"`
	Flight    Flight        `json:"flight"`
	Status    BookingStatus `json:"status"`
	CreatedAt time.Time     `json:"created_at"`
}

type BookingRequest

type BookingRequest struct {
	ID            string    `json:"id,omitempty" validate:"omitempty,valid_uuid"`
	FirstName     string    `json:"first_name" validate:"required,name_length"`
	LastName      string    `json:"last_name" validate:"required,name_length"`
	Gender        string    `json:"gender" validate:"required,gender"`
	Birthday      time.Time `json:"birthday" validate:"required,valid_age"`
	LaunchpadID   string    `json:"launchpad_id" validate:"required,launchpad_id_length"`
	DestinationID string    `json:"destination_id" validate:"required,valid_uuid"`
	LaunchDate    time.Time `json:"launch_date" validate:"required,future_date"`
}

type BookingResponse

type BookingResponse struct {
	Booking
}

type BookingStatus

type BookingStatus string
const (
	StatusActive    BookingStatus = "ACTIVE"
	StatusConfirmed BookingStatus = "CONFIRMED"
	StatusCancelled BookingStatus = "CANCELLED"
)

type Destination

type Destination struct {
	ID   uuid.UUID `json:"id"`
	Name string    `json:"name"`
}

type Flight

type Flight struct {
	ID          uuid.UUID   `json:"id"`
	LaunchpadID string      `json:"launchpad_id"`
	Destination Destination `json:"destination"`
	LaunchDate  time.Time   `json:"launch_date"`
}

type GetBookingsRequest

type GetBookingsRequest struct {
	Limit int
	Uuid  string
	Ts    time.Time
}

type User

type User struct {
	ID        uuid.UUID `json:"id"`
	FirstName string    `json:"first_name"`
	LastName  string    `json:"last_name"`
	Gender    string    `json:"gender"`
	Birthday  time.Time `json:"birthday"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL