LocalhostBunny/models/jobExecution.go
2023-12-01 09:56:06 +01:00

41 lines
1.1 KiB
Go

package models
import (
"gogs.mikescher.com/BlackForestBytes/goext/rfctime"
"time"
)
type JobStatus string //@enum:type
const (
JobStatusRunning JobStatus = "RUNNING"
JobStatusSuccess JobStatus = "SUCCESS"
JobStatusFailed JobStatus = "FAILED"
)
type JobExecution struct {
JobExecutionID JobExecutionID `bson:"_id,omitempty" json:"id"`
JobName string `bson:"jobName" json:"jobName"`
StartTime rfctime.RFC3339NanoTime `bson:"startTime" json:"startTime"`
EndTime *rfctime.RFC3339NanoTime `bson:"endTime" json:"endTime"`
Changes int `bson:"changes" json:"changes"`
Status JobStatus `bson:"status" json:"status"`
Error *string `bson:"error" json:"error"`
}
func (u JobExecution) GetID() AnyID {
return u.JobExecutionID.AsAny()
}
func (u JobExecution) GetCreationTime() time.Time {
return u.StartTime.Time()
}
func (u JobExecution) Delta() time.Duration {
if u.EndTime != nil {
return u.EndTime.Sub(u.StartTime)
} else {
return time.Now().Sub(u.StartTime.Time())
}
}