50 lines
1.3 KiB
Go
50 lines
1.3 KiB
Go
package model
|
|
|
|
import "time"
|
|
|
|
// UserSetting a setting for a user.
|
|
type UserSetting struct {
|
|
UserID int `gorm:"primary_key;unique_index"`
|
|
Theme string
|
|
DateLocale string
|
|
FirstDayOfTheWeek string
|
|
DateTimeInputStyle string
|
|
}
|
|
|
|
// Settings constants
|
|
const (
|
|
ThemeGruvboxDark = "GruvboxDark"
|
|
ThemeGruvboxLight = "GruvboxLight"
|
|
ThemeMaterialDark = "MaterialDark"
|
|
ThemeMaterialLight = "MaterialLight"
|
|
|
|
DateLocaleGerman = "German"
|
|
DateLocaleAmerican = "American"
|
|
DateLocaleAmerican24h = "American24h"
|
|
DateLocaleBritish = "British"
|
|
DateLocaleAustralian = "Australian"
|
|
|
|
DateTimeInputFancy = "Fancy"
|
|
DateTimeInputNative = "Native"
|
|
)
|
|
|
|
var daysOfWeek = map[string]time.Weekday{
|
|
"Sunday": time.Sunday,
|
|
"Monday": time.Monday,
|
|
"Tuesday": time.Tuesday,
|
|
"Wednesday": time.Wednesday,
|
|
"Thursday": time.Thursday,
|
|
"Friday": time.Friday,
|
|
"Saturday": time.Saturday,
|
|
}
|
|
|
|
// FirstDayOfTheWeekTimeWeekday returns the configured first day of the week.
|
|
func (s UserSetting) FirstDayOfTheWeekTimeWeekday() time.Weekday {
|
|
return daysOfWeek[s.FirstDayOfTheWeek]
|
|
}
|
|
|
|
// LastDayOfTheWeekTimeWeekday returns the configured last day of the week.
|
|
func (s UserSetting) LastDayOfTheWeekTimeWeekday() time.Weekday {
|
|
return daysOfWeek[(daysOfWeek[s.FirstDayOfTheWeek] - 1).String()]
|
|
}
|