Compare commits

..

17 Commits

Author SHA1 Message Date
bcc8de99db Added config entity 2025-11-14 20:35:59 +01:00
4b5d681efe Update 2025-11-08 14:54:22 +01:00
c502499aa4 Update 2025-11-08 14:37:46 +01:00
82653025be Fixes 2025-11-08 13:55:34 +01:00
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
3b1ff1b649 Update 2025-10-23 19:16:25 +02:00
01963ddd35 Updated Product Entity 2025-10-23 18:53:13 +02:00
e4042cd76d Updated Product Entity 2025-10-23 18:51:16 +02:00
7a20709424 Updated Product Entity 2025-10-23 18:48:29 +02:00
dd3ed73013 Updated catalog DTOs 2025-10-23 18:47:01 +02:00
7f6b9c3be9 Catalog Entity, Model and DTO fields updated 2025-10-23 11:25:49 +02:00
13 changed files with 121 additions and 115 deletions

View File

@@ -7,23 +7,44 @@ 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 {
BasketID string `json:"basket_id"`
}
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

@@ -1,22 +1,20 @@
package basket
import (
"github.com/jackc/pgtype"
)
import "time"
type BasketEntity struct {
ID string `db:"id" json:"id"`
State string `db:"state" json:"state"`
CreatedAt pgtype.Timestamp `db:"created_at" json:"created_at"`
UpdatedAt pgtype.Timestamp `db:"updated_at" json:"updated_at,omitempty"`
type Basket struct {
ID string `db:"id" json:"id"`
State string `db:"state" json:"state"`
CreatedAt time.Time `db:"created_at" json:"created_at"`
UpdatedAt *time.Time `db:"updated_at" json:"updated_at,omitempty"`
}
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"`
Quantity int `db:"quantity" json:"quantity"`
Price float64 `db:"price" json:"price"`
CreatedAt pgtype.Timestamp `db:"created_at" json:"created_at"`
UpdatedAt pgtype.Timestamp `db:"updated_at" json:"updated_at,omitempty"`
type BasketItem struct {
ID string `db:"id" json:"id"`
BasketID string `db:"basket_id" json:"basket_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"`
UpdatedAt *time.Time `db:"updated_at" json:"updated_at,omitempty"`
}

View File

@@ -5,16 +5,16 @@ import (
)
type Basket struct {
State string `db:"state" json:"state"`
CreatedAt time.Time `db:"created_at" json:"created_at"`
UpdatedAt time.Time `db:"updated_at" json:"updated_at,omitempty"`
State string `db:"state" json:"state"`
CreatedAt time.Time `db:"created_at" json:"created_at"`
UpdatedAt *time.Time `db:"updated_at" json:"updated_at,omitempty"`
}
type BasketItem struct {
BasketID string `db:"basket_id" json:"basket_id"`
ProductID int `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"`
UpdatedAt time.Time `db:"updated_at" json:"updated_at,omitempty"`
BasketID string `db:"basket_id" json:"basket_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"`
UpdatedAt *time.Time `db:"updated_at" json:"updated_at,omitempty"`
}

View File

@@ -5,42 +5,27 @@ import (
)
type GetProductRequestDTO struct {
ProductID int `json:"product_id"`
ProductID string `json:"product_id"`
}
type GetProductResponseDTO struct {
ID int `json:"id"`
PID string `json:"pid"`
Name string `json:"name"`
Price float64 `json:"price"`
CreatedAt time.Duration `json:"created_at"`
UpdatedAt time.Duration `json:"updated_at,omitempty"`
}
type GetProductListRequestDTO struct {
CategoryID int `json:"category_id"`
ID string `json:"id"`
Name string `json:"name"`
Slug string `json:"slug"`
Price float64 `json:"price"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt *time.Time `json:"updated_at,omitempty"`
}
type GetProductListResponseDTO struct {
Products []GetProductResponseDTO `json:"products"`
}
type AddProductToBasketRequestDTO struct {
ProductID int `json:"product_id"`
Quantity int `json:"quantity"`
}
type AddProductToBasketResponseDTO struct {
ProductID int `json:"product_id"`
BasketID string `json:"basket_id"`
}
type RemoveProductFromBasketRequestDTO struct {
ProductID int `json:"product_id"`
Quantity int `json:"quantity"`
}
type RemoveProductFromBasketResponseDTO struct {
ProductID int `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

@@ -1,12 +1,12 @@
package catalog
import "github.com/jackc/pgtype"
import "time"
type Product struct {
ID int `db:"id"`
PID string `db:"pid"`
Name string `db:"name"`
Price float64 `db:"price"`
CreatedAt pgtype.Timestamp `db:"created_at"`
UpdatedAt pgtype.Timestamp `db:"updated_at,omitempty"`
ID string `json:"id" db:"id"`
Slug string `json:"slug" db:"slug"`
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" db:"updated_at, omitempty"`
}

View File

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

7
config/entity/setting.go Normal file
View File

@@ -0,0 +1,7 @@
package config
type Config struct {
ID string `db:"id" json:"id"`
Name string `db:"name" json:"name"`
Value string `db:"value" json:"value"`
}

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

View File

@@ -3,17 +3,10 @@ package identity
import "time"
type User struct {
ID string `db:"id" json:"id"`
Email string `db:"email" json:"email"`
Username string `db:"username" json:"username"`
Password string `db:"password" json:"password"`
CreatedAt time.Time `db:"created_at" json:"created_at"`
ModifiedAt time.Time `db:"modified_at" json:"modified_at"` // FIXME: zero-value issue
ID string `db:"id" json:"id"`
Email string `db:"email" json:"email"`
Username string `db:"username" json:"username"`
Password string `db:"password" json:"password"`
CreatedAt time.Time `db:"created_at" json:"created_at"`
UpdatedAt *time.Time `db:"updated_at,omitempty" json:"updated_at,omitempty"`
}
// var TestUser = &User{
// ID: 1,
// Username: "test",
// Password: "test",
// CreateDate: time.Now(),
// }

View File

@@ -1,20 +1,22 @@
package order
import "github.com/jackc/pgtype"
import (
"time"
)
type OrderEntity struct {
ID string `db:"id" json:"id"`
State string `db:"state" json:"state"`
CreatedAt pgtype.Timestamp `db:"created_at" json:"created_at"`
UpdatedAt pgtype.Timestamp `db:"updated_at" json:"updated_at,omitempty"`
type Order struct {
ID string `db:"id" json:"id"`
State string `db:"state" json:"state"`
CreatedAt time.Time `db:"created_at" json:"created_at"`
UpdatedAt *time.Time `db:"updated_at" json:"updated_at,omitempty"`
}
type OrderItemEntity struct {
ID string `db:"id" json:"id"`
OrderID string `db:"order_id" json:"order_id"`
ProductID int `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"`
UpdatedAt pgtype.Timestamp `db:"updated_at" json:"updated_at,omitempty"`
type OrderItem struct {
ID string `db:"id" json:"id"`
OrderID string `db:"order_id" json:"order_id"`
ProductID int `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"`
UpdatedAt *time.Time `db:"updated_at" json:"updated_at,omitempty"`
}

View File

@@ -3,16 +3,16 @@ package order
import "time"
type Order struct {
State string `db:"state" json:"state"`
CreatedAt time.Time `db:"created_at" json:"created_at"`
UpdatedAt time.Time `db:"updated_at" json:"updated_at,omitempty"`
State string `db:"state" json:"state"`
CreatedAt time.Time `db:"created_at" json:"created_at"`
UpdatedAt *time.Time `db:"updated_at" json:"updated_at,omitempty"`
}
type OrderItem struct {
OrderID string `db:"order_id" json:"order_id"`
ProductID int `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"`
UpdatedAt time.Time `db:"updated_at" json:"updated_at,omitempty"`
OrderID string `db:"order_id" json:"order_id"`
ProductID int `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"`
UpdatedAt *time.Time `db:"updated_at" json:"updated_at,omitempty"`
}

View File

@@ -1,6 +1,6 @@
package pricing
type ProductPriceEntity struct {
type ProductPrice struct {
ID int `db:"id"`
PID string `db:"pid"`
Price int `db:"price"`