38 lines
1.2 KiB
Go
38 lines
1.2 KiB
Go
package actionlogger
|
|
|
|
import (
|
|
"time"
|
|
|
|
"fiskerinc.com/modules/common/dbbasemodel"
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
// Use Action Log to track actions taken against a car including remote commands, car updates etc. Mostly worried about car commands for now
|
|
type ActionLog struct {
|
|
VIN string
|
|
UserIdentifier string
|
|
//UserType string // Not sure how different users can be identified between fisker customers and api admins
|
|
Action Action // Short Hand of description
|
|
Description string // JSON string explaining full action
|
|
// TrackingID *uuid.UUID // If we want to log the same action as it goes through, this tracking ID will follow the same request through
|
|
CallLocation string // Informative field where we created this. Can use runtime reflection if we want, but is more expensive
|
|
dbbasemodel.DBModelBase
|
|
}
|
|
|
|
type Action string
|
|
|
|
const (
|
|
RemoteCommand Action = "RemoteCommand"
|
|
CarConfigurationUpdate Action = "CarConfigurationUpdate"
|
|
CarUpdate Action = "CarUpdate"
|
|
)
|
|
|
|
type ActionLogFilter struct {
|
|
VINs []string `pg:",array"`
|
|
Actions []string `pg:",array"`
|
|
Before time.Time
|
|
After time.Time
|
|
Limit int
|
|
TrackingID *uuid.UUID
|
|
}
|