Compare commits

..

7 Commits

Author SHA1 Message Date
d7bcb71acf Added Quantity field to RemoveFromBasket DTO 2025-11-08 02:20:12 +01:00
6055673a34 Added DTO for RemoveFromBasket action 2025-11-08 02:16:17 +01:00
957e0aa13a Refactored time.Duration to time.Time type 2025-11-08 01:04:05 +01:00
3e340d68d0 Added AddProductToBasket HTTP DTO 2025-11-08 00:42:31 +01:00
f6c6bb07fd go.mod update 2025-11-07 23:20:29 +01:00
606c6ec6f8 Basket update 2025-11-07 16:24:54 +01:00
7d9c66ae26 Update 2025-10-24 13:27:38 +02:00
7 changed files with 43 additions and 38 deletions

View File

@@ -7,23 +7,43 @@ type GetBasketRequestDTO struct {
}
type GetBasketResponseDTO struct {
ID string `json:"id"`
State string `json:"state"`
CreatedAt time.Duration `json:"created_at"`
UpdatedAt time.Duration `json:"updated_at,omitempty"`
ID string `json:"id"`
State string `json:"state"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt *time.Time `json:"updated_at,omitempty"`
}
type GetBasketItemsRequestDTO struct {
}
type GetBasketItemsResponseDTO struct {
ID string `json:"id"`
BasketID string `json:"basket_id"`
ProductID int `json:"product_id"`
Quantity int `json:"quantity"`
Price float64 `json:"price"`
CreatedAt time.Duration `json:"created_at"`
UpdatedAt time.Duration `json:"updated_at,omitempty"`
ID string `json:"id"`
BasketID string `json:"basket_id"`
ProductID string `json:"product_id"`
Quantity int `json:"quantity"`
Price float64 `json:"price"`
CreatedAt time.Time `json:"created_at"`
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 {

View File

@@ -14,7 +14,7 @@ type BasketEntity struct {
type BasketItemEntity struct {
ID string `db:"id" json:"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"`
Price float64 `db:"price" json:"price"`
CreatedAt pgtype.Timestamp `db:"created_at" json:"created_at"`

View File

@@ -12,7 +12,7 @@ type Basket struct {
type BasketItem struct {
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"`
Price float64 `db:"price" json:"price"`
CreatedAt time.Time `db:"created_at" json:"created_at"`

View File

@@ -17,30 +17,15 @@ type GetProductResponseDTO struct {
UpdatedAt *time.Time `json:"updated_at,omitempty"`
}
type GetProductListRequestDTO struct {
CategoryID string `json:"category_id"`
}
type GetProductListResponseDTO struct {
Products []GetProductResponseDTO `json:"products"`
}
type AddProductToBasketRequestDTO struct {
ProductID string `json:"product_id"`
Quantity int `json:"quantity"`
}
type AddProductToBasketResponseDTO struct {
ProductID string `json:"product_id"`
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"`
type GetProductDetailsResponseDTO struct {
ID string `json:"id"`
SLug string `json:"slug"`
Name string `json:"name"`
Price string `json:"price"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt *time.Time `json:"updated_at,omitempty"`
}

View File

@@ -8,5 +8,5 @@ type Product struct {
Name string `json:"name", db:"name"`
Price float64 `json:"price", db:"price"`
CreatedAt time.Time `json:"created_at", db:"created_at"`
UpdatedAt *time.Time `json:"updated_at,omitempty", db:"updated_at, omitempty"`
UpdatedAt *time.Time `json:"updated_at", db:"updated_at, omitempty"`
}

View File

@@ -9,5 +9,5 @@ type Product struct {
Slug string `db:"slug"`
Price float64 `db:"price"`
CreatedAt time.Time `db:"created_at"`
UpdatedAt *time.Time `db:"updated_at,omitempty"`
UpdatedAt *time.Time `db:"updated_at"`
}

2
go.mod
View File

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