Documentation
¶
Index ¶
- type AddItemInput
- type Cart
- type CartItem
- type CartStatus
- 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) (bool, error)
- func (m *Module) CheckoutStep(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) ID() string
- func (m *Module) Init(ctx context.Context, rt mdk.Runtime) error
- func (m *Module) Models() []any
- func (m *Module) Mutations() map[string]any
- func (m *Module) Queries() map[string]any
- 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"`
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 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) FieldResolvers ¶
func (*Module) GetActiveCart ¶
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.