order

package
v0.0.0-...-8b0bed9 Latest Latest
Warning

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

Go to latest
Published: Mar 16, 2024 License: Apache-2.0 Imports: 7 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func UpdateDisplayName

func UpdateDisplayName(orderToUpdate, updatedOrder *Order) error

func UpdateEmailAddress

func UpdateEmailAddress(orderToUpdate, updatedOrder *Order) error

func UpdateFirstName

func UpdateFirstName(orderToUpdate, updatedOrder *Order) error

func UpdateIsKnight

func UpdateIsKnight(orderToUpdate, updatedOrder *Order) error

func UpdateLastName

func UpdateLastName(orderToUpdate, updatedOrder *Order) error

func UpdatePhoneNumber

func UpdatePhoneNumber(orderToUpdate, updatedOrder *Order) error

Types

type Order

type Order struct {
	CreatedTime       time.Time                 `json:"createdTime" firestore:"createdTime"`
	DisplayName       string                    `json:"displayName" firestore:"displayName"`
	EmailAddress      string                    `json:"emailAddress" firestore:"emailAddress"`
	Expedite          bool                      `json:"expedite" firestore:"expedite"`
	Expiration        time.Time                 `json:"expiration" firestore:"expiration"`
	FeeAmount         float64                   `json:"feeAmount" firestore:"feeAmount"`
	FirstName         string                    `json:"firstName" firestore:"firstName"`
	LastName          string                    `json:"lastName" firestore:"lastName"`
	ID                string                    `json:"id" firestore:"id"`
	IdempotencyKeys   map[string]bool           `json:"idempotencyKeys" firestore:"idempotencyKeys"`
	Items             []OrderItem               `json:"items" firestore:"items"`
	KnightOfColumbus  bool                      `json:"isKnight" firestore:"isKnight"`
	LabelIDs          []string                  `json:"labelIDs" firestore:"labelIDs"`
	Number            uint16                    `json:"number" firestore:"number"` // This should be autogenerated by Firestore upon insert
	Note              string                    `json:"note" firestore:"note"`
	PhoneNumber       string                    `json:"phoneNumber" firestore:"phoneNumber"`
	ReceiptURL        string                    `json:"receiptURL" firestore:"receiptURL"`
	Source            paymentType.PaymentSource `json:"source" firestore:"source"`
	SquareCustomerID  string                    `json:"squareCustomerID" firestore:"squareCustomerID"`
	SquareOrderState  SquareOrderState          `json:"squareOrderState" firestore:"squareOrderState"`
	SquarePaymentID   string                    `json:"squarePaymentID" firestore:"squarePaymentID"`
	SquareUpdatedTime time.Time                 `json:"squareUpdatedTime" firestore:"squareUpdatedTime"`
	Status            OrderStatus               `json:"status" firestore:"status"`
	StatusTransitions []OrderStatusTransition   `json:"statusTransitions" firestore:"statusTransitions"`
	TipAmount         float64                   `json:"tipAmount" firestore:"tipAmount"`
	TotalAmount       float64                   `json:"totalAmount" firestore:"totalAmount"`
	Version           int32                     `json:"version" firestore:"version"`
}

func CreateInternalOrderFromSquareOrder

func CreateInternalOrderFromSquareOrder(squareOrder models.Order) (*Order, error)

func CreateOrderFromPayment

func CreateOrderFromPayment(payment paymentType.Payment) (*Order, error)

func (*Order) Update

func (o *Order) Update(eventType string, proposedOrder *Order) error

func (*Order) UpdateFromCustomerCreated

func (o *Order) UpdateFromCustomerCreated(customer *customer.Customer) error

type OrderItem

type OrderItem struct {
	SquareCatalogObjectID string          `json:"squareCatalogObjectID" firestore:"squareCatalogObjectID"`
	Modifiers             []OrderModifier `json:"modifiers" firestore:"modifiers"`
	Name                  string          `json:"name" firestore:"name"`
	Note                  string          `json:"note" firestore:"note"`
	Quantity              string          `json:"quantity" firestore:"quantity"`
	SquareItemType        OrderItemType   `json:"squareItemType" firestore:"squareItemType"`
	Variation             string          `json:"variation" firestore:"variation"`
}

type OrderItemType

type OrderItemType string

This is the type of the item within an order

const (
	ORDER_ITEM_TYPE_UNKNOWN       OrderItemType = ""
	ORDER_ITEM_TYPE_ITEM          OrderItemType = "ITEM"
	ORDER_ITEM_TYPE_CUSTOM_AMOUNT OrderItemType = "CUSTOM_AMOUNT"
	ORDER_ITEM_TYPE_GIFT_CARD     OrderItemType = "GIFT_CARD"
)

type OrderModifier

type OrderModifier struct {
	Name                  string `json:"name" firestore:"name"`
	Quantity              string `json:"quantity" firestore:"quantity"`
	SquareCatalogObjectID string `json:"squareCatalogObjectID" firestore:"squareCatalogObjectID"`
}

type OrderStatus

type OrderStatus string

This is the status of the order as it flows through fundraiser-manager

const (
	ORDER_STATUS_UNKNOWN  OrderStatus = ""
	ORDER_STATUS_ONLINE   OrderStatus = "ONLINE"
	ORDER_STATUS_PRESENT  OrderStatus = "PRESENT"
	ORDER_STATUS_LABELED  OrderStatus = "LABELED"
	ORDER_STATUS_READY    OrderStatus = "READY"
	ORDER_STATUS_CLOSED   OrderStatus = "CLOSED"
	ORDER_STATUS_CANCELED OrderStatus = "CANCELED"
)

type OrderStatusTransition

type OrderStatusTransition struct {
	PreviousStatus OrderStatus
	Status         OrderStatus
	Timestamp      time.Time
}

type OrderUpdateFunc

type OrderUpdateFunc func(*Order, *Order) error

type SquareOrderState

type SquareOrderState string

this is the state of the order object according to Square

const (
	SQUARE_ORDER_STATE_UNKNOWN   SquareOrderState = ""
	SQUARE_ORDER_STATE_OPEN      SquareOrderState = "OPEN"
	SQUARE_ORDER_STATE_COMPLETED SquareOrderState = "COMPLETED"
	SQUARE_ORDER_STATE_CANCELED  SquareOrderState = "CANCELED"
	SQUARE_ORDER_STATE_DRAFT     SquareOrderState = "DRAFT"
)

Jump to

Keyboard shortcuts

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