user.go 974 B

123456789101112131415161718192021222324252627282930
  1. package model
  2. type User struct {
  3. IdModel
  4. Username string `json:"username" gorm:"default:'';not null;uniqueIndex"`
  5. Email string `json:"email" gorm:"default:'';not null;index"`
  6. // Email string `json:"email" `
  7. Password string `json:"-" gorm:"default:'';not null;"`
  8. Nickname string `json:"nickname" gorm:"default:'';not null;"`
  9. Avatar string `json:"avatar" gorm:"default:'';not null;"`
  10. GroupId uint `json:"group_id" gorm:"default:0;not null;index"`
  11. IsAdmin *bool `json:"is_admin" gorm:"default:0;not null;"`
  12. Status StatusCode `json:"status" gorm:"default:1;not null;"`
  13. TimeModel
  14. }
  15. // BeforeSave 钩子用于确保 email 字段有合理的默认值
  16. //func (u *User) BeforeSave(tx *gorm.DB) (err error) {
  17. // // 如果 email 为空,设置为默认值
  18. // if u.Email == "" {
  19. // u.Email = fmt.Sprintf("%s@example.com", u.Username)
  20. // }
  21. // return nil
  22. //}
  23. type UserList struct {
  24. Users []*User `json:"list,omitempty"`
  25. Pagination
  26. }