Compare commits
22 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 75bca2abf4 | |||
| 3b1ff1b649 | |||
| 01963ddd35 | |||
| e4042cd76d | |||
| 7a20709424 | |||
| dd3ed73013 | |||
| 7f6b9c3be9 | |||
| cced9311c5 | |||
| 1f6f990185 | |||
| 95217521f1 | |||
| acd224124e | |||
| 0da1747d35 | |||
| 4972989610 | |||
| 0ae9fd4c99 | |||
| 44ac85bed7 | |||
| 1b91bb7e4d | |||
| fc0130e573 | |||
| f675a12790 | |||
| 990cc6f9af | |||
| 72d5f93a30 | |||
| 54ff2581ed | |||
|
|
5a5f643be8 |
20
basket/model/basket.go
Normal file
20
basket/model/basket.go
Normal file
@@ -0,0 +1,20 @@
|
||||
package basket
|
||||
|
||||
import (
|
||||
"time"
|
||||
)
|
||||
|
||||
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"`
|
||||
}
|
||||
|
||||
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"`
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
package basket
|
||||
|
||||
import (
|
||||
"github.com/jackc/pgtype"
|
||||
)
|
||||
|
||||
type BasketModel 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 BasketItemModel 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"`
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
package dto
|
||||
|
||||
import (
|
||||
"time"
|
||||
)
|
||||
|
||||
type GetProductRequest struct {
|
||||
ProductID int `json:"product_id"`
|
||||
}
|
||||
|
||||
type GetProductResponse 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 GetProductListRequest struct {
|
||||
CategoryID int `json:"category_id"`
|
||||
}
|
||||
|
||||
type GetProductListResponse struct {
|
||||
Products []GetProductResponse `json:"products"`
|
||||
}
|
||||
|
||||
type AddProductToBasketRequest struct {
|
||||
ProductID int `json:"product_id"`
|
||||
Quantity int `json:"quantity"`
|
||||
}
|
||||
|
||||
type AddProductToBasketResponse struct {
|
||||
ProductID int `json:"product_id"`
|
||||
BasketID string `json:"basket_id"`
|
||||
}
|
||||
|
||||
type RemoveProductFromBasketRequest struct {
|
||||
ProductID int `json:"product_id"`
|
||||
Quantity int `json:"quantity"`
|
||||
}
|
||||
|
||||
type RemoveProductFromBasketResponse struct {
|
||||
ProductID int `json:"product_id"`
|
||||
BasketID string `json:"basket_id"`
|
||||
}
|
||||
46
catalog/dto/product.go
Normal file
46
catalog/dto/product.go
Normal file
@@ -0,0 +1,46 @@
|
||||
package catalog
|
||||
|
||||
import (
|
||||
"time"
|
||||
)
|
||||
|
||||
type GetProductRequestDTO struct {
|
||||
ProductID string `json:"product_id"`
|
||||
}
|
||||
|
||||
type GetProductResponseDTO struct {
|
||||
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 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"`
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
package entity
|
||||
|
||||
import "github.com/jackc/pgtype"
|
||||
|
||||
type ProductEntity 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"`
|
||||
}
|
||||
12
catalog/entity/product.go
Normal file
12
catalog/entity/product.go
Normal file
@@ -0,0 +1,12 @@
|
||||
package catalog
|
||||
|
||||
import "time"
|
||||
|
||||
type Product struct {
|
||||
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,omitempty", db:"updated_at, omitempty"`
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
package model
|
||||
|
||||
import "github.com/jackc/pgtype"
|
||||
|
||||
type ProductModel 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"`
|
||||
}
|
||||
13
catalog/model/product.go
Normal file
13
catalog/model/product.go
Normal file
@@ -0,0 +1,13 @@
|
||||
package catalog
|
||||
|
||||
import (
|
||||
"time"
|
||||
)
|
||||
|
||||
type Product struct {
|
||||
Name string `db:"name"`
|
||||
Slug string `db:"slug"`
|
||||
Price float64 `db:"price"`
|
||||
CreatedAt time.Time `db:"created_at"`
|
||||
UpdatedAt *time.Time `db:"updated_at,omitempty"`
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
package dto
|
||||
package common
|
||||
|
||||
type ErrorResponseDTO struct {
|
||||
Error string `json:"error"`
|
||||
}
|
||||
|
||||
func Error(err string) *ErrorResponseDTO { // FIXME Can DTOs have functions?
|
||||
func NewError(err string) *ErrorResponseDTO { // FIXME Can DTOs have functions?
|
||||
return &ErrorResponseDTO{err}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package dto
|
||||
package common
|
||||
|
||||
type HealthResponseDTO struct {
|
||||
Status string `json:"status"`
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package vo
|
||||
package common
|
||||
|
||||
import "strings"
|
||||
|
||||
@@ -34,7 +34,7 @@ func (c *Currency) Get() *Currency {
|
||||
return curr
|
||||
}
|
||||
|
||||
return c.getDefault()
|
||||
return c.Default()
|
||||
}
|
||||
|
||||
func (c *Currency) Equals(oc *Currency) bool {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package vo
|
||||
package common
|
||||
|
||||
type Money struct {
|
||||
}
|
||||
|
||||
2
go.mod
2
go.mod
@@ -1,4 +1,4 @@
|
||||
module git.ego.cloudns.be/egommerce/api-entities
|
||||
module git.ego.freeddns.org/egommerce/api-entities
|
||||
|
||||
go 1.19
|
||||
|
||||
|
||||
28
identity/dto/auth.go
Normal file
28
identity/dto/auth.go
Normal file
@@ -0,0 +1,28 @@
|
||||
package identity
|
||||
|
||||
type AuthLoginRequestDTO struct {
|
||||
Username string `json:"username"`
|
||||
Password string `json:"password"`
|
||||
}
|
||||
|
||||
type AuthLoginResponseDTO struct {
|
||||
Token string `json:"token"`
|
||||
}
|
||||
|
||||
type AuthRefreshTokenRequestDTO struct {
|
||||
AccessToken string `json:"access_token"`
|
||||
}
|
||||
|
||||
type AuthRefreshTokenResponseDTO struct {
|
||||
Token string `json:"token"`
|
||||
}
|
||||
|
||||
type AuthRegisterRequestDTO struct {
|
||||
Email string `json:"email"`
|
||||
Username string `json:"username"`
|
||||
Password string `json:"password"`
|
||||
}
|
||||
|
||||
type AuthRegisterResponseDTO struct {
|
||||
ID string `json:"id"`
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
package identity
|
||||
|
||||
type AuthLoginRequestDTO struct {
|
||||
Username string `json:"username"`
|
||||
Password string `json:"password"`
|
||||
}
|
||||
|
||||
type AuthLoginResponseDTO struct {
|
||||
Token string `json:"jwt_token"`
|
||||
}
|
||||
5
identity/dto/headers.go
Normal file
5
identity/dto/headers.go
Normal file
@@ -0,0 +1,5 @@
|
||||
package identity
|
||||
|
||||
type AuthorizationHeaderDTO struct {
|
||||
Authorization string `reqHeader:"authorization"`
|
||||
}
|
||||
8
identity/entity/role.go
Normal file
8
identity/entity/role.go
Normal file
@@ -0,0 +1,8 @@
|
||||
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"`
|
||||
}
|
||||
8
identity/entity/url_access.go
Normal file
8
identity/entity/url_access.go
Normal file
@@ -0,0 +1,8 @@
|
||||
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"`
|
||||
}
|
||||
19
identity/entity/user.go
Normal file
19
identity/entity/user.go
Normal file
@@ -0,0 +1,19 @@
|
||||
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"`
|
||||
UpdatedAt *time.Time `db:"updated_at,omitempty" json:"updated_at,omitempty"` // FIXME: zero-value issue
|
||||
}
|
||||
|
||||
// var TestUser = &User{
|
||||
// ID: 1,
|
||||
// Username: "test",
|
||||
// Password: "test",
|
||||
// CreateDate: time.Now(),
|
||||
// }
|
||||
@@ -1,20 +0,0 @@
|
||||
package order
|
||||
|
||||
import "github.com/jackc/pgtype"
|
||||
|
||||
type OrderModel 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 OrderItemModel 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"`
|
||||
}
|
||||
18
order/model/order.go
Normal file
18
order/model/order.go
Normal file
@@ -0,0 +1,18 @@
|
||||
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"`
|
||||
}
|
||||
|
||||
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"`
|
||||
}
|
||||
@@ -1,7 +1,6 @@
|
||||
package pricing
|
||||
|
||||
type ProductPriceModel struct {
|
||||
// ID int `db:"id"`
|
||||
type ProductPrice struct {
|
||||
PID string `db:"pid"`
|
||||
Price int `db:"price"`
|
||||
}
|
||||
Reference in New Issue
Block a user