uni/WEB43-diary/internal/models/user.go

45 lines
1.2 KiB
Go

package models
import (
"encoding/gob"
"strconv"
"time"
"gitea.zokki.net/zokki/uni/web43-diary/context"
"gitea.zokki.net/zokki/uni/web43-diary/internal/database"
)
type User struct {
database.SQLTable
ID uint32 `json:"id,omitempty" db:"NOT NULL PRIMARY KEY AUTO_INCREMENT"`
CreationTime time.Time `json:"creationTime,omitempty" db:"NOT NULL DEFAULT CURRENT_TIMESTAMP"`
FirstName string `json:"firstName,omitempty" db:"NOT NULL"`
LastName string `json:"lastName,omitempty" db:"NOT NULL"`
Username string `json:"username,omitempty" db:"NOT NULL UNIQUE"`
Role UserRole `json:"role,omitempty" db:"NOT NULL DEFAULT 0"`
Password string `json:"password,omitempty" dbType:"VARCHAR(128)" db:"NOT NULL"` // Hashed password
Salt string `json:"salt,omitempty" dbType:"VARCHAR(64)" db:"NOT NULL"`
}
func init() {
database.AddCreateTableQueue(&User{})
gob.Register(&User{})
}
func (user *User) LoadForeignValues(ctx *context.Context) error {
return nil
}
func (user *User) IDString() string {
return strconv.FormatUint(uint64(user.ID), 10)
}
func (user *User) Initials() string {
return user.FirstName[:1] + user.LastName[:1]
}
func (user *User) FullName() string {
return user.FirstName + " " + user.LastName
}