package domain import ( "time" "github.com/alphadose/haxmap" ) 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"` Has32bit bool Version string NewVersion string Status PackageStatus LastBuildStatus PackageStatus BuildAttempts int Packages *haxmap.Map[string, PackageInfo] `gorm:"foreignKey:PackageInfo;references:PackageName"` } type SourcePackageDTO struct { Name string `gorm:"primarykey"` Has32bit bool 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 BuildAttempts int } 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 }