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

64 lines
2.0 KiB
Go

package common
import (
"fmt"
"strings"
"time"
"github.com/fiskerinc/cloud-services/pkg/common/dbbasemodel"
)
type SupplierAccount struct {
SupplierOrganizationID int64 `json:"supplier_organization_id,string,omitempty" pg:"supplier_organization_id"`
Email string `json:"email" pg:",pk" validate:"required,email,max=1000"`
Company string `json:"company" validate:"required,max=100"`
Address string `json:"address" validate:"required,max=100"`
Contact string `json:"contact" validate:"required,max=50"`
Telephone string `json:"telephone" validate:"required,max=20"`
Program string `json:"program" validate:"required,max=100"`
ECUs []string `json:"ecus" pg:"ecus,array" validate:"required,min=1,max=100,dive,min=2,max=10"`
IP string `json:"ip,omitempty" validate:"max=50" swaggerignore:"true"`
ActivatedAt *time.Time `json:"activated,omitempty" swaggerignore:"true"`
SigninAt *time.Time `json:"signin_at,omitempty" swaggerignore:"true"`
KeysAt *time.Time `json:"keys_at,omitempty" swaggerignore:"true"`
dbbasemodel.DBModelBase
}
func (s *SupplierAccount) SanitizeData() {
s.Email = strings.ToLower(strings.TrimSpace(s.Email))
s.Company = strings.TrimSpace(s.Company)
s.Address = strings.TrimSpace(s.Address)
s.Contact = strings.TrimSpace(s.Contact)
s.Telephone = strings.TrimSpace(s.Telephone)
s.Program = strings.TrimSpace(s.Program)
s.CreatedAt = nil
s.UpdatedAt = nil
s.ActivatedAt = nil
s.SigninAt = nil
s.KeysAt = nil
s.SanitizeECUData()
}
func (s *SupplierAccount) SanitizeECUData() {
for i, item := range s.ECUs {
s.ECUs[i] = strings.TrimSpace(item)
}
}
func (s *SupplierAccount) String() string {
return fmt.Sprintf("SupplierAccount<%s, %s, %s, %s, %s, %s, %v, %v, %v, %v, %v>",
s.Company,
s.Address,
s.Contact,
s.Telephone,
s.Email,
s.Program,
s.CreatedAt,
s.UpdatedAt,
s.ActivatedAt,
s.SigninAt,
s.KeysAt,
)
}