Files
nixcn-cms/data/user.go
Asai Neko 32a27d974a Add redis driver
Signed-off-by: Asai Neko <sugar@sne.moe>
2025-12-25 14:52:12 +08:00

43 lines
1.1 KiB
Go

package data
import (
"time"
"github.com/google/uuid"
)
type User struct {
Id uint `json:"id" gorm:"primarykey;autoincrement"`
UUID uuid.UUID `json:"uuid" gorm:"type:uuid;uniqueindex;not null"`
UserId uuid.UUID `json:"user_id" gorm:"type:uuid;uniqueindex;not null"`
Email string `json:"email" gorm:"type:varchar(255);uniqueindex;not null"`
Type string `json:"type" gorm:"type:varchar(32);index;not null"`
Nickname string `json:"nickname"`
Subtitle string `json:"subtitle"`
Avatar string `json:"avatar"`
Checkin time.Time `json:"checkin" gorm:"index"`
}
func (self *User) GetByEmail(email string) error {
if err := Database.Where("email = ?", email).First(&self).Error; err != nil {
return err
}
return nil
}
func (self *User) GetByUserId(userId uuid.UUID) error {
if err := Database.Where("user_id = ?", userId).First(&self).Error; err != nil {
return err
}
return nil
}
func (self *User) SetCheckinState(userId uuid.UUID, time time.Time) error {
if err := Database.Where("user_id = ?", userId).First(&self).Error; err != nil {
return err
}
self.Checkin = time
Database.Save(&self)
return nil
}