products

package
v0.0.0-...-2c15619 Latest Latest
Warning

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

Go to latest
Published: Aug 14, 2023 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type IProductRepository

type IProductRepository interface {
	FindOneById(ctx context.Context, id primitive.ObjectID) (*Product, error)
	FindOneBySku(ctx context.Context, sku string) (*Product, error)
	Add(ctx context.Context, product *Product) error
	Update(ctx context.Context, product *Product) error
}

func NewProductRepositoryResolve

func NewProductRepositoryResolve(rabbitMQConfig rabbitmqv2.Config, mongoConfig mongo.Config) IProductRepository

type IProductService

type IProductService interface {
	AddNew(ctx context.Context, sku string, name string, initialStock int, price shared.Money, categoryID int) (*Product, error)
	IncreaseStock(ctx context.Context, sku string, amount int) error
	DecreaseStock(ctx context.Context, sku string, amount int) error
	GetBySku(ctx context.Context, sku string) (*Product, error)
}

func NewProductService

func NewProductService(repository IProductRepository) IProductService

func NewProductServiceResolve

func NewProductServiceResolve(rabbitMQConfig rabbitmqv2.Config, mongoConfig mongo.Config) IProductService

type Product

type Product struct {
	Id         primitive.ObjectID `json:"id" bson:"_id"`
	Sku        string             `json:"sku" bson:"Sku"`
	Name       string             `json:"name" bson:"Name"`
	Stock      int                `json:"stock" bson:"Stock"`
	Price      shared.Money       `json:"price" bson:"Price"`
	FinalPrice shared.Money       `json:"finalPrice" bson:"FinalPrice"`
	Vat        float64            `json:"vat" bson:"vat"`
	CategoryId int                `json:"categoryId" bson:"CategoryId"`
	// contains filtered or unexported fields
}

func NewProduct

func NewProduct(sku, name string, stock int, price shared.Money, categoryId int) *Product

func (*Product) ClearDomainEvents

func (u *Product) ClearDomainEvents()

func (*Product) DecreaseStock

func (u *Product) DecreaseStock(amount int)

func (*Product) GetDomainEvents

func (u *Product) GetDomainEvents() []ddd.IBaseEvent

func (*Product) IncreaseStock

func (u *Product) IncreaseStock(amount int)

func (*Product) RaiseEvent

func (u *Product) RaiseEvent(event ddd.IBaseEvent)

Jump to

Keyboard shortcuts

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