light modification
This commit is contained in:
@@ -1,43 +0,0 @@
|
||||
package enum
|
||||
|
||||
type ScheduledType int
|
||||
|
||||
const (
|
||||
DRAFT ScheduledType = iota
|
||||
SCHEDULED
|
||||
STARTED
|
||||
FAILURE
|
||||
SUCCESS
|
||||
FORGOTTEN
|
||||
DELAYED
|
||||
CANCELLED
|
||||
)
|
||||
|
||||
var str = [...]string{
|
||||
"draft",
|
||||
"scheduled",
|
||||
"started",
|
||||
"failure",
|
||||
"success",
|
||||
"forgotten",
|
||||
"delayed",
|
||||
"cancelled",
|
||||
}
|
||||
|
||||
func FromInt(i int) string {
|
||||
return str[i]
|
||||
}
|
||||
|
||||
func (d ScheduledType) String() string {
|
||||
return str[d]
|
||||
}
|
||||
|
||||
// EnumIndex - Creating common behavior - give the type a EnumIndex functio
|
||||
func (d ScheduledType) EnumIndex() int {
|
||||
return int(d)
|
||||
}
|
||||
|
||||
// List
|
||||
func ScheduleList() []ScheduledType {
|
||||
return []ScheduledType{DRAFT, SCHEDULED, STARTED, FAILURE, SUCCESS, FORGOTTEN, DELAYED, CANCELLED}
|
||||
}
|
64
models/common/enum/status.go
Normal file
64
models/common/enum/status.go
Normal file
@@ -0,0 +1,64 @@
|
||||
package enum
|
||||
|
||||
type CompletionStatus int
|
||||
|
||||
const (
|
||||
DRAFTED CompletionStatus = iota
|
||||
PENDING
|
||||
CANCEL
|
||||
PARTIAL
|
||||
PAID
|
||||
DISPUTED
|
||||
OVERDUE
|
||||
REFUND
|
||||
)
|
||||
|
||||
func (d CompletionStatus) String() string {
|
||||
return [...]string{"drafted", "pending", "cancel", "partial", "paid", "disputed", "overdue", "refund"}[d]
|
||||
}
|
||||
|
||||
func CompletionStatusList() []CompletionStatus {
|
||||
return []CompletionStatus{DRAFTED, PENDING, CANCEL, PARTIAL, PAID, DISPUTED, OVERDUE, REFUND}
|
||||
}
|
||||
|
||||
type BookingStatus int
|
||||
|
||||
const (
|
||||
DRAFT BookingStatus = iota
|
||||
SCHEDULED
|
||||
STARTED
|
||||
FAILURE
|
||||
SUCCESS
|
||||
FORGOTTEN
|
||||
DELAYED
|
||||
CANCELLED
|
||||
)
|
||||
|
||||
var str = [...]string{
|
||||
"draft",
|
||||
"scheduled",
|
||||
"started",
|
||||
"failure",
|
||||
"success",
|
||||
"forgotten",
|
||||
"delayed",
|
||||
"cancelled",
|
||||
}
|
||||
|
||||
func FromInt(i int) string {
|
||||
return str[i]
|
||||
}
|
||||
|
||||
func (d BookingStatus) String() string {
|
||||
return str[d]
|
||||
}
|
||||
|
||||
// EnumIndex - Creating common behavior - give the type a EnumIndex functio
|
||||
func (d BookingStatus) EnumIndex() int {
|
||||
return int(d)
|
||||
}
|
||||
|
||||
// List
|
||||
func StatusList() []BookingStatus {
|
||||
return []BookingStatus{DRAFT, SCHEDULED, STARTED, FAILURE, SUCCESS, FORGOTTEN, DELAYED, CANCELLED}
|
||||
}
|
@@ -18,6 +18,14 @@ const (
|
||||
REFUND_ON_EARLY_END
|
||||
)
|
||||
|
||||
func (t RefundType) String() string {
|
||||
return [...]string{"REFUND ON DEAD END", "REFUND ON ERROR", "REFUND ON EARLY END"}[t]
|
||||
}
|
||||
|
||||
func RefundTypeList() []RefundType {
|
||||
return []RefundType{REFUND_DEAD_END, REFUND_ON_ERROR, REFUND_ON_EARLY_END}
|
||||
}
|
||||
|
||||
type AccessPricingProfile[T Strategy] struct { // only use for acces such as : DATA && PROCESSING
|
||||
Pricing PricingStrategy[T] `json:"pricing,omitempty" bson:"pricing,omitempty"` // Price is the price of the resource
|
||||
DefaultRefund RefundType `json:"default_refund" bson:"default_refund"` // DefaultRefund is the default refund type of the pricing
|
||||
@@ -36,8 +44,12 @@ const (
|
||||
GARANTED
|
||||
)
|
||||
|
||||
func ExploitPrivilegeStrategyList() []ExploitPrivilegeStrategy {
|
||||
return []ExploitPrivilegeStrategy{BASIC, GARANTED_ON_DELAY, GARANTED}
|
||||
}
|
||||
|
||||
func (t ExploitPrivilegeStrategy) String() string {
|
||||
return [...]string{"BASIC", "GARANTED_ON_DELAY", "GARANTED"}[t]
|
||||
return [...]string{"NO GARANTY", "GARANTED ON SPECIFIC DELAY", "GARANTED"}[t]
|
||||
}
|
||||
|
||||
type ExploitPricingProfile[T Strategy] struct { // only use for exploit such as : STORAGE, COMPUTE, WORKFLOW
|
||||
|
@@ -15,6 +15,14 @@ const (
|
||||
PAY_PER_USE
|
||||
)
|
||||
|
||||
func (t BuyingStrategy) String() string {
|
||||
return [...]string{"UNLIMITED", "SUBSCRIPTION", "PAY PER USE"}[t]
|
||||
}
|
||||
|
||||
func BuyingStrategyList() []BuyingStrategy {
|
||||
return []BuyingStrategy{UNLIMITED, SUBSCRIPTION, PAY_PER_USE}
|
||||
}
|
||||
|
||||
type Strategy interface {
|
||||
GetStrategy() string
|
||||
GetStrategyValue() int
|
||||
@@ -32,6 +40,14 @@ const (
|
||||
PER_MONTH
|
||||
)
|
||||
|
||||
func (t TimePricingStrategy) String() string {
|
||||
return [...]string{"ONCE", "PER SECOND", "PER MINUTE", "PER HOUR", "PER DAY", "PER WEEK", "PER MONTH"}[t]
|
||||
}
|
||||
|
||||
func TimePricingStrategyList() []TimePricingStrategy {
|
||||
return []TimePricingStrategy{ONCE, PER_SECOND, PER_MINUTE, PER_HOUR, PER_DAY, PER_WEEK, PER_MONTH}
|
||||
}
|
||||
|
||||
func (t TimePricingStrategy) GetStrategy() string {
|
||||
return [...]string{"ONCE", "PER_SECOND", "PER_MINUTE", "PER_HOUR", "PER_DAY", "PER_WEEK", "PER_MONTH"}[t]
|
||||
}
|
||||
@@ -82,7 +98,7 @@ func BookingEstimation(t TimePricingStrategy, price float64, locationDurationInS
|
||||
case PER_MONTH:
|
||||
return p * float64(locationDurationInSecond/2592000), nil
|
||||
}
|
||||
return 0, errors.New("Pricing strategy not found")
|
||||
return 0, errors.New("pricing strategy not found")
|
||||
}
|
||||
|
||||
type PricingStrategy[T Strategy] struct {
|
||||
|
Reference in New Issue
Block a user