package models import ( "time" ) type User struct { Id uint `gorm:"primaryKey" json:"id"` Name string `gorm:"column:user_name" json:"user"` Email string `gorm:"column:email" json:"email"` RoleID *uint `gorm:"column:roleId" json:"roleId,omitempty"` Role *Role `gorm:"foreignKey:RoleID" json:"role,omitempty"` Password string `gorm:"column:password" json:"password"` NewPassword string `gorm:"-" json:"newPassword,omitempty"` Expiration string `gorm:"column:expiration" json:"expiration,omitempty"` Settings Settings `gorm:"type:json" json:"settings"` } func (u *User) IsValid() bool { return u.Name != "" } func (u *User) ExpirationIsValid() bool { if u.Expiration == "" || u.Expiration == "never" { return true } loc := time.Now().Location() parsedTime, _ := time.ParseInLocation("2006-01-02 15:04:05", u.Expiration, loc) return parsedTime.After(time.Now()) }