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 (*Product) ClearDomainEvents ¶
func (u *Product) ClearDomainEvents()
func (*Product) DecreaseStock ¶
func (*Product) GetDomainEvents ¶
func (u *Product) GetDomainEvents() []ddd.IBaseEvent
func (*Product) IncreaseStock ¶
func (*Product) RaiseEvent ¶
func (u *Product) RaiseEvent(event ddd.IBaseEvent)
Click to show internal directories.
Click to hide internal directories.