package controllers

// TablerMenuItem represents a single item in the navbar menu
type TablerMenuItem struct {
	Title     string            `json:"title"`
	TitleLong string            `json:"title-long,omitempty"`
	Icon      string            `json:"icon,omitempty"`
	URL       string            `json:"url,omitempty"`
	Badge     string            `json:"badge,omitempty"`
	Color     string            `json:"color,omitempty"`
	Active    bool              `json:"active,omitempty"`
	Disabled  bool              `json:"disabled,omitempty"`
	Columns   int               `json:"columns,omitempty"`
	Children  []*TablerMenuItem `json:"children,omitempty"`
}

// TablerMenu is a map of menu sections keyed by identifier
type TablerMenu map[string]*TablerMenuItem

// TablerPageData holds the common data for all tabler pages
type TablerPageData struct {
	PageTitle       string
	PageDescription string
	BodyClass       string
	Content         interface{}
	// Default layout fields
	Sidebar           bool
	ShowTopbar        bool
	WrapperFull       bool
	ContainerCentered bool
	ContainerClass    string
	// Page header
	PageHeader   string
	PagePretitle string
	// Navbar fields
	UserName    string
	UserRole    string
	NavbarMenu  TablerMenu
	CurrentPage string
}
