init
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"apskel-pos-be/internal/constants"
|
||||
"time"
|
||||
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
type PaymentMethod struct {
|
||||
ID uuid.UUID
|
||||
OrganizationID uuid.UUID
|
||||
Name string
|
||||
Type constants.PaymentMethodType
|
||||
Processor *string
|
||||
Configuration map[string]interface{}
|
||||
IsActive bool
|
||||
CreatedAt time.Time
|
||||
UpdatedAt time.Time
|
||||
}
|
||||
|
||||
type CreatePaymentMethodRequest struct {
|
||||
OrganizationID uuid.UUID `validate:"required"`
|
||||
Name string `validate:"required,min=1,max=100"`
|
||||
Type constants.PaymentMethodType `validate:"required"`
|
||||
Processor *string `validate:"omitempty,max=100"`
|
||||
Configuration map[string]interface{} `validate:"omitempty"`
|
||||
IsActive *bool `validate:"omitempty"`
|
||||
}
|
||||
|
||||
type UpdatePaymentMethodRequest struct {
|
||||
Name *string `validate:"omitempty,min=1,max=100"`
|
||||
Type *constants.PaymentMethodType `validate:"omitempty"`
|
||||
Processor *string `validate:"omitempty,max=100"`
|
||||
Configuration map[string]interface{} `validate:"omitempty"`
|
||||
IsActive *bool `validate:"omitempty"`
|
||||
}
|
||||
|
||||
type PaymentMethodResponse struct {
|
||||
ID uuid.UUID
|
||||
OrganizationID uuid.UUID
|
||||
Name string
|
||||
Type constants.PaymentMethodType
|
||||
Processor *string
|
||||
Configuration map[string]interface{}
|
||||
IsActive bool
|
||||
CreatedAt time.Time
|
||||
UpdatedAt time.Time
|
||||
}
|
||||
|
||||
type ListPaymentMethodsRequest struct {
|
||||
OrganizationID *uuid.UUID
|
||||
Type *constants.PaymentMethodType
|
||||
IsActive *bool
|
||||
Search string
|
||||
Page int `validate:"min=1"`
|
||||
Limit int `validate:"min=1,max=100"`
|
||||
}
|
||||
|
||||
type ListPaymentMethodsResponse struct {
|
||||
PaymentMethods []PaymentMethodResponse
|
||||
TotalCount int
|
||||
Page int
|
||||
Limit int
|
||||
TotalPages int
|
||||
}
|
||||
|
||||
func (pm *PaymentMethod) IsDigital() bool {
|
||||
return pm.Type == constants.PaymentMethodTypeCard ||
|
||||
pm.Type == constants.PaymentMethodTypeDigitalWallet ||
|
||||
pm.Type == constants.PaymentMethodTypeEDC ||
|
||||
pm.Type == constants.PaymentMethodTypeQR
|
||||
}
|
||||
|
||||
func (pm *PaymentMethod) RequiresProcessor() bool {
|
||||
return pm.IsDigital() && pm.Processor != nil
|
||||
}
|
||||
Reference in New Issue
Block a user