grafana/pkg/services/dashboardversion/model.go

76 lines
2.6 KiB
Go

package dashver
import (
"errors"
"time"
"github.com/grafana/grafana/pkg/components/simplejson"
)
var (
ErrDashboardVersionNotFound = errors.New("dashboard version not found")
ErrNoVersionsForDashboardID = errors.New("no dashboard versions found for the given DashboardId")
)
type DashboardVersion struct {
ID int64 `json:"id" xorm:"pk autoincr 'id'" db:"id"`
DashboardID int64 `json:"dashboardId" xorm:"dashboard_id" db:"dashboard_id"`
ParentVersion int `json:"parentVersion" db:"parent_version"`
RestoredFrom int `json:"restoredFrom" db:"restored_from"`
Version int `json:"version" db:"version"`
Created time.Time `json:"created" db:"created"`
CreatedBy int64 `json:"createdBy" db:"created_by"`
Message string `json:"message" db:"message"`
Data *simplejson.Json `json:"data" db:"data"`
}
type GetDashboardVersionQuery struct {
DashboardID int64
OrgID int64
Version int
}
type DeleteExpiredVersionsCommand struct {
DeletedRows int64
}
type ListDashboardVersionsQuery struct {
DashboardID int64
DashboardUID string
OrgID int64
Limit int
Start int
}
type DashboardVersionDTO struct {
ID int64 `json:"id" xorm:"id" db:"id"`
DashboardID int64 `json:"dashboardId" xorm:"dashboard_id" db:"dashboard_id"`
DashboardUID string `json:"dashboardUid" xorm:"dashboard_uid" db:"dashboard_uid"`
ParentVersion int `json:"parentVersion" db:"parent_version"`
RestoredFrom int `json:"restoredFrom" db:"restored_from"`
Version int `json:"version" db:"version"`
Created time.Time `json:"created" db:"created"`
// Since we get created by with left join user table, this can be null technically,
// but in reality it will always be set, when database is not corrupted.
CreatedBy *string `json:"createdBy" db:"created_by_login"`
Message string `json:"message" db:"message"`
}
// DashboardVersionMeta extends the dashboard version model with the names
// associated with the UserIds, overriding the field with the same name from
// the DashboardVersion model.
type DashboardVersionMeta struct {
ID int64 `json:"id"`
DashboardID int64 `json:"dashboardId"`
DashboardUID string `json:"uid"`
ParentVersion int `json:"parentVersion"`
RestoredFrom int `json:"restoredFrom"`
Version int `json:"version"`
Created time.Time `json:"created"`
Message string `json:"message"`
Data *simplejson.Json `json:"data"`
CreatedBy string `json:"createdBy"`
}