38 lines
1.3 KiB
Go
38 lines
1.3 KiB
Go
package media
|
|
|
|
import "time"
|
|
|
|
const (
|
|
DesiredRunning = "running"
|
|
DesiredStopped = "stopped"
|
|
)
|
|
|
|
type Route struct {
|
|
ID string `gorm:"size:96;primaryKey"`
|
|
DeviceID string `gorm:"size:36;not null;uniqueIndex:media_device_profile"`
|
|
ProfileToken string `gorm:"size:255;not null;uniqueIndex:media_device_profile"`
|
|
Path string `gorm:"size:96;not null;uniqueIndex"`
|
|
Desired string `gorm:"size:16;not null;index"`
|
|
Actual string `gorm:"size:32;not null;index"`
|
|
Readers int `gorm:"not null"`
|
|
SourceReady bool `gorm:"not null"`
|
|
FailureCount int `gorm:"not null"`
|
|
NextRetryAt *time.Time `gorm:"index"`
|
|
LastErrorCode string `gorm:"size:64;not null"`
|
|
Detail string `gorm:"size:512;not null"`
|
|
Version int64 `gorm:"not null"`
|
|
UpdatedAt time.Time
|
|
}
|
|
|
|
func (Route) TableName() string { return "sense_media_routes" }
|
|
|
|
// admissionProfile intentionally maps only non-secret fields from #66.
|
|
type admissionProfile struct {
|
|
DeviceID string `gorm:"column:device_id"`
|
|
Token string `gorm:"column:token"`
|
|
StreamURI string `gorm:"column:stream_uri"`
|
|
VerificationStatus string `gorm:"column:verification_status"`
|
|
}
|
|
|
|
func (admissionProfile) TableName() string { return "sense_admission_profiles" }
|