Initial cloud-services repo - gateway service + pkg modules

This commit is contained in:
Chris Rai
2026-01-30 23:14:52 -05:00
commit fbb820d7b3
1037 changed files with 171318 additions and 0 deletions

View File

@@ -0,0 +1,79 @@
package common
import "time"
const (
PositionLeftFront string = "left_front"
PositionRightFront string = "right_front"
PositionLeftRear string = "left_rear"
PositionRightRear string = "right_rear"
PositionLeftRearQuarter string = "left_rear_quarter"
PositionRightRearQuarter string = "right_rear_quarter"
PositionRearWindshield string = "rear_windshield"
PositionTrunk string = "trunk"
)
type RemoteCommandSource struct {
Command string `json:"command" validate:"required,max=100"`
Data *string `json:"data,omitempty"`
Start *time.Time `json:"start,omitempty"`
End *time.Time `json:"end,omitempty"`
}
type RemoteReadVersionsCommandArgs struct {
ECUName string `json:"ecu_name" validate:"required,max=100"`
}
type RemoteResetDiagnosticCommandArgs struct {
ECUName string `json:"ecu_name" validate:"required,max=100"`
UDSKeys *ECCKeys `json:"uds_keys,omitempty"`
}
type RemoteCANNetworkCommandArgs struct {
Action string `json:"action" validate:"required,oneof=on off"`
Timeout int32 `json:"timeout"`
}
type RemoteIgnitionCommandArgs struct {
Action string `json:"action" validate:"required,oneof=on off"`
Timeout int32 `json:"timeout"`
}
type RemoteUpdateSecOCCommandArgs struct {
ECUs []string `json:"ecus" validate:"required"`
UDSKeys []ECCKeys `json:"uds_keys" validate:"required"`
KeyBase64 string `json:"key_base64" validate:"required"`
}
type RemoteDiagnosticCommandRequest struct {
VINs []string `json:"vins,omitempty" validate:"required,max=1000,dive,vin"`
Command string `json:"command" validate:"required,oneof=remote_reset can_network remote_ignition read_ecu_versions write_secoc_key"`
ECU string `json:"ecu_name,omitempty"`
CANNetAction string `json:"can_net_action,omitempty"`
IgnitionAction string `json:"ignition_action,omitempty"`
Timeout int32 `json:"timeout"`
}
type RemoteCommandRequest struct {
VIN string `json:"vin"`
Source string `json:"source"`
SentAt *time.Time `json:"time,omitempty"`
WaitDuration int `json:"wait_dur"`
RemoteCommandSource
}
func (r *RemoteCommandRequest) IsExpired(commandExpiration time.Duration) bool {
if r.SentAt == nil {
return false
}
expiresAt := r.SentAt.Add(commandExpiration * time.Second)
return expiresAt.Before(time.Now())
}
func (r *RemoteCommandRequest) GetSentAt() *time.Time {
return r.SentAt
}
func (r *RemoteCommandRequest) SetSentAt(sentAt time.Time) {
r.SentAt = &sentAt
}