// Code generated by sqlc. DO NOT EDIT.
// versions:
//   sqlc v1.26.0

package cart

import (
	"context"

	"github.com/jackc/pgx/v5/pgtype"
	"github.com/shopspring/decimal"
)

type Querier interface {
	AddCartItem(ctx context.Context, cartID int64, variantID int64, qty int32, price decimal.Decimal, currency string, thumbnail string, productName string, productPath string, variantAttributes []byte) (*CartItem, error)
	CartItemExistsByCartID(ctx context.Context, iD int64, cartID int64) (bool, error)
	CountCartItemsByCartID(ctx context.Context, cartID int64) (int64, error)
	CountCartItemsByUserIdAndCartStatus(ctx context.Context, userID *int64, status CartStatus) (int64, error)
	CreateCart(ctx context.Context, userID *int64) (*Cart, error)
	CreateGuestCart(ctx context.Context, expiresAt pgtype.Timestamptz) (*Cart, error)
	DeleteCartItem(ctx context.Context, id int64) (int64, error)
	GetCartByID(ctx context.Context, id int64) (*Cart, error)
	GetCartByUserID(ctx context.Context, userID *int64) (*Cart, error)
	GetCartItemsByCartID(ctx context.Context, cartID int64) ([]*CartItem, error)
	GetCartItemsByUserID(ctx context.Context, userID *int64) ([]*CartItem, error)
	IncrementCartItemQty(ctx context.Context, cartID int64, variantID int64, qty int32) (*CartItem, error)
	IsCartItemExistsByCartUserID(ctx context.Context, iD int64, userID *int64) (bool, error)
	MergeGuestCartWithUserCart(ctx context.Context, guestCartID int64, userCartID int64) error
	UpdateCartItemQty(ctx context.Context, iD int64, qty int32) (int64, error)
	UpdateCartStatus(ctx context.Context, iD int64, status CartStatus) (int64, error)
}

var _ Querier = (*Queries)(nil)
