Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| eb7d9bee0c |
@@ -9,42 +9,21 @@ 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.Time `json:"created_at"`
|
CreatedAt time.Duration `json:"created_at"`
|
||||||
UpdatedAt *time.Time `json:"updated_at,omitempty"`
|
UpdatedAt time.Duration `json:"updated_at,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type GetBasketItemsRequestDTO struct {
|
type GetBasketItemsRequestDTO struct {
|
||||||
BasketID string `json:"basket_id"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
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 string `json:"product_id"`
|
ProductID int `json:"product_id"`
|
||||||
Quantity int `json:"quantity"`
|
Quantity int `json:"quantity"`
|
||||||
Price float64 `json:"price"`
|
Price float64 `json:"price"`
|
||||||
CreatedAt time.Time `json:"created_at"`
|
CreatedAt time.Duration `json:"created_at"`
|
||||||
UpdatedAt *time.Time `json:"updated_at,omitempty"`
|
UpdatedAt time.Duration `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 {
|
||||||
|
|||||||
@@ -1,20 +1,22 @@
|
|||||||
package basket
|
package basket
|
||||||
|
|
||||||
import "time"
|
import (
|
||||||
|
"github.com/jackc/pgtype"
|
||||||
|
)
|
||||||
|
|
||||||
type Basket struct {
|
type BasketEntity struct {
|
||||||
ID string `db:"id" json:"id"`
|
ID string `db:"id" json:"id"`
|
||||||
State string `db:"state" json:"state"`
|
State string `db:"state" json:"state"`
|
||||||
CreatedAt time.Time `db:"created_at" json:"created_at"`
|
CreatedAt pgtype.Timestamp `db:"created_at" json:"created_at"`
|
||||||
UpdatedAt *time.Time `db:"updated_at" json:"updated_at,omitempty"`
|
UpdatedAt pgtype.Timestamp `db:"updated_at" json:"updated_at,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type BasketItem 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 string `db:"product_id" json:"product_id"`
|
ProductID int `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 pgtype.Timestamp `db:"created_at" json:"created_at"`
|
||||||
UpdatedAt *time.Time `db:"updated_at" json:"updated_at,omitempty"`
|
UpdatedAt pgtype.Timestamp `db:"updated_at" json:"updated_at,omitempty"`
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,17 +4,17 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Basket struct {
|
type BasketModel struct {
|
||||||
State string `db:"state" json:"state"`
|
State string `db:"state" json:"state"`
|
||||||
CreatedAt time.Time `db:"created_at" json:"created_at"`
|
CreatedAt time.Time `db:"created_at" json:"created_at"`
|
||||||
UpdatedAt *time.Time `db:"updated_at" json:"updated_at,omitempty"`
|
UpdatedAt time.Time `db:"updated_at" json:"updated_at,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type BasketItem struct {
|
type BasketItemModel struct {
|
||||||
BasketID string `db:"basket_id" json:"basket_id"`
|
BasketID string `db:"basket_id" json:"basket_id"`
|
||||||
ProductID string `db:"product_id" json:"product_id"`
|
ProductID int `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"`
|
||||||
UpdatedAt *time.Time `db:"updated_at" json:"updated_at,omitempty"`
|
UpdatedAt time.Time `db:"updated_at" json:"updated_at,omitempty"`
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,27 +5,42 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type GetProductRequestDTO struct {
|
type GetProductRequestDTO struct {
|
||||||
ProductID string `json:"product_id"`
|
ProductID int `json:"product_id"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type GetProductResponseDTO struct {
|
type GetProductResponseDTO struct {
|
||||||
ID string `json:"id"`
|
ID int `json:"id"`
|
||||||
|
PID string `json:"pid"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Slug string `json:"slug"`
|
|
||||||
Price float64 `json:"price"`
|
Price float64 `json:"price"`
|
||||||
CreatedAt time.Time `json:"created_at"`
|
CreatedAt time.Duration `json:"created_at"`
|
||||||
UpdatedAt *time.Time `json:"updated_at,omitempty"`
|
UpdatedAt time.Duration `json:"updated_at,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetProductListRequestDTO struct {
|
||||||
|
CategoryID int `json:"category_id"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type GetProductListResponseDTO struct {
|
type GetProductListResponseDTO struct {
|
||||||
Products []GetProductResponseDTO `json:"products"`
|
Products []GetProductResponseDTO `json:"products"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type GetProductDetailsResponseDTO struct {
|
type AddProductToBasketRequestDTO struct {
|
||||||
ID string `json:"id"`
|
ProductID int `json:"product_id"`
|
||||||
SLug string `json:"slug"`
|
Quantity int `json:"quantity"`
|
||||||
Name string `json:"name"`
|
}
|
||||||
Price string `json:"price"`
|
|
||||||
CreatedAt time.Time `json:"created_at"`
|
type AddProductToBasketResponseDTO struct {
|
||||||
UpdatedAt *time.Time `json:"updated_at,omitempty"`
|
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"`
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
package catalog
|
package catalog
|
||||||
|
|
||||||
import "time"
|
import "github.com/jackc/pgtype"
|
||||||
|
|
||||||
type Product struct {
|
type ProductEntity struct {
|
||||||
ID string `json:"id" db:"id"`
|
ID int `db:"id"`
|
||||||
Slug string `json:"slug" db:"slug"`
|
PID string `db:"pid"`
|
||||||
Name string `json:"name" db:"name"`
|
Name string `db:"name"`
|
||||||
Price float64 `json:"price" db:"price"`
|
Price float64 `db:"price"`
|
||||||
CreatedAt time.Time `json:"created_at" db:"created_at"`
|
CreatedAt pgtype.Timestamp `db:"created_at"`
|
||||||
UpdatedAt *time.Time `json:"updated_at" db:"updated_at, omitempty"`
|
UpdatedAt pgtype.Timestamp `db:"updated_at,omitempty"`
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,10 +4,10 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Product struct {
|
type ProductModel struct {
|
||||||
|
PID string `db:"pid"`
|
||||||
Name string `db:"name"`
|
Name string `db:"name"`
|
||||||
Slug string `db:"slug"`
|
|
||||||
Price float64 `db:"price"`
|
Price float64 `db:"price"`
|
||||||
CreatedAt time.Time `db:"created_at"`
|
CreatedAt time.Time `db:"created_at"`
|
||||||
UpdatedAt *time.Time `db:"updated_at"`
|
UpdatedAt time.Time `db:"updated_at,omitempty"`
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
package config
|
|
||||||
|
|
||||||
type Setting struct {
|
|
||||||
ID string `db:"id" json:"id"`
|
|
||||||
Name string `db:"name" json:"name"`
|
|
||||||
Value string `db:"value" json:"value"`
|
|
||||||
}
|
|
||||||
2
go.mod
2
go.mod
@@ -1,6 +1,6 @@
|
|||||||
module git.ego.freeddns.org/egommerce/api-entities
|
module git.ego.freeddns.org/egommerce/api-entities
|
||||||
|
|
||||||
go 1.24
|
go 1.19
|
||||||
|
|
||||||
require github.com/jackc/pgtype v1.14.3
|
require github.com/jackc/pgtype v1.14.3
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
package identity
|
|
||||||
|
|
||||||
type CheckAccessRequestDTO struct {
|
|
||||||
URL string `json:"url"`
|
|
||||||
Service string `josn:"srv"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type CheckAccessResponseDTO struct {
|
|
||||||
}
|
|
||||||
@@ -10,7 +10,7 @@ type AuthLoginResponseDTO struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type AuthRefreshTokenRequestDTO struct {
|
type AuthRefreshTokenRequestDTO struct {
|
||||||
AccessToken string `json:"access_token"`
|
AccessToken string `json:"token"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type AuthRefreshTokenResponseDTO struct {
|
type AuthRefreshTokenResponseDTO struct {
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
package identity
|
|
||||||
|
|
||||||
type AuthorizationHeaderDTO struct {
|
|
||||||
Authorization string `reqHeader:"authorization"`
|
|
||||||
}
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
package identity
|
|
||||||
|
|
||||||
type Role struct {
|
|
||||||
ID string `db:"id" json:"id"`
|
|
||||||
Name string `db:"name" json:"name"`
|
|
||||||
DisplayName string `db:"display_name" json:"display_name"`
|
|
||||||
URL string `db:"url" json:"url"`
|
|
||||||
}
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
package identity
|
|
||||||
|
|
||||||
type URLAccess struct {
|
|
||||||
ID string `db:"id" json:"id"`
|
|
||||||
Roles []string `db:"roles" json:"roles"`
|
|
||||||
URL string `db:"url" json:"url"`
|
|
||||||
Service string `db:"service" json:"service"`
|
|
||||||
}
|
|
||||||
@@ -3,10 +3,17 @@ package identity
|
|||||||
import "time"
|
import "time"
|
||||||
|
|
||||||
type User struct {
|
type User struct {
|
||||||
ID string `db:"id" json:"id"`
|
ID int `json:"id"`
|
||||||
Email string `db:"email" json:"email"`
|
Email string `json:"email"`
|
||||||
Username string `db:"username" json:"username"`
|
Username string `json:"username"`
|
||||||
Password string `db:"password" json:"password"`
|
Password string `json:"password"`
|
||||||
CreatedAt time.Time `db:"created_at" json:"created_at"`
|
CreateDate time.Time `json:"create_date"`
|
||||||
UpdatedAt *time.Time `db:"updated_at,omitempty" json:"updated_at,omitempty"`
|
ModifyDate time.Time `json:"modify_date"` // FIXME: zero-value issue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// var TestUser = &User{
|
||||||
|
// ID: 1,
|
||||||
|
// Username: "test",
|
||||||
|
// Password: "test",
|
||||||
|
// CreateDate: time.Now(),
|
||||||
|
// }
|
||||||
|
|||||||
@@ -1,22 +1,20 @@
|
|||||||
package order
|
package order
|
||||||
|
|
||||||
import (
|
import "github.com/jackc/pgtype"
|
||||||
"time"
|
|
||||||
)
|
|
||||||
|
|
||||||
type Order struct {
|
type OrderEntity struct {
|
||||||
ID string `db:"id" json:"id"`
|
ID string `db:"id" json:"id"`
|
||||||
State string `db:"state" json:"state"`
|
State string `db:"state" json:"state"`
|
||||||
CreatedAt time.Time `db:"created_at" json:"created_at"`
|
CreatedAt pgtype.Timestamp `db:"created_at" json:"created_at"`
|
||||||
UpdatedAt *time.Time `db:"updated_at" json:"updated_at,omitempty"`
|
UpdatedAt pgtype.Timestamp `db:"updated_at" json:"updated_at,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type OrderItem struct {
|
type OrderItemEntity struct {
|
||||||
ID string `db:"id" json:"id"`
|
ID string `db:"id" json:"id"`
|
||||||
OrderID string `db:"order_id" json:"order_id"`
|
OrderID string `db:"order_id" json:"order_id"`
|
||||||
ProductID int `db:"product_id" json:"product_id"`
|
ProductID int `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 pgtype.Timestamp `db:"created_at" json:"created_at"`
|
||||||
UpdatedAt *time.Time `db:"updated_at" json:"updated_at,omitempty"`
|
UpdatedAt pgtype.Timestamp `db:"updated_at" json:"updated_at,omitempty"`
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,17 +2,17 @@ package order
|
|||||||
|
|
||||||
import "time"
|
import "time"
|
||||||
|
|
||||||
type Order struct {
|
type OrderModel struct {
|
||||||
State string `db:"state" json:"state"`
|
State string `db:"state" json:"state"`
|
||||||
CreatedAt time.Time `db:"created_at" json:"created_at"`
|
CreatedAt time.Time `db:"created_at" json:"created_at"`
|
||||||
UpdatedAt *time.Time `db:"updated_at" json:"updated_at,omitempty"`
|
UpdatedAt time.Time `db:"updated_at" json:"updated_at,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type OrderItem struct {
|
type OrderItemModel struct {
|
||||||
OrderID string `db:"order_id" json:"order_id"`
|
OrderID string `db:"order_id" json:"order_id"`
|
||||||
ProductID int `db:"product_id" json:"product_id"`
|
ProductID int `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"`
|
||||||
UpdatedAt *time.Time `db:"updated_at" json:"updated_at,omitempty"`
|
UpdatedAt time.Time `db:"updated_at" json:"updated_at,omitempty"`
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package pricing
|
package pricing
|
||||||
|
|
||||||
type ProductPrice struct {
|
type ProductPriceEntity struct {
|
||||||
ID int `db:"id"`
|
ID int `db:"id"`
|
||||||
PID string `db:"pid"`
|
PID string `db:"pid"`
|
||||||
Price int `db:"price"`
|
Price int `db:"price"`
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package pricing
|
package pricing
|
||||||
|
|
||||||
type ProductPrice struct {
|
type ProductPriceModel struct {
|
||||||
PID string `db:"pid"`
|
PID string `db:"pid"`
|
||||||
Price int `db:"price"`
|
Price int `db:"price"`
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user