package kernelimage

import "time"

type ReleaseStatus string

const (
	ReleaseStatusBuilt                         ReleaseStatus = "BUILT"
	ReleaseStatusDeliveryOperationCreateFailed ReleaseStatus = "DELIVERY_OPERATION_CREATE_FAILED"
	ReleaseStatusDeliveryApproving             ReleaseStatus = "DELIVERY_APPROVING"
	ReleaseStatusSyncing                       ReleaseStatus = "SYNCING"
	ReleaseStatusSyncFailed                    ReleaseStatus = "SYNC_FAILED"
	ReleaseStatusAvailable                     ReleaseStatus = "AVAILABLE"
	ReleaseStatusRetired                       ReleaseStatus = "RETIRED"
)

type Release struct {
	ID                          uint64
	ArtifactUID                 string
	LocalDevOpsEnv              string
	Version                     string
	Repo                        string
	Branch                      string
	CommitSHA                   string
	GitTag                      string
	SourceRepository            string
	SourceTag                   string
	SourceDigest                string
	Status                      ReleaseStatus
	Masked                      bool
	MaskReason                  string
	SourceApplicant             string
	SourceReleaseID             string
	SourceChangeID              string
	DeliveryOperationInstanceID *uint64
	FormalDeliveryUID           string
	DeliveryBatchUID            string
	DeliveryTargetImages        []string
	AvailabilityStatus          AvailabilityStatus
	Availability                []*PlatformAvailability
	AvailabilityCheckUID        string
	AvailabilityCheckStartedAt  *time.Time
	AvailabilityCheckedAt       *time.Time
	AvailabilityLastError       string
	LastErrorCode               string
	LastErrorMessage            string
	BuildFinishedAt             *time.Time
	AvailableAt                 *time.Time
	CreatedAt                   time.Time
	UpdatedAt                   *time.Time
}
