product

package
v0.0.0-...-3bb7120 Latest Latest
Warning

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

Go to latest
Published: Aug 21, 2024 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CollectCartDataRow

type CollectCartDataRow struct {
	ProductID         int64
	ProductName       string
	ProductHandle     string
	ProductImageUrls  ImageUrls
	Sku               string
	Qty               int32
	IsCustomPriced    bool
	ImageIdentifiers  []int16
	VariantAttributes []byte
}

type DBTX

type DBTX interface {
	Exec(context.Context, string, ...interface{}) (pgconn.CommandTag, error)
	Query(context.Context, string, ...interface{}) (pgx.Rows, error)
	QueryRow(context.Context, string, ...interface{}) pgx.Row
}

type GetMinMaxPricesByCategoryIDRow

type GetMinMaxPricesByCategoryIDRow struct {
	MinPrice decimal.Decimal
	MaxPrice decimal.Decimal
}

type GetMinMaxPricesByCategoryIDsRow

type GetMinMaxPricesByCategoryIDsRow struct {
	MinPrice decimal.Decimal
	MaxPrice decimal.Decimal
}

type GetProductAttributesByCategoryIDRow

type GetProductAttributesByCategoryIDRow struct {
	Attribute string
	Values    []string
}

type GetProductAttributesByCategoryIDsRow

type GetProductAttributesByCategoryIDsRow struct {
	Attribute string
	Values    []string
}

type GetProductAttributesByProductIDRow

type GetProductAttributesByProductIDRow struct {
	AttributeName   string
	AttributeValues []string
}

type GetProductVariantQtyInBulkRow

type GetProductVariantQtyInBulkRow struct {
	ID  int64
	Qty int32
}

type GetProductVariantsByProductIDRow

type GetProductVariantsByProductIDRow struct {
	VariantID        int64
	ProductID        int64
	Sku              string
	Qty              int32
	IsCustomPriced   bool
	ImageIdentifiers []int16
	CreatedAt        pgtype.Timestamptz
	UpdatedAt        pgtype.Timestamptz
	Attributes       []byte
}

type GetProductWithStoreAndPricingByIDRow

type GetProductWithStoreAndPricingByIDRow struct {
	Product        Product
	Store          Store
	ProductPricing ProductPricing
}

type ImageUrls

type ImageUrls map[int]string

func (*ImageUrls) Scan

func (i *ImageUrls) Scan(src any) error

func (ImageUrls) Value

func (i ImageUrls) Value() (driver.Value, error)

type ListPopularProductsRow

type ListPopularProductsRow struct {
	Product        Product
	ProductPricing ProductPricing
}

type NullProductStatus

type NullProductStatus struct {
	ProductStatus ProductStatus
	Valid         bool // Valid is true if ProductStatus is not NULL
}

func (*NullProductStatus) Scan

func (ns *NullProductStatus) Scan(value interface{}) error

Scan implements the Scanner interface.

func (NullProductStatus) Value

func (ns NullProductStatus) Value() (driver.Value, error)

Value implements the driver Valuer interface.

type Product

type Product struct {
	ID               int64
	StoreID          int32
	CategoryID       int32
	Name             string
	Brand            *string
	Handle           string
	ImageUrls        ImageUrls
	ShortInformation []string
	Specifications   Specifications
	Status           ProductStatus
	CreatedAt        pgtype.Timestamptz
	UpdatedAt        pgtype.Timestamptz
}

type ProductAttribute

type ProductAttribute struct {
	ID        int64
	ProductID int64
	Attribute string
}

type ProductPricing

type ProductPricing struct {
	ProductID       int64
	BasePrice       decimal.Decimal
	CurrencyCode    string
	Discount        decimal.Decimal
	DiscountedPrice decimal.Decimal
	IsOnSale        bool
}

type ProductStatus

type ProductStatus string
const (
	ProductStatusDraft           ProductStatus = "Draft"
	ProductStatusPendingApproval ProductStatus = "PendingApproval"
	ProductStatusPublished       ProductStatus = "Published"
)

func (*ProductStatus) Scan

func (e *ProductStatus) Scan(src interface{}) error

type ProductVariant

type ProductVariant struct {
	ID               int64
	ProductID        int64
	Sku              string
	Qty              int32
	IsCustomPriced   bool
	ImageIdentifiers []int16
	CreatedAt        pgtype.Timestamptz
	UpdatedAt        pgtype.Timestamptz
}

type ProductVariantPricing

type ProductVariantPricing struct {
	VariantID       int64
	BasePrice       decimal.Decimal
	CurrencyCode    string
	Discount        decimal.Decimal
	DiscountedPrice decimal.Decimal
	IsOnSale        bool
}

type ProductsByCategoryRow

type ProductsByCategoryRow struct {
	ID              int64
	Name            string
	Handle          string
	ImageUrls       ImageUrls
	BasePrice       decimal.Decimal
	Discount        decimal.Decimal
	DiscountedPrice decimal.Decimal
	CurrencyCode    string
	Count           int64
}

type Querier

type Querier interface {
	CollectCartData(ctx context.Context, id int64) (*CollectCartDataRow, error)
	CreateProduct(ctx context.Context, storeID int32, categoryID int32, name string, brand *string, handle string, shortInformation []string, imageUrls ImageUrls, specifications Specifications, status ProductStatus) (*Product, error)
	CreateProductAttribute(ctx context.Context, productID int64, attribute string) (*ProductAttribute, error)
	CreateProductPricing(ctx context.Context, productID int64, basePrice decimal.Decimal, currencyCode string, discount decimal.Decimal, discountedPrice decimal.Decimal, isOnSale bool) error
	CreateProductVariant(ctx context.Context, productID int64, sku string, qty int32, isCustomPriced bool, imageIdentifiers []int16) (int64, error)
	CreateProductVariantAttributeValues(ctx context.Context, variantID int64, productAttributeID int64, attributeValue string) error
	CreateProductVariantPricing(ctx context.Context, variantID int64, basePrice decimal.Decimal, currencyCode string, discount decimal.Decimal, discountedPrice decimal.Decimal, isOnSale bool) (int64, error)
	GetMinMaxPricesByCategoryID(ctx context.Context, categoryID int32) (*GetMinMaxPricesByCategoryIDRow, error)
	GetMinMaxPricesByCategoryIDs(ctx context.Context, leafcategoryids []int32) (*GetMinMaxPricesByCategoryIDsRow, error)
	GetProductAttributesByCategoryID(ctx context.Context, categoryID int32) ([]*GetProductAttributesByCategoryIDRow, error)
	GetProductAttributesByCategoryIDs(ctx context.Context, leafcategoryids []int32) ([]*GetProductAttributesByCategoryIDsRow, error)
	GetProductAttributesByProductID(ctx context.Context, productID int64) ([]*GetProductAttributesByProductIDRow, error)
	GetProductBrandsByCategoryID(ctx context.Context, categoryID int32) ([][]string, error)
	GetProductBrandsByCategoryIDs(ctx context.Context, leafcategoryids []int32) ([][]string, error)
	GetProductByID(ctx context.Context, id int64) (*Product, error)
	GetProductImageURLsByID(ctx context.Context, id int64) (ImageUrls, error)
	GetProductPricingByProductID(ctx context.Context, productID int64) (*ProductPricing, error)
	GetProductVariantByID(ctx context.Context, id int64) (*ProductVariant, error)
	GetProductVariantPricingByVariantID(ctx context.Context, variantID int64) (*ProductVariantPricing, error)
	GetProductVariantQtyInBulk(ctx context.Context, variantids []int64) ([]*GetProductVariantQtyInBulkRow, error)
	GetProductVariantsByProductID(ctx context.Context, productID int64) ([]*GetProductVariantsByProductIDRow, error)
	GetProductWithStoreAndPricingByID(ctx context.Context, id int64) (*GetProductWithStoreAndPricingByIDRow, error)
	ListPopularProducts(ctx context.Context, limit int32, offset int32, productIDs []int64) ([]*ListPopularProductsRow, error)
}

type Queries

type Queries struct {
	// contains filtered or unexported fields
}

func New

func New(db DBTX) *Queries

func (*Queries) CollectCartData

func (q *Queries) CollectCartData(ctx context.Context, id int64) (*CollectCartDataRow, error)

func (*Queries) CreateProduct

func (q *Queries) CreateProduct(ctx context.Context, storeID int32, categoryID int32, name string, brand *string, handle string, shortInformation []string, imageUrls ImageUrls, specifications Specifications, status ProductStatus) (*Product, error)

func (*Queries) CreateProductAttribute

func (q *Queries) CreateProductAttribute(ctx context.Context, productID int64, attribute string) (*ProductAttribute, error)

func (*Queries) CreateProductPricing

func (q *Queries) CreateProductPricing(ctx context.Context, productID int64, basePrice decimal.Decimal, currencyCode string, discount decimal.Decimal, discountedPrice decimal.Decimal, isOnSale bool) error

func (*Queries) CreateProductVariant

func (q *Queries) CreateProductVariant(ctx context.Context, productID int64, sku string, qty int32, isCustomPriced bool, imageIdentifiers []int16) (int64, error)

func (*Queries) CreateProductVariantAttributeValues

func (q *Queries) CreateProductVariantAttributeValues(ctx context.Context, variantID int64, productAttributeID int64, attributeValue string) error

func (*Queries) CreateProductVariantPricing

func (q *Queries) CreateProductVariantPricing(ctx context.Context, variantID int64, basePrice decimal.Decimal, currencyCode string, discount decimal.Decimal, discountedPrice decimal.Decimal, isOnSale bool) (int64, error)

func (*Queries) GetMinMaxPricesByCategoryID

func (q *Queries) GetMinMaxPricesByCategoryID(ctx context.Context, categoryID int32) (*GetMinMaxPricesByCategoryIDRow, error)

func (*Queries) GetMinMaxPricesByCategoryIDs

func (q *Queries) GetMinMaxPricesByCategoryIDs(ctx context.Context, leafcategoryids []int32) (*GetMinMaxPricesByCategoryIDsRow, error)

func (*Queries) GetProductAttributesByCategoryID

func (q *Queries) GetProductAttributesByCategoryID(ctx context.Context, categoryID int32) ([]*GetProductAttributesByCategoryIDRow, error)

func (*Queries) GetProductAttributesByCategoryIDs

func (q *Queries) GetProductAttributesByCategoryIDs(ctx context.Context, leafcategoryids []int32) ([]*GetProductAttributesByCategoryIDsRow, error)

func (*Queries) GetProductAttributesByProductID

func (q *Queries) GetProductAttributesByProductID(ctx context.Context, productID int64) ([]*GetProductAttributesByProductIDRow, error)

func (*Queries) GetProductBrandsByCategoryID

func (q *Queries) GetProductBrandsByCategoryID(ctx context.Context, categoryID int32) ([][]string, error)

func (*Queries) GetProductBrandsByCategoryIDs

func (q *Queries) GetProductBrandsByCategoryIDs(ctx context.Context, leafcategoryids []int32) ([][]string, error)

func (*Queries) GetProductByID

func (q *Queries) GetProductByID(ctx context.Context, id int64) (*Product, error)

func (*Queries) GetProductImageURLsByID

func (q *Queries) GetProductImageURLsByID(ctx context.Context, id int64) (ImageUrls, error)

func (*Queries) GetProductPricingByProductID

func (q *Queries) GetProductPricingByProductID(ctx context.Context, productID int64) (*ProductPricing, error)

func (*Queries) GetProductVariantByID

func (q *Queries) GetProductVariantByID(ctx context.Context, id int64) (*ProductVariant, error)

func (*Queries) GetProductVariantPricingByVariantID

func (q *Queries) GetProductVariantPricingByVariantID(ctx context.Context, variantID int64) (*ProductVariantPricing, error)

func (*Queries) GetProductVariantQtyInBulk

func (q *Queries) GetProductVariantQtyInBulk(ctx context.Context, variantids []int64) ([]*GetProductVariantQtyInBulkRow, error)

func (*Queries) GetProductVariantsByProductID

func (q *Queries) GetProductVariantsByProductID(ctx context.Context, productID int64) ([]*GetProductVariantsByProductIDRow, error)

func (*Queries) GetProductWithStoreAndPricingByID

func (q *Queries) GetProductWithStoreAndPricingByID(ctx context.Context, id int64) (*GetProductWithStoreAndPricingByIDRow, error)

func (*Queries) ListPopularProducts

func (q *Queries) ListPopularProducts(ctx context.Context, limit int32, offset int32, productIDs []int64) ([]*ListPopularProductsRow, error)

func (*Queries) WithTx

func (q *Queries) WithTx(tx pgx.Tx) *Queries

type Repository

type Repository interface {
	Querier
	GetProductsByLeafCategoryID(ctx context.Context, categoryID int32, p anor.ListByCategoryParams) ([]ProductsByCategoryRow, error)
	GetProductsByLeafCategoryIDs(ctx context.Context, categoryID []int32, p anor.ListByCategoryParams) ([]ProductsByCategoryRow, error)
	WithTx(ctx context.Context, fn func(tx pgx.Tx) error) error
}

func NewRepository

func NewRepository(pool *pgxpool.Pool) Repository

type Specifications

type Specifications map[string]string

func (*Specifications) Scan

func (i *Specifications) Scan(src any) error

func (Specifications) Value

func (i Specifications) Value() (driver.Value, error)

type Store

type Store struct {
	ID          int32
	Handle      string
	UserID      int64
	Name        string
	Description string
	CreatedAt   pgtype.Timestamptz
	UpdatedAt   pgtype.Timestamptz
}

Jump to

Keyboard shortcuts

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