Documentation
¶
Index ¶
- type AddItemInput
- type Cart
- type CartItem
- type CartStatus
- type CheckoutInput
- type Module
- func (m *Module) AddItem(ctx context.Context, input any) (any, error)
- func (m *Module) AddItemStep(sCtx mdk.StepContext) mdk.StepResult
- func (m *Module) AddItemToCart(ctx context.Context, cartID string, input AddItemInput) (*Cart, error)
- func (m *Module) Checkout(ctx context.Context, input any) (any, error)
- func (m *Module) CheckoutCart(ctx context.Context, cartID string, input *CheckoutInput) (bool, error)
- func (m *Module) CheckoutStep(sCtx mdk.StepContext) mdk.StepResult
- func (m *Module) CreateCartStep(sCtx mdk.StepContext) mdk.StepResult
- func (m *Module) FieldResolvers() map[string]any
- func (m *Module) GetActiveCart(ctx context.Context, customerID string) (*Cart, error)
- func (m *Module) GetCart(ctx context.Context, id string) (*Cart, error)
- func (m *Module) GetCartStep(sCtx mdk.StepContext) mdk.StepResult
- func (m *Module) ID() string
- func (m *Module) Init(ctx context.Context, rt mdk.Runtime) error
- func (m *Module) ListResources(ctx context.Context) ([]mdk.MCPResource, error)
- func (m *Module) Models() []any
- func (m *Module) Mutations() map[string]any
- func (m *Module) Queries() map[string]any
- func (m *Module) ReadResource(ctx context.Context, uri string) (string, error)
- func (m *Module) RemoveItem(ctx context.Context, input any) (any, error)
- func (m *Module) RemoveItemFromCart(ctx context.Context, cartID string, itemID string) (*Cart, error)
- func (m *Module) RemoveItemStep(sCtx mdk.StepContext) mdk.StepResult
- func (m *Module) Repo() *Repository
- func (m *Module) Routes() []mdk.Route
- func (m *Module) Shutdown(ctx context.Context) error
- type Repository
- func (r *Repository) ClearItems(ctx context.Context, cartID string) error
- func (r *Repository) DeleteItem(ctx context.Context, cartID, itemID string) error
- func (r *Repository) GetActiveByCustomerID(ctx context.Context, customerID string) (*Cart, error)
- func (r *Repository) GetByID(ctx context.Context, id string) (*Cart, error)
- func (r *Repository) Save(ctx context.Context, c *Cart) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AddItemInput ¶
type Cart ¶
type Cart struct {
ID string `gorm:"primaryKey" json:"id"`
CustomerID string `gorm:"index" json:"customer_id"`
Status CartStatus `gorm:"not null" json:"status"`
ShippingAddressID *string `json:"shipping_address_id"`
BillingAddressID *string `json:"billing_address_id"`
ShippingAddressJSON *string `json:"shipping_address_json"`
BillingAddressJSON *string `json:"billing_address_json"`
PaymentMethod string `json:"payment_method"`
ShippingCarrier string `json:"shipping_carrier"`
ShippingMethod string `json:"shipping_method"`
Items []CartItem `gorm:"foreignKey:CartID" json:"items"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
DeletedAt gorm.DeletedAt `gorm:"index" json:"-"`
}
Cart represents a temporary shopping session.
type CartItem ¶
type CartItem struct {
ID string `gorm:"primaryKey" json:"id"`
CartID string `gorm:"index" json:"cart_id"`
ProductID string `json:"product_id"`
Quantity int `json:"quantity"`
Price float64 `json:"price"` // Price at the time of adding to cart
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
DeletedAt gorm.DeletedAt `gorm:"index" json:"-"`
}
CartItem represents an item within a cart.
type CartStatus ¶
type CartStatus string
const ( CartActive CartStatus = "ACTIVE" CartCompleted CartStatus = "COMPLETED" CartAbandoned CartStatus = "ABANDONED" )
type CheckoutInput ¶ added in v0.4.0
type CheckoutInput struct {
ShippingAddressID *string `json:"shippingAddressId"`
BillingAddressID *string `json:"billingAddressId"`
ShippingAddress *customer.CreateAddressInput `json:"shippingAddress"`
BillingAddress *customer.CreateAddressInput `json:"billingAddress"`
PaymentMethod *string `json:"paymentMethod"`
PaymentDetails map[string]any `json:"paymentDetails"`
ShippingCarrier *string `json:"shippingCarrier"`
ShippingMethod *string `json:"shippingMethod"`
}
type Module ¶
type Module struct {
// contains filtered or unexported fields
}
Module implements the mdk.Module interface for Cart.
func (*Module) AddItemStep ¶
func (m *Module) AddItemStep(sCtx mdk.StepContext) mdk.StepResult
AddItemStep wraps AddItem to conform to mdk.StepHandler.
func (*Module) AddItemToCart ¶
func (*Module) CheckoutCart ¶
func (*Module) CheckoutStep ¶
func (m *Module) CheckoutStep(sCtx mdk.StepContext) mdk.StepResult
CheckoutStep wraps Checkout to conform to mdk.StepHandler.
func (*Module) CreateCartStep ¶ added in v0.4.0
func (m *Module) CreateCartStep(sCtx mdk.StepContext) mdk.StepResult
func (*Module) FieldResolvers ¶
func (*Module) GetActiveCart ¶
func (*Module) GetCartStep ¶ added in v0.4.0
func (m *Module) GetCartStep(sCtx mdk.StepContext) mdk.StepResult
func (*Module) ListResources ¶ added in v0.4.0
func (*Module) ReadResource ¶ added in v0.4.0
func (*Module) RemoveItem ¶
RemoveItem handles removing an item from a cart.
func (*Module) RemoveItemFromCart ¶
func (*Module) RemoveItemStep ¶
func (m *Module) RemoveItemStep(sCtx mdk.StepContext) mdk.StepResult
RemoveItemStep wraps RemoveItem to conform to mdk.StepHandler.
func (*Module) Repo ¶
func (m *Module) Repo() *Repository
type Repository ¶
type Repository struct {
// contains filtered or unexported fields
}
Repository handles data access for carts.
func NewRepository ¶
func NewRepository(database *gorm.DB) *Repository
NewRepository creates a new Repository.
func (*Repository) ClearItems ¶
func (r *Repository) ClearItems(ctx context.Context, cartID string) error
ClearItems removes all items from a cart.
func (*Repository) DeleteItem ¶
func (r *Repository) DeleteItem(ctx context.Context, cartID, itemID string) error
DeleteItem removes an item from a cart.
func (*Repository) GetActiveByCustomerID ¶
GetActiveByCustomerID retrieves the active cart for a customer.
Click to show internal directories.
Click to hide internal directories.