brunel/domain/packages.go
2024-07-29 22:40:26 +01:00

57 lines
1.2 KiB
Go

package domain
import (
"brunel/fastmap"
"time"
)
type PackagesCount struct {
Stale int `json:"stale"`
Missing int `json:"missing"`
Current int `json:"built"`
Error int `json:"error"`
Queued int `json:"queued"`
Building int `json:"building"`
}
type SourcePackage struct {
Name string `gorm:"primarykey"`
Packages *fastmap.Fastmap[string, PackageInfo] `gorm:"foreignKey:PackageInfo;references:PackageName"`
}
type SourcePackageDTO struct {
Name string `gorm:"primarykey"`
Packages []PackageInfo `gorm:"foreignKey:PackageName"`
}
type PackageInfo struct {
PackageName string `gorm:"primarykey"`
Version string
Source string
Architecture string
Description string
Status PackageStatus
NewVersion string
LastBuildStatus PackageStatus
}
type PackageStatus string
const (
// Package is built
Built PackageStatus = "Built"
// Package is stale
Stale PackageStatus = "Stale"
// Package build errored out
Error PackageStatus = "Error"
// Package is being missing
Missing PackageStatus = "Missing"
// Package is upto date
Current PackageStatus = "Current"
)
type TimeContainer struct {
ID string
Time time.Time
}