Compare commits

..

6 Commits

5 changed files with 42 additions and 37 deletions

View File

@@ -9,8 +9,8 @@ type GetBasketRequestDTO struct {
type GetBasketResponseDTO struct { type GetBasketResponseDTO struct {
ID string `json:"id"` ID string `json:"id"`
State string `json:"state"` State string `json:"state"`
CreatedAt time.Duration `json:"created_at"` CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Duration `json:"updated_at,omitempty"` UpdatedAt *time.Time `json:"updated_at,omitempty"`
} }
type GetBasketItemsRequestDTO struct { type GetBasketItemsRequestDTO struct {
@@ -19,11 +19,31 @@ type GetBasketItemsRequestDTO struct {
type GetBasketItemsResponseDTO struct { type GetBasketItemsResponseDTO struct {
ID string `json:"id"` ID string `json:"id"`
BasketID string `json:"basket_id"` BasketID string `json:"basket_id"`
ProductID int `json:"product_id"` ProductID string `json:"product_id"`
Quantity int `json:"quantity"` Quantity int `json:"quantity"`
Price float64 `json:"price"` Price float64 `json:"price"`
CreatedAt time.Duration `json:"created_at"` CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Duration `json:"updated_at,omitempty"` UpdatedAt *time.Time `json:"updated_at,omitempty"`
}
type AddProductToBasketRequestDTO struct {
BasketID string `json:"basket_id"`
ProductID string `json:"product_id"`
Quantity int `json:"quantity"`
}
type AddProductToBasketResponseDTO struct {
BasketID string `json:"basket_id"`
}
type RemoveFromBasketRequestDTO struct {
BasketID string `json:"basket_id"`
ProductID string `json:"product_id"`
Quantity int `json:"quantity"`
}
type RemoveFromBasketResponseDTO struct {
BasketID string `json:"basket_id"`
} }
type BasketCheckoutRequestDTO struct { type BasketCheckoutRequestDTO struct {

View File

@@ -14,7 +14,7 @@ type BasketEntity struct {
type BasketItemEntity struct { type BasketItemEntity struct {
ID string `db:"id" json:"id"` ID string `db:"id" json:"id"`
BasketID string `db:"basket_id" json:"basket_id"` BasketID string `db:"basket_id" json:"basket_id"`
ProductID int `db:"product_id" json:"product_id"` ProductID string `db:"product_id" json:"product_id"`
Quantity int `db:"quantity" json:"quantity"` Quantity int `db:"quantity" json:"quantity"`
Price float64 `db:"price" json:"price"` Price float64 `db:"price" json:"price"`
CreatedAt pgtype.Timestamp `db:"created_at" json:"created_at"` CreatedAt pgtype.Timestamp `db:"created_at" json:"created_at"`

View File

@@ -12,7 +12,7 @@ type Basket struct {
type BasketItem struct { type BasketItem struct {
BasketID string `db:"basket_id" json:"basket_id"` BasketID string `db:"basket_id" json:"basket_id"`
ProductID int `db:"product_id" json:"product_id"` ProductID string `db:"product_id" json:"product_id"`
Quantity int `db:"quantity" json:"quantity"` Quantity int `db:"quantity" json:"quantity"`
Price float64 `db:"price" json:"price"` Price float64 `db:"price" json:"price"`
CreatedAt time.Time `db:"created_at" json:"created_at"` CreatedAt time.Time `db:"created_at" json:"created_at"`

View File

@@ -14,33 +14,18 @@ type GetProductResponseDTO struct {
Slug string `json:"slug"` Slug string `json:"slug"`
Price float64 `json:"price"` Price float64 `json:"price"`
CreatedAt time.Time `json:"created_at"` CreatedAt time.Time `json:"created_at"`
UpdatedAt *time.Time `json:"updated_at"` UpdatedAt *time.Time `json:"updated_at,omitempty"`
}
type GetProductListRequestDTO struct {
CategoryID string `json:"category_id"`
} }
type GetProductListResponseDTO struct { type GetProductListResponseDTO struct {
Products []GetProductResponseDTO `json:"products"` Products []GetProductResponseDTO `json:"products"`
} }
type AddProductToBasketRequestDTO struct { type GetProductDetailsResponseDTO struct {
ProductID string `json:"product_id"` ID string `json:"id"`
Quantity int `json:"quantity"` SLug string `json:"slug"`
} Name string `json:"name"`
Price string `json:"price"`
type AddProductToBasketResponseDTO struct { CreatedAt time.Time `json:"created_at"`
ProductID string `json:"product_id"` UpdatedAt *time.Time `json:"updated_at,omitempty"`
BasketID string `json:"basket_id"`
}
type RemoveProductFromBasketRequestDTO struct {
ProductID string `json:"product_id"`
Quantity int `json:"quantity"`
}
type RemoveProductFromBasketResponseDTO struct {
ProductID string `json:"product_id"`
BasketID string `json:"basket_id"`
} }

2
go.mod
View File

@@ -1,6 +1,6 @@
module git.ego.freeddns.org/egommerce/api-entities module git.ego.freeddns.org/egommerce/api-entities
go 1.19 go 1.24
require github.com/jackc/pgtype v1.14.3 require github.com/jackc/pgtype v1.14.3