package v1

import (
	"database/sql"
	"time"

	"gorm.io/gorm"
)

type Dashboard struct {
	ID              uint64         `json:"id" gorm:"primary_key;AUTO_INCREMENT;column:id"`
	Slug            string         `json:"slug" gorm:"column:slug"`
	CreatedAt       time.Time      `json:"createdAt" gorm:"column:createdAt"`
	UpdatedAt       sql.NullTime   `json:"updatedAt" gorm:"column:updatedAt"`
	DeletedAt       gorm.DeletedAt `json:"deletedAt" gorm:"column:deletedAt"`
	Title           string         `json:"title" gorm:"column:title"`
	IconKey         string         `json:"iconKey" gorm:"column:iconKey"`
	Description     string         `json:"description" gorm:"column:description"`
	Config          string         `json:"config" gorm:"column:config"`
	ConfigVer       string         `json:"configVer" gorm:"column:configVer"`
	PermissionLevel int            `json:"permissionLevel" gorm:"column:permissionLevel"`
	AuthorID        uint64         `json:"authorID" gorm:"column:authorID"`
	Priority        int64          `json:"priority" gorm:"column:priority"`
}

type DashboardList struct {
	Items []*Dashboard `json:"items"`
}

func (u *Dashboard) TableName() string {
	return "dashboard"
}
