Files
cloud-services/pkg/common/charge_settings.go

63 lines
1.4 KiB
Go

package common
import "time"
type OffPeakCharging struct {
Start time.Time `json:"start" validate:"required"`
End time.Time `json:"end" validate:"required"`
}
type MobileChargeSetting struct {
VIN string `json:"vin" validate:"required,vin"`
ChargeSettings ChargeSettings `json:"charge_settings" validate:"required"`
}
func (m *MobileChargeSetting) GetVIN() string {
return m.VIN
}
func (m *MobileChargeSetting) GetPayload() interface{} {
return m.ChargeSettings
}
func (m *MobileChargeSetting) SetVIN(vin string) {
m.VIN = vin
}
func (m *MobileChargeSetting) SetPayload(payload interface{}) error {
var ok bool
m.ChargeSettings, ok = payload.(ChargeSettings)
if !ok {
return ErrInvalidType
}
return nil
}
type TRexChargeSettings = ChargeSettings
type ChargeSettings struct {
ChargeLimit int `json:"charge_limit" validate:"required"`
MaxCurrent int `json:"max_current" validate:"required"`
MinCharge *int `json:"min_charge,omitempty"`
OffPeakCharging *OffPeakCharging `json:"off_peak_charging,omitempty"`
}
func (m *TRexChargeSettings) SetPayload(payload interface{}) error {
var ok bool
*m, ok = payload.(ChargeSettings)
if !ok {
return ErrInvalidType
}
return nil
}
func (m *TRexChargeSettings) GetMessage() interface{} {
return m
}
func (m *TRexChargeSettings) GetPayload() interface{} {
return *m
}