refactor: move currency to money package and add new type Price, refactor api and use price there too
This commit is contained in:
parent
18d1c98b76
commit
ef1526a1ac
7 changed files with 127 additions and 137 deletions
|
|
@ -350,32 +350,17 @@ components:
|
|||
path: gitlab.mareshq.com/hq/yggdrasil/pkg/training
|
||||
|
||||
TrainingPrice:
|
||||
type: object
|
||||
properties:
|
||||
currency:
|
||||
type: string
|
||||
enum:
|
||||
- CZK
|
||||
- EUR
|
||||
- USD
|
||||
x-go-type: currency.Currency
|
||||
x-go-type-package:
|
||||
path: gitlab.mareshq.com/hq/yggdrasil/internal/currency
|
||||
amount:
|
||||
type: number
|
||||
minimum: 0
|
||||
x-go-type: decimal.Decimal
|
||||
x-go-type-package:
|
||||
path: github.com/shopspring/decimal
|
||||
type:
|
||||
type: string
|
||||
enum:
|
||||
- OPEN
|
||||
- CORPORATE
|
||||
required:
|
||||
- currency
|
||||
- amount
|
||||
- type
|
||||
allOf:
|
||||
- $ref: "#/components/schemas/Price"
|
||||
- type: object
|
||||
properties:
|
||||
type:
|
||||
type: string
|
||||
enum:
|
||||
- OPEN
|
||||
- CORPORATE
|
||||
required:
|
||||
- type
|
||||
|
||||
CreateTrainingDateRequest:
|
||||
$ref: "#/components/schemas/NewTrainingDate"
|
||||
|
|
@ -443,7 +428,7 @@ components:
|
|||
format: int8
|
||||
minimum: 1
|
||||
price:
|
||||
$ref: "#/components/schemas/TrainingDatePrice"
|
||||
$ref: "#/components/schemas/Price"
|
||||
required:
|
||||
- trainingID
|
||||
- date
|
||||
|
|
@ -465,7 +450,14 @@ components:
|
|||
required:
|
||||
- id
|
||||
|
||||
TrainingDatePrice:
|
||||
TrainingDateID:
|
||||
type: string
|
||||
format: uuid
|
||||
x-go-type: training.TrainingDateID
|
||||
x-go-type-import:
|
||||
path: gitlab.mareshq.com/hq/yggdrasil/pkg/training
|
||||
|
||||
Price:
|
||||
type: object
|
||||
properties:
|
||||
currency:
|
||||
|
|
@ -474,9 +466,9 @@ components:
|
|||
- CZK
|
||||
- EUR
|
||||
- USD
|
||||
x-go-type: currency.Currency
|
||||
x-go-type: money.Currency
|
||||
x-go-type-package:
|
||||
path: gitlab.mareshq.com/hq/yggdrasil/internal/currency
|
||||
path: gitlab.mareshq.com/hq/yggdrasil/internal/money
|
||||
amount:
|
||||
type: number
|
||||
minimum: 0
|
||||
|
|
@ -487,13 +479,6 @@ components:
|
|||
- currency
|
||||
- amount
|
||||
|
||||
TrainingDateID:
|
||||
type: string
|
||||
format: uuid
|
||||
x-go-type: training.TrainingDateID
|
||||
x-go-type-import:
|
||||
path: gitlab.mareshq.com/hq/yggdrasil/pkg/training
|
||||
|
||||
ProblemDetails:
|
||||
type: object
|
||||
description: >
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/shopspring/decimal"
|
||||
"gitlab.mareshq.com/hq/yggdrasil/internal/currency"
|
||||
"gitlab.mareshq.com/hq/yggdrasil/internal/money"
|
||||
"gitlab.mareshq.com/hq/yggdrasil/pkg/training"
|
||||
)
|
||||
|
||||
|
|
@ -30,22 +30,22 @@ func (f *Faker) GenerateFakeData() error {
|
|||
Pricing: []training.TrainingPrice{
|
||||
{
|
||||
Amount: decimal.NewFromInt(450),
|
||||
Currency: currency.USD,
|
||||
Currency: money.USD,
|
||||
Type: training.OpenTrainingPrice,
|
||||
},
|
||||
{
|
||||
Amount: decimal.NewFromInt(2000),
|
||||
Currency: currency.USD,
|
||||
Currency: money.USD,
|
||||
Type: training.CorporateTrainingPrice,
|
||||
},
|
||||
{
|
||||
Amount: decimal.NewFromInt(9900),
|
||||
Currency: currency.CZK,
|
||||
Currency: money.CZK,
|
||||
Type: training.OpenTrainingPrice,
|
||||
},
|
||||
{
|
||||
Amount: decimal.NewFromInt(49000),
|
||||
Currency: currency.CZK,
|
||||
Currency: money.CZK,
|
||||
Type: training.CorporateTrainingPrice,
|
||||
},
|
||||
},
|
||||
|
|
@ -57,22 +57,22 @@ func (f *Faker) GenerateFakeData() error {
|
|||
Pricing: []training.TrainingPrice{
|
||||
{
|
||||
Amount: decimal.NewFromInt(200),
|
||||
Currency: currency.USD,
|
||||
Currency: money.USD,
|
||||
Type: training.OpenTrainingPrice,
|
||||
},
|
||||
{
|
||||
Amount: decimal.NewFromInt(1000),
|
||||
Currency: currency.USD,
|
||||
Currency: money.USD,
|
||||
Type: training.CorporateTrainingPrice,
|
||||
},
|
||||
{
|
||||
Amount: decimal.NewFromInt(4900),
|
||||
Currency: currency.CZK,
|
||||
Currency: money.CZK,
|
||||
Type: training.OpenTrainingPrice,
|
||||
},
|
||||
{
|
||||
Amount: decimal.NewFromInt(24000),
|
||||
Currency: currency.CZK,
|
||||
Currency: money.CZK,
|
||||
Type: training.CorporateTrainingPrice,
|
||||
},
|
||||
},
|
||||
|
|
@ -84,22 +84,22 @@ func (f *Faker) GenerateFakeData() error {
|
|||
Pricing: []training.TrainingPrice{
|
||||
{
|
||||
Amount: decimal.NewFromInt(200),
|
||||
Currency: currency.USD,
|
||||
Currency: money.USD,
|
||||
Type: training.OpenTrainingPrice,
|
||||
},
|
||||
{
|
||||
Amount: decimal.NewFromInt(1000),
|
||||
Currency: currency.USD,
|
||||
Currency: money.USD,
|
||||
Type: training.CorporateTrainingPrice,
|
||||
},
|
||||
{
|
||||
Amount: decimal.NewFromInt(4900),
|
||||
Currency: currency.CZK,
|
||||
Currency: money.CZK,
|
||||
Type: training.OpenTrainingPrice,
|
||||
},
|
||||
{
|
||||
Amount: decimal.NewFromInt(24000),
|
||||
Currency: currency.CZK,
|
||||
Currency: money.CZK,
|
||||
Type: training.CorporateTrainingPrice,
|
||||
},
|
||||
},
|
||||
|
|
@ -111,22 +111,22 @@ func (f *Faker) GenerateFakeData() error {
|
|||
Pricing: []training.TrainingPrice{
|
||||
{
|
||||
Amount: decimal.NewFromInt(200),
|
||||
Currency: currency.USD,
|
||||
Currency: money.USD,
|
||||
Type: training.OpenTrainingPrice,
|
||||
},
|
||||
{
|
||||
Amount: decimal.NewFromInt(1000),
|
||||
Currency: currency.USD,
|
||||
Currency: money.USD,
|
||||
Type: training.CorporateTrainingPrice,
|
||||
},
|
||||
{
|
||||
Amount: decimal.NewFromInt(4900),
|
||||
Currency: currency.CZK,
|
||||
Currency: money.CZK,
|
||||
Type: training.OpenTrainingPrice,
|
||||
},
|
||||
{
|
||||
Amount: decimal.NewFromInt(24000),
|
||||
Currency: currency.CZK,
|
||||
Currency: money.CZK,
|
||||
Type: training.CorporateTrainingPrice,
|
||||
},
|
||||
},
|
||||
|
|
@ -138,22 +138,22 @@ func (f *Faker) GenerateFakeData() error {
|
|||
Pricing: []training.TrainingPrice{
|
||||
{
|
||||
Amount: decimal.NewFromInt(200),
|
||||
Currency: currency.USD,
|
||||
Currency: money.USD,
|
||||
Type: training.OpenTrainingPrice,
|
||||
},
|
||||
{
|
||||
Amount: decimal.NewFromInt(1000),
|
||||
Currency: currency.USD,
|
||||
Currency: money.USD,
|
||||
Type: training.CorporateTrainingPrice,
|
||||
},
|
||||
{
|
||||
Amount: decimal.NewFromInt(4900),
|
||||
Currency: currency.CZK,
|
||||
Currency: money.CZK,
|
||||
Type: training.OpenTrainingPrice,
|
||||
},
|
||||
{
|
||||
Amount: decimal.NewFromInt(24000),
|
||||
Currency: currency.CZK,
|
||||
Currency: money.CZK,
|
||||
Type: training.CorporateTrainingPrice,
|
||||
},
|
||||
},
|
||||
|
|
@ -165,22 +165,22 @@ func (f *Faker) GenerateFakeData() error {
|
|||
Pricing: []training.TrainingPrice{
|
||||
{
|
||||
Amount: decimal.NewFromInt(450),
|
||||
Currency: currency.USD,
|
||||
Currency: money.USD,
|
||||
Type: training.OpenTrainingPrice,
|
||||
},
|
||||
{
|
||||
Amount: decimal.NewFromInt(2000),
|
||||
Currency: currency.USD,
|
||||
Currency: money.USD,
|
||||
Type: training.CorporateTrainingPrice,
|
||||
},
|
||||
{
|
||||
Amount: decimal.NewFromInt(9900),
|
||||
Currency: currency.CZK,
|
||||
Currency: money.CZK,
|
||||
Type: training.OpenTrainingPrice,
|
||||
},
|
||||
{
|
||||
Amount: decimal.NewFromInt(49000),
|
||||
Currency: currency.CZK,
|
||||
Currency: money.CZK,
|
||||
Type: training.CorporateTrainingPrice,
|
||||
},
|
||||
},
|
||||
|
|
@ -219,9 +219,9 @@ func (f *Faker) GenerateFakeData() error {
|
|||
amount = decimal.NewFromInt(9900)
|
||||
}
|
||||
|
||||
cur := currency.CZK
|
||||
cur := money.CZK
|
||||
if online {
|
||||
cur = currency.EUR
|
||||
cur = money.EUR
|
||||
|
||||
if t.Days == 2 {
|
||||
amount = decimal.NewFromInt(450)
|
||||
|
|
@ -238,7 +238,7 @@ func (f *Faker) GenerateFakeData() error {
|
|||
Location: location,
|
||||
Address: "TBD",
|
||||
Capacity: 12,
|
||||
Price: training.TrainingDatePrice{
|
||||
Price: money.Price{
|
||||
Amount: amount,
|
||||
Currency: cur,
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
package currency
|
||||
package money
|
||||
|
||||
type Currency string
|
||||
|
||||
8
internal/money/price.go
Normal file
8
internal/money/price.go
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
package money
|
||||
|
||||
import "github.com/shopspring/decimal"
|
||||
|
||||
type Price struct {
|
||||
Amount decimal.Decimal
|
||||
Currency Currency
|
||||
}
|
||||
|
|
@ -18,7 +18,7 @@ import (
|
|||
"github.com/gofiber/fiber/v2"
|
||||
"github.com/oapi-codegen/runtime"
|
||||
"github.com/shopspring/decimal"
|
||||
"gitlab.mareshq.com/hq/yggdrasil/internal/currency"
|
||||
"gitlab.mareshq.com/hq/yggdrasil/internal/money"
|
||||
"gitlab.mareshq.com/hq/yggdrasil/pkg/training"
|
||||
)
|
||||
|
||||
|
|
@ -71,14 +71,20 @@ type NewTraining struct {
|
|||
|
||||
// NewTrainingDate defines model for NewTrainingDate.
|
||||
type NewTrainingDate struct {
|
||||
Address string `json:"address"`
|
||||
Capacity int8 `json:"capacity"`
|
||||
Date time.Time `json:"date"`
|
||||
Days int8 `json:"days"`
|
||||
IsOnline bool `json:"isOnline"`
|
||||
Location string `json:"location"`
|
||||
Price TrainingDatePrice `json:"price"`
|
||||
StartTime string `json:"startTime"`
|
||||
Address string `json:"address"`
|
||||
Capacity int8 `json:"capacity"`
|
||||
Date time.Time `json:"date"`
|
||||
Days int8 `json:"days"`
|
||||
IsOnline bool `json:"isOnline"`
|
||||
Location string `json:"location"`
|
||||
Price Price `json:"price"`
|
||||
StartTime string `json:"startTime"`
|
||||
}
|
||||
|
||||
// Price defines model for Price.
|
||||
type Price struct {
|
||||
Amount decimal.Decimal `json:"amount"`
|
||||
Currency money.Currency `json:"currency"`
|
||||
}
|
||||
|
||||
// ProblemDetails Schema that carries the details of an error in an HTTP response. See https://datatracker.ietf.org/doc/html/rfc7807 for more information.
|
||||
|
|
@ -110,33 +116,27 @@ type Training struct {
|
|||
|
||||
// TrainingDate defines model for TrainingDate.
|
||||
type TrainingDate struct {
|
||||
Address string `json:"address"`
|
||||
Capacity int8 `json:"capacity"`
|
||||
Date time.Time `json:"date"`
|
||||
Days int8 `json:"days"`
|
||||
Id TrainingDateID `json:"id"`
|
||||
IsOnline bool `json:"isOnline"`
|
||||
Location string `json:"location"`
|
||||
Price TrainingDatePrice `json:"price"`
|
||||
StartTime string `json:"startTime"`
|
||||
Address string `json:"address"`
|
||||
Capacity int8 `json:"capacity"`
|
||||
Date time.Time `json:"date"`
|
||||
Days int8 `json:"days"`
|
||||
Id TrainingDateID `json:"id"`
|
||||
IsOnline bool `json:"isOnline"`
|
||||
Location string `json:"location"`
|
||||
Price Price `json:"price"`
|
||||
StartTime string `json:"startTime"`
|
||||
}
|
||||
|
||||
// TrainingDateID defines model for TrainingDateID.
|
||||
type TrainingDateID = training.TrainingDateID
|
||||
|
||||
// TrainingDatePrice defines model for TrainingDatePrice.
|
||||
type TrainingDatePrice struct {
|
||||
Amount decimal.Decimal `json:"amount"`
|
||||
Currency currency.Currency `json:"currency"`
|
||||
}
|
||||
|
||||
// TrainingID defines model for TrainingID.
|
||||
type TrainingID = training.TrainingID
|
||||
|
||||
// TrainingPrice defines model for TrainingPrice.
|
||||
type TrainingPrice struct {
|
||||
Amount decimal.Decimal `json:"amount"`
|
||||
Currency currency.Currency `json:"currency"`
|
||||
Currency money.Currency `json:"currency"`
|
||||
Type TrainingPriceType `json:"type"`
|
||||
}
|
||||
|
||||
|
|
@ -1344,37 +1344,37 @@ func (sh *strictHandler) ListTrainingUpcomingDates(ctx *fiber.Ctx, trainingID Tr
|
|||
// Base64 encoded, gzipped, json marshaled Swagger object
|
||||
var swaggerSpec = []string{
|
||||
|
||||
"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",
|
||||
"yifra3yrL6v/BwAA//8Lqnf6hDQAAA==",
|
||||
"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",
|
||||
"xkX5ZH2Fb3m7/G8AAAD//6DZ/Q5BMwAA",
|
||||
}
|
||||
|
||||
// GetSwagger returns the content of the embedded swagger specification file
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"gitlab.mareshq.com/hq/yggdrasil/internal/money"
|
||||
"gitlab.mareshq.com/hq/yggdrasil/pkg/training"
|
||||
)
|
||||
|
||||
|
|
@ -211,7 +212,7 @@ func (h *APIHandlers) ListTrainingDates(ctx context.Context, req ListTrainingDat
|
|||
Location: td.Location,
|
||||
Address: td.Address,
|
||||
Capacity: td.Capacity,
|
||||
Price: TrainingDatePrice{
|
||||
Price: Price{
|
||||
Amount: td.Price.Amount,
|
||||
Currency: td.Price.Currency,
|
||||
},
|
||||
|
|
@ -222,7 +223,7 @@ func (h *APIHandlers) ListTrainingDates(ctx context.Context, req ListTrainingDat
|
|||
}
|
||||
|
||||
func (h *APIHandlers) CreateTrainingDate(ctx context.Context, req CreateTrainingDateRequestObject) (CreateTrainingDateResponseObject, error) {
|
||||
price := training.TrainingDatePrice{
|
||||
price := money.Price{
|
||||
Amount: req.Body.Price.Amount,
|
||||
Currency: req.Body.Price.Currency,
|
||||
}
|
||||
|
|
@ -267,7 +268,7 @@ func (h *APIHandlers) CreateTrainingDate(ctx context.Context, req CreateTraining
|
|||
Location: td.Location,
|
||||
Address: td.Address,
|
||||
Capacity: td.Capacity,
|
||||
Price: TrainingDatePrice{
|
||||
Price: Price{
|
||||
Amount: td.Price.Amount,
|
||||
Currency: td.Price.Currency,
|
||||
},
|
||||
|
|
@ -320,7 +321,7 @@ func (h *APIHandlers) GetTrainingDate(ctx context.Context, req GetTrainingDateRe
|
|||
Location: td.Location,
|
||||
Address: td.Address,
|
||||
Capacity: td.Capacity,
|
||||
Price: TrainingDatePrice{
|
||||
Price: Price{
|
||||
Amount: td.Price.Amount,
|
||||
Currency: td.Price.Currency,
|
||||
},
|
||||
|
|
@ -328,7 +329,7 @@ func (h *APIHandlers) GetTrainingDate(ctx context.Context, req GetTrainingDateRe
|
|||
}
|
||||
|
||||
func (h *APIHandlers) UpdateTrainingDate(ctx context.Context, req UpdateTrainingDateRequestObject) (UpdateTrainingDateResponseObject, error) {
|
||||
price := training.TrainingDatePrice{
|
||||
price := money.Price{
|
||||
Amount: req.Body.Price.Amount,
|
||||
Currency: req.Body.Price.Currency,
|
||||
}
|
||||
|
|
@ -374,7 +375,7 @@ func (h *APIHandlers) UpdateTrainingDate(ctx context.Context, req UpdateTraining
|
|||
Location: td.Location,
|
||||
Address: td.Address,
|
||||
Capacity: td.Capacity,
|
||||
Price: TrainingDatePrice{
|
||||
Price: Price{
|
||||
Amount: td.Price.Amount,
|
||||
Currency: td.Price.Currency,
|
||||
},
|
||||
|
|
@ -416,7 +417,7 @@ func (h *APIHandlers) ListAllUpcomingTrainingDates(ctx context.Context, req List
|
|||
Location: td.Location,
|
||||
Address: td.Address,
|
||||
Capacity: td.Capacity,
|
||||
Price: TrainingDatePrice{
|
||||
Price: Price{
|
||||
Amount: td.Price.Amount,
|
||||
Currency: td.Price.Currency,
|
||||
},
|
||||
|
|
@ -449,7 +450,7 @@ func (h *APIHandlers) ListTrainingUpcomingDates(ctx context.Context, req ListTra
|
|||
Location: td.Location,
|
||||
Address: td.Address,
|
||||
Capacity: td.Capacity,
|
||||
Price: TrainingDatePrice{
|
||||
Price: Price{
|
||||
Amount: td.Price.Amount,
|
||||
Currency: td.Price.Currency,
|
||||
},
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import (
|
|||
|
||||
"github.com/google/uuid"
|
||||
"github.com/shopspring/decimal"
|
||||
"gitlab.mareshq.com/hq/yggdrasil/internal/currency"
|
||||
"gitlab.mareshq.com/hq/yggdrasil/internal/money"
|
||||
)
|
||||
|
||||
type TrainingID = uuid.UUID
|
||||
|
|
@ -24,7 +24,7 @@ type Training struct {
|
|||
|
||||
type TrainingPrice struct {
|
||||
Amount decimal.Decimal
|
||||
Currency currency.Currency
|
||||
Currency money.Currency
|
||||
Type TrainingPriceType
|
||||
}
|
||||
|
||||
|
|
@ -52,10 +52,6 @@ type TrainingDate struct {
|
|||
Location string
|
||||
Address string
|
||||
Capacity int8
|
||||
Price TrainingDatePrice
|
||||
Price money.Price
|
||||
}
|
||||
|
||||
type TrainingDatePrice struct {
|
||||
Amount decimal.Decimal
|
||||
Currency currency.Currency
|
||||
}
|
||||
|
|
|
|||
Reference in a new issue