Initial cloud-services repo - gateway service + pkg modules
This commit is contained in:
61
pkg/common/car.go
Normal file
61
pkg/common/car.go
Normal file
@@ -0,0 +1,61 @@
|
||||
package common
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"fiskerinc.com/modules/common/dbbasemodel"
|
||||
)
|
||||
|
||||
const (
|
||||
InfoSourceAutoCreated = "autocreated"
|
||||
CarSoldStatusRetailed = "Retailed"
|
||||
)
|
||||
|
||||
type RegionCode string
|
||||
|
||||
const (
|
||||
US RegionCode = "US"
|
||||
EU RegionCode = "EU"
|
||||
)
|
||||
|
||||
// Car schema
|
||||
type Car struct {
|
||||
VIN string `pg:",pk" json:"vin" validate:"required,vin"`
|
||||
Region RegionCode `json:"region,omitempty"`
|
||||
Country string `json:"country,omitempty" validate:"max=256"`
|
||||
Year int `json:"year,omitempty" validate:"required,gte=1000,lte=9999"`
|
||||
Model string `json:"model,omitempty" validate:"required,max=256"`
|
||||
Trim string `json:"trim,omitempty" validate:"required,max=256"`
|
||||
Powertrain string `json:"powertrain,omitempty" validate:"max=256"`
|
||||
Restraint string `json:"restraint,omitempty" validate:"max=256"`
|
||||
BodyType string `json:"body_type,omitempty" validate:"max=256"`
|
||||
ECUList string `json:"ecu_list,omitempty"`
|
||||
ICCID string `json:"iccid,omitempty" validate:"omitempty,max=50"`
|
||||
InfoSource string `pg:"info_source" json:"-"`
|
||||
Blocked bool `pg:"blocked" json:"-"`
|
||||
Tags []string `json:"tags,omitempty" pg:"tags,array" validate:"omitempty,max=50"`
|
||||
Drivers []CarToDriver `pg:"-" json:"drivers,omitempty"`
|
||||
Manifests []StatusManifest `pg:"-" json:"manifests,omitempty"`
|
||||
Document string `pg:"-" json:"document,omitempty"`
|
||||
SoldStatus string `pg:"sold_status" json:"sold_status,omitempty"`
|
||||
SUMSVersion string `pg:"sums_version" json:"sums_version,omitempty"`
|
||||
OSVersion string `pg:"-" json:"os_version,omitempty"`
|
||||
Flashpack string `json:"flashpack,omitempty"`
|
||||
dbbasemodel.DBModelBase
|
||||
}
|
||||
|
||||
// CarToDriver table storing cars-to-drivers
|
||||
type CarToDriver struct {
|
||||
ID int64 `json:"id"`
|
||||
VIN string `pg:",unique:carid_driverid" json:"vin,omitempty" validate:"required,vin"`
|
||||
DriverID string `pg:",unique:carid_driverid" json:"driverid,omitempty" validate:"required,max=256"`
|
||||
DriverRole string `json:"role" validate:"required,max=100"`
|
||||
BLEKey string `pg:"ble_key" json:"ble_key,omitempty" validation:"hexdecimal,max=32"`
|
||||
Settings []CarSetting `pg:"-" json:"settings,omitempty"`
|
||||
Subscriptions []Subscription `pg:"rel:has-many" json:"subscriptions,omitempty"`
|
||||
dbbasemodel.DBModelBase
|
||||
}
|
||||
|
||||
func (c Car) String() string {
|
||||
return fmt.Sprintf("Car<%s %s %d>", c.VIN, c.Model, c.Year)
|
||||
}
|
||||
Reference in New Issue
Block a user