user.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  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. Remark string `json:"remark" gorm:"default:'';not null;"`
  14. TimeModel
  15. }
  16. // BeforeSave 钩子用于确保 email 字段有合理的默认值
  17. //func (u *User) BeforeSave(tx *gorm.DB) (err error) {
  18. // // 如果 email 为空,设置为默认值
  19. // if u.Email == "" {
  20. // u.Email = fmt.Sprintf("%s@example.com", u.Username)
  21. // }
  22. // return nil
  23. //}
  24. type UserList struct {
  25. Users []*User `json:"list,omitempty"`
  26. Pagination
  27. }
  28. var UserRouteNames = []string{
  29. "MyTagList", "MyAddressBookList", "MyInfo", "MyAddressBookCollection", "MyPeer", "MyShareRecordList", "MyLoginLog",
  30. }
  31. var AdminRouteNames = []string{"*"}