package models import ( "time" "github.com/google/uuid" ) // CustomerOrderSummary is one order in GET /customer/orders. type CustomerOrderSummary struct { ID uuid.UUID `json:"id"` OrderNumber string `json:"order_number"` OutletID uuid.UUID `json:"outlet_id"` OutletName string `json:"outlet_name"` OrderType string `json:"order_type"` Status string `json:"status"` PaymentStatus string `json:"payment_status"` TotalAmount float64 `json:"total_amount"` ItemCount int64 `json:"item_count"` IsVoid bool `json:"is_void"` IsRefund bool `json:"is_refund"` // EnakPoint and EnakCoin the order earned; 0 when it earned nothing. PointsEarned int64 `json:"points_earned"` CoinsEarned int64 `json:"coins_earned"` CreatedAt time.Time `json:"created_at"` } // CustomerOrderDetail is GET /customer/orders/:id. type CustomerOrderDetail struct { CustomerOrderSummary TableNumber *string `json:"table_number"` Subtotal float64 `json:"subtotal"` DiscountAmount float64 `json:"discount_amount"` TaxAmount float64 `json:"tax_amount"` RefundAmount float64 `json:"refund_amount"` Items []CustomerOrderItem `json:"items"` Payments []CustomerOrderPayment `json:"payments"` } type CustomerOrderItem struct { ID uuid.UUID `json:"id"` ProductID uuid.UUID `json:"product_id"` ProductName string `json:"product_name"` VariantName *string `json:"variant_name"` Quantity int `json:"quantity"` // Set for products sold by weight, in UnitName. Weight *float64 `json:"weight,omitempty"` UnitName *string `json:"unit_name,omitempty"` UnitPrice float64 `json:"unit_price"` TotalPrice float64 `json:"total_price"` RefundQuantity int `json:"refund_quantity"` Modifiers []map[string]interface{} `json:"modifiers"` Notes *string `json:"notes,omitempty"` Status string `json:"status"` } type CustomerOrderPayment struct { ID uuid.UUID `json:"id"` MethodName string `json:"method_name"` MethodType string `json:"method_type"` Amount float64 `json:"amount"` Status string `json:"status"` RefundAmount float64 `json:"refund_amount"` CreatedAt time.Time `json:"created_at"` } // ListCustomerOrdersQuery is GET /customer/orders. type ListCustomerOrdersQuery struct { Page int `form:"page"` Limit int `form:"limit"` }