Compare commits

...

11 Commits

Author SHA1 Message Date
caab22d489 Fixed wrong typed Entity, URLAccess is what we need 2025-10-21 21:10:25 +02:00
4972989610 Added Role Entity 2025-10-21 21:04:37 +02:00
0ae9fd4c99 Removed uneccessary suffixes 2025-10-21 14:03:13 +02:00
44ac85bed7 Fixes in User Entity field names 2025-10-21 12:13:59 +02:00
1b91bb7e4d Added DTOs for RefhreshToken action 2025-10-20 21:22:13 +02:00
fc0130e573 Renamed jwt_token to token 2025-10-20 18:48:34 +02:00
f675a12790 Added Register DTO 2025-10-20 16:33:49 +02:00
990cc6f9af Added email field to the User Entity 2025-10-20 16:30:45 +02:00
72d5f93a30 Fixes in packages namespaces 2025-10-20 16:25:55 +02:00
54ff2581ed Update repo url 2025-10-11 20:42:15 +02:00
Piotr Biernat
5a5f643be8 Refactoring 2024-12-06 16:44:42 +01:00
25 changed files with 132 additions and 85 deletions

20
basket/model/basket.go Normal file
View 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"`
}

View File

@@ -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"`
}

View File

@@ -1,14 +1,14 @@
package dto package catalog
import ( import (
"time" "time"
) )
type GetProductRequest struct { type GetProductRequestDTO struct {
ProductID int `json:"product_id"` ProductID int `json:"product_id"`
} }
type GetProductResponse struct { type GetProductResponseDTO struct {
ID int `json:"id"` ID int `json:"id"`
PID string `json:"pid"` PID string `json:"pid"`
Name string `json:"name"` Name string `json:"name"`
@@ -17,30 +17,30 @@ type GetProductResponse struct {
UpdatedAt time.Duration `json:"updated_at,omitempty"` UpdatedAt time.Duration `json:"updated_at,omitempty"`
} }
type GetProductListRequest struct { type GetProductListRequestDTO struct {
CategoryID int `json:"category_id"` CategoryID int `json:"category_id"`
} }
type GetProductListResponse struct { type GetProductListResponseDTO struct {
Products []GetProductResponse `json:"products"` Products []GetProductResponseDTO `json:"products"`
} }
type AddProductToBasketRequest struct { type AddProductToBasketRequestDTO struct {
ProductID int `json:"product_id"` ProductID int `json:"product_id"`
Quantity int `json:"quantity"` Quantity int `json:"quantity"`
} }
type AddProductToBasketResponse struct { type AddProductToBasketResponseDTO struct {
ProductID int `json:"product_id"` ProductID int `json:"product_id"`
BasketID string `json:"basket_id"` BasketID string `json:"basket_id"`
} }
type RemoveProductFromBasketRequest struct { type RemoveProductFromBasketRequestDTO struct {
ProductID int `json:"product_id"` ProductID int `json:"product_id"`
Quantity int `json:"quantity"` Quantity int `json:"quantity"`
} }
type RemoveProductFromBasketResponse struct { type RemoveProductFromBasketResponseDTO struct {
ProductID int `json:"product_id"` ProductID int `json:"product_id"`
BasketID string `json:"basket_id"` BasketID string `json:"basket_id"`
} }

View File

@@ -1,8 +1,8 @@
package entity package catalog
import "github.com/jackc/pgtype" import "github.com/jackc/pgtype"
type ProductEntity struct { type Product struct {
ID int `db:"id"` ID int `db:"id"`
PID string `db:"pid"` PID string `db:"pid"`
Name string `db:"name"` Name string `db:"name"`

View File

@@ -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
View File

@@ -0,0 +1,13 @@
package catalog
import (
"time"
)
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"`
}

View File

@@ -1,9 +1,9 @@
package dto package common
type ErrorResponseDTO struct { type ErrorResponseDTO struct {
Error string `json:"error"` 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} return &ErrorResponseDTO{err}
} }

View File

@@ -1,4 +1,4 @@
package dto package common
type HealthResponseDTO struct { type HealthResponseDTO struct {
Status string `json:"status"` Status string `json:"status"`

View File

@@ -1,4 +1,4 @@
package vo package common
import "strings" import "strings"
@@ -34,7 +34,7 @@ func (c *Currency) Get() *Currency {
return curr return curr
} }
return c.getDefault() return c.Default()
} }
func (c *Currency) Equals(oc *Currency) bool { func (c *Currency) Equals(oc *Currency) bool {

View File

@@ -1,4 +1,4 @@
package vo package common
type Money struct { type Money struct {
} }

2
go.mod
View File

@@ -1,4 +1,4 @@
module git.ego.cloudns.be/egommerce/api-entities module git.ego.freeddns.org/egommerce/api-entities
go 1.19 go 1.19

28
identity/dto/auth.go Normal file
View 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"`
}

View File

@@ -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"`
}

7
identity/entity/role.go Normal file
View File

@@ -0,0 +1,7 @@
package identity
type Role struct {
ID string `db:"id" json:"id"`
Roles []byte `db:"roles" json:"roles"`
URL string `db:"url" json:"url"`
}

View File

@@ -0,0 +1,7 @@
package identity
type URLAccess struct {
ID string `db:"id" json:"id"`
Roles []byte `db:"roles" json:"roles"`
URL string `db:"url" json:"url"`
}

19
identity/entity/user.go Normal file
View 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"`
ModifiedAt time.Time `db:"modified_at" json:"modified_at"` // FIXME: zero-value issue
}
// var TestUser = &User{
// ID: 1,
// Username: "test",
// Password: "test",
// CreateDate: time.Now(),
// }

View File

@@ -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
View 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"`
}

View File

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