bilibili-backup/app/admin/ep/saga/model/sync.go
2019-04-22 02:59:20 +00:00

294 lines
13 KiB
Go

package model
import (
"time"
"github.com/xanzy/go-gitlab"
)
// DatabaseErrorText ...
const (
DatabaseErrorText = "Incorrect string value"
DatabaseMaxLenthErrorText = "Data too long for column"
MessageMaxLen = 2048
JsonMarshalErrorText = "XXXXX"
)
// DataType ...
const (
DataTypePipeline = "pipeline"
DataTypeJob = "job"
DataTypeCommit = "commit"
DataTypeMR = "MR"
DataTypeBranch = "Branch"
)
// FailData ...
type FailData struct {
ChildID int
ChildIDStr string
SunID int
}
// SyncResult ...
type SyncResult struct {
TotalPage int
TotalNum int
FailData []*FailData
}
// StatisticsCommits ...
type StatisticsCommits struct {
ID int `json:"id" gorm:"AUTO_INCREMENT;primary_key;" form:"id"`
CommitID string `json:"commit_id"`
ProjectID int `json:"project_id" gorm:"column:project_id"`
ProjectName string `json:"project_name"`
ShortID string `json:"short_id"`
Title string `json:"title"`
AuthorName string `json:"author_name"`
AuthoredDate *time.Time `json:"authored_date"`
CommitterName string `json:"committer_name"`
CommittedDate *time.Time `json:"committed_date"`
CreatedAt *time.Time `json:"created_at"`
Message string `json:"message"`
ParentIDs string `json:"parent_ids"`
StatsAdditions int `json:"stats_additions"`
StatsDeletions int `json:"stats_deletions"`
Status string `json:"status" default:""`
}
// StatisticsIssues ...
type StatisticsIssues struct {
ID int `json:"id" gorm:"AUTO_INCREMENT;primary_key;" form:"id"`
ProjectID int `json:"project_id"`
IssueID int `json:"issue_id"`
IssueIID int `json:"issue_iid" gorm:"column:issue_iid"`
MilestoneID int `json:"milestone_id"`
AuthorID int `json:"author_id"`
AuthorName string `json:"author_name"`
Description string `json:"description"`
State string `json:"state"`
Assignees string `json:"assignees"`
AssigneeID int `json:"assignee_id"`
AssigneeName string `json:"assignee_name"`
Upvotes int `json:"upvotes"`
Downvotes int `json:"downvotes"`
Labels string `json:"labels"`
Title string `json:"title"`
UpdatedAt *time.Time `json:"updated_at"`
CreatedAt *time.Time `json:"created_at"`
ClosedAt *time.Time `json:"closed_at"`
Subscribed bool `json:"subscribed"`
UserNotesCount int `json:"user_notes_count"`
DueDate *gitlab.ISOTime `json:"due_date"`
WebURL string `json:"web_url"`
TimeStats string `json:"time_stats"`
Confidential bool `json:"confidential"`
Weight int `json:"weight"`
DiscussionLocked bool `json:"discussion_locked"`
IssueLinkID int `json:"issue_link_id"`
}
// StatisticsRunners ...
type StatisticsRunners struct {
ID int `json:"id" gorm:"AUTO_INCREMENT;primary_key;" form:"id"`
ProjectID int `json:"project_id"`
ProjectName string `json:"project_name"`
RunnerID int `json:"runner_id"`
Description string `json:"description"`
Active bool `json:"active"`
IsShared bool `json:"is_shared"`
IPAddress string `json:"ip_address"`
Name string `json:"name"`
Online bool `json:"online"`
Status string `json:"status"`
Token string `json:"token"`
}
// StatisticsJobs ...
type StatisticsJobs struct {
ID int `json:"id" gorm:"AUTO_INCREMENT;primary_key;" form:"id"`
ProjectID int `json:"project_id"`
ProjectName string `json:"project_name"`
CommitID string `json:"commit_id"`
CreatedAt *time.Time `json:"created_at"`
Coverage float64 `json:"coverage"`
ArtifactsFile string `json:"artifacts_file"`
FinishedAt *time.Time `json:"finished_at"`
JobID int `json:"job_id"`
Name string `json:"name"`
Ref string `json:"ref"`
RunnerID int `json:"runner_id"`
RunnerDescription string `json:"runner_description"`
Stage string `json:"stage"`
StartedAt *time.Time `json:"started_at"`
Status string `json:"status"`
Tag bool `json:"tag"`
UserID int `json:"user_id"`
UserName string `json:"user_name"`
WebURL string `json:"web_url"`
}
// StatisticsMrs ...
type StatisticsMrs struct {
ID int `json:"id" gorm:"AUTO_INCREMENT;primary_key;" form:"id"`
MRID int `json:"mr_id"`
MRIID int `json:"mr_iid" gorm:"column:mr_iid"`
TargetBranch string `json:"target_branch"`
SourceBranch string `json:"source_branch"`
ProjectID int `json:"project_id"`
ProjectName string `json:"project_name"`
Title string `json:"title"`
State string `json:"state"`
CreatedAt *time.Time `json:"created_at"`
UpdatedAt *time.Time `json:"updated_at"`
Upvotes int `json:"upvotes"`
Downvotes int `json:"downvotes"`
AuthorID int `json:"author_id"`
AuthorName string `json:"author_name"`
AssigneeID int `json:"assignee_id"`
AssigneeName string `json:"assignee_name"`
SourceProjectID int `json:"source_project_id"`
TargetProjectID int `json:"target_project_id"`
Labels string `json:"labels"`
Description string `json:"description"`
WorkInProgress bool `json:"work_in_progress"`
MilestoneID int `json:"milestone_id"`
MergeWhenPipelineSucceeds bool `json:"merge_when_pipeline_succeeds"`
MergeStatus string `json:"merge_status"`
MergedByID int `json:"merged_by_id"`
MergedByName string `json:"merged_by_name"`
MergedAt *time.Time `json:"merged_at"`
ClosedByID int `json:"closed_by_id"`
ClosedAt *time.Time `json:"closed_at"`
Subscribed bool `json:"subscribed"`
SHA string `json:"sha"`
MergeCommitSHA string `json:"merge_commit_sha"`
UserNotesCount int `json:"user_notes_count"`
ChangesCount string `json:"changes_count"`
ShouldRemoveSourceBranch bool `json:"should_remove_source_branch"`
ForceRemoveSourceBranch bool `json:"force_remove_source_branch"`
WebURL string `json:"web_url"`
DiscussionLocked bool `json:"discussion_locked"`
Changes string `json:"changes"`
TimeStatsHumanTimeEstimate string `json:"time_stats_human_time_estimate"`
TimeStatsHumanTotalTimeSpent string `json:"time_stats_human_total_time_spent"`
TimeStatsTimeEstimate int `json:"time_stats_time_estimate"`
TimeStatsTotalTimeSpent int `json:"time_stats_total_time_spent"`
Squash bool `json:"squash"`
PipelineID int `json:"pipeline_id"`
ChangeAdd int `json:"change_add"`
ChangeDel int `json:"change_del"`
TotalDiscussion int `json:"total_discussion"`
SolvedDiscussion int `json:"solved_discussion"`
}
// AggregateMrReviewer ...
type AggregateMrReviewer struct {
ID int `json:"id" gorm:"AUTO_INCREMENT;primary_key;" form:"id"`
ProjectID int `json:"project_id"`
ProjectName string `json:"project_name"`
MrIID int `json:"mr_iid" gorm:"column:mr_iid"`
Title string `json:"title"`
WebUrl string `json:"web_url"`
AuthorName string `json:"author_name"`
ReviewerID int `json:"reviewer_id"`
ReviewerName string `json:"reviewer_name"`
ReviewType string `json:"review_type"`
ReviewID int `json:"review_id"`
ReviewCommand string `json:"review_command"`
CreatedAt *time.Time `json:"created_at"`
UserType string `json:"type"`
ApproveTime int `json:"approve_time"` // SpentTime 其实是反应时间+review时间
MergeTime int `json:"merge_time"`
}
// StatisticsPipeline ...
type StatisticsPipeline struct {
ID int `json:"id" gorm:"AUTO_INCREMENT;primary_key;" form:"id"`
PipelineID int `json:"pipeline_id" gorm:"column:pipeline_id"`
ProjectName string `json:"project_name"`
ProjectID int `json:"project_id" gorm:"column:project_id"`
Status string `json:"status" gorm:"column:status" default:""`
Ref string `json:"ref" gorm:"column:ref"`
Tag bool `json:"tag" gorm:"column:tag"`
User string `json:"user" gorm:"column:user"`
UpdatedAt *time.Time `json:"updated_at" gorm:"column:updated_at"`
CreatedAt *time.Time `json:"created_at" gorm:"column:created_at"`
StartedAt *time.Time `json:"started_at" gorm:"column:started_at"`
FinishedAt *time.Time `json:"finished_at" gorm:"column:finished_at"`
CommittedAt *time.Time `json:"committed_at" gorm:"column:committed_at"`
Duration int `json:"duration" gorm:"column:duration"`
Coverage string `json:"coverage" gorm:"column:coverage"`
DurationTime int `json:"duration_time"`
}
// StatisticsNotes ...
type StatisticsNotes struct {
ID int `json:"id" gorm:"AUTO_INCREMENT;primary_key;" form:"id"`
ProjectID int `json:"project_id"`
ProjectName string `json:"project_name"`
MrIID int `json:"mr_iid" gorm:"column:mr_iid"`
IssueIID int `json:"issue_iid" gorm:"column:issue_iid"`
NoteID int `json:"note_id"`
Body string `json:"body"`
Attachment string `json:"attachment"`
Title string `json:"title"`
FileName string `json:"file_name"`
AuthorID int `json:"author_id"`
AuthorName string `json:"author_name"`
System bool `json:"system"`
ExpiresAt *time.Time `json:"expires_at"`
UpdatedAt *time.Time `json:"updated_at"`
CreatedAt *time.Time `json:"created_at"`
NoteableID int `json:"noteable_id"`
NoteableType string `json:"noteable_type"`
Position string `json:"position"`
Resolvable bool `json:"resolvable"`
Resolved bool `json:"resolved"`
ResolvedByID int `json:"resolved_by_id"`
ResolvedByName string `json:"resolved_by_name"`
NoteableIID int `json:"noteable_iid" gorm:"column:noteable_iid"`
}
// StatisticsMembers ...
type StatisticsMembers struct {
ID int `json:"id" gorm:"AUTO_INCREMENT;primary_key;" form:"id"`
ProjectID int `json:"project_id"`
ProjectName string `json:"project_name"`
MemberID int `json:"member_id"`
Username string `json:"username"`
Email string `json:"email"`
Name string `json:"name"`
State string `json:"state"`
CreatedAt *time.Time `json:"created_at"`
AccessLevel int `json:"access_level"`
}
// StatisticsMRAwardEmojis ...
type StatisticsMRAwardEmojis struct {
ID int `json:"id" gorm:"AUTO_INCREMENT;primary_key;" form:"id"`
ProjectID int `json:"project_id"`
ProjectName string `json:"project_name"`
MrIID int `json:"mr_iid" gorm:"column:mr_iid"`
AwardEmojiID int `json:"award_emoji_id"`
Name string `json:"name"`
UserID int `json:"user_id"`
UserName string `json:"user_name"`
CreatedAt *time.Time `json:"created_at"`
UpdatedAt *time.Time `json:"updated_at"`
AwardableID int `json:"awardable_id"`
AwardableType string `json:"awardable_type"`
}
// StatisticsDiscussions ...
type StatisticsDiscussions struct {
ID int `json:"id" gorm:"AUTO_INCREMENT;primary_key;" form:"id"`
ProjectID int `json:"project_id"`
ProjectName string `json:"project_name"`
MrIID int `json:"mr_iid" gorm:"column:mr_iid"`
DiscussionID string `json:"discussion_id"`
IndividualNote bool `json:"individual_note"`
Notes string `json:"notes"`
}