forked from nixcn/nixcn-cms
39 lines
1.1 KiB
Go
39 lines
1.1 KiB
Go
package data
|
|
|
|
import "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:"uniqueindex;not null"`
|
|
Type string `json:"type" gorm:"not null"`
|
|
Nickname string `json:"nickname"`
|
|
Subtitle string `json:"subtitle"`
|
|
Avatar string `json:"avatar"`
|
|
Checkin bool `json:"checkin" gorm:"not null;default:false"`
|
|
}
|
|
|
|
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 string) error {
|
|
if err := Database.Where("user_id = ?", userId).First(&self).Error; err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (self *User) SetCheckinState(userId uuid.UUID, state bool) error {
|
|
if err := Database.Where("user_id = ?", userId).First(&self).Error; err != nil {
|
|
return err
|
|
}
|
|
self.Checkin = state
|
|
Database.Save(&self)
|
|
return nil
|
|
}
|