[hw-1] implement cart service

This commit is contained in:
Никита Шубин
2025-05-25 15:49:17 +00:00
parent 3d3f10647b
commit 5077f04b0c
28 changed files with 1151 additions and 2 deletions

View File

@@ -0,0 +1,9 @@
package model
import "route256/cart/internal/domain/entity"
type Cart struct {
UserID entity.UID
Items []*Item
TotalPrice uint32
}

View File

@@ -0,0 +1,10 @@
package model
import "errors"
var (
ErrProductNotFound = errors.New("invalid sku")
ErrCartNotFound = errors.New("cart not found")
ErrItemNotFoundInCart = errors.New("item not found in cart")
)

View File

@@ -0,0 +1,16 @@
package model
import "fmt"
type Item struct {
Product *Product
Count uint32 `validate:"gt=0"`
}
func (i *Item) Validate() error {
if err := validate.Struct(i); err != nil {
return fmt.Errorf("invalid requested values: %w", err)
}
return nil
}

View File

@@ -0,0 +1,21 @@
package model
import (
"fmt"
"route256/cart/internal/domain/entity"
)
type Product struct {
Name string
Price int32
Sku entity.Sku `validate:"gt=0"`
}
func (p *Product) Validate() error {
if err := validate.Struct(p); err != nil {
return fmt.Errorf("invalid requested values: %w", err)
}
return nil
}

View File

@@ -0,0 +1,9 @@
package model
import "github.com/go-playground/validator/v10"
var validate *validator.Validate
func init() {
validate = validator.New()
}