82 lines
1.2 KiB
Go
82 lines
1.2 KiB
Go
package models
|
|
|
|
import (
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type ALTRepo struct {
|
|
gorm.Model
|
|
|
|
Name string `gorm:"uniqueIndex"`
|
|
}
|
|
|
|
type GitRepo struct {
|
|
gorm.Model
|
|
|
|
Name string `gorm:"uniqueIndex"`
|
|
}
|
|
|
|
type RPMFile struct {
|
|
gorm.Model
|
|
|
|
TaskID int
|
|
Task Task
|
|
|
|
Filename string
|
|
|
|
Name string
|
|
Arch string
|
|
Version string
|
|
Release string
|
|
Epoch int
|
|
}
|
|
|
|
type TaskStatus int
|
|
|
|
const (
|
|
StatusPending TaskStatus = iota // 0
|
|
StatusInProgress // 1
|
|
StatusCompleted // 2
|
|
StatusFailed // 3
|
|
StatusCancelled // 4
|
|
)
|
|
|
|
type TaskType int
|
|
|
|
const (
|
|
// For future purpose
|
|
TypeTestOnly TaskType = iota // 0
|
|
TypeUpsert // 1
|
|
// For future purpose
|
|
TypeDelete // 2
|
|
)
|
|
|
|
type Task struct {
|
|
gorm.Model
|
|
|
|
Status TaskStatus
|
|
Type TaskType
|
|
|
|
RepoID uint
|
|
Repo *GitRepo
|
|
ALTRepoID uint
|
|
ALTRepo ALTRepo
|
|
|
|
FilesRemoved bool
|
|
Files []RPMFile
|
|
}
|
|
|
|
type GitRepoAltRepoTask struct {
|
|
gorm.Model
|
|
|
|
RepoID uint `gorm:"uniqueIndex:idx_gr_ar_gitaltrepotask"`
|
|
Repo *GitRepo
|
|
ALTRepoID uint `gorm:"uniqueIndex:idx_gr_ar_gitaltrepotask"`
|
|
ALTRepo *ALTRepo
|
|
|
|
LastTaskID *uint
|
|
LastTask *Task
|
|
|
|
CurrentTaskID *uint
|
|
CurrentTask *Task
|
|
}
|