Files
assetx/webapp-back/models/user.go

28 lines
1.1 KiB
Go
Raw Permalink Normal View History

package models
import (
"time"
)
// User represents the users table
// Web3 native: wallet_address is the primary key (no numeric id, no auth_user_id)
type User struct {
WalletAddress string `gorm:"primaryKey;size:42" json:"wallet_address"`
Nickname string `gorm:"size:100" json:"nickname"`
Avatar string `gorm:"type:text" json:"avatar"`
Bio string `gorm:"type:text" json:"bio"`
ReferrerWallet *string `gorm:"size:42;index" json:"referrer_wallet,omitempty"`
InviteCode string `gorm:"size:20;unique;index" json:"invite_code"`
DirectInvitesCount int `gorm:"default:0" json:"direct_invites_count"`
MemberTier string `gorm:"size:50;default:'Bronze'" json:"member_tier"`
VIPLevel int `gorm:"default:1" json:"vip_level"`
TotalPoints int64 `gorm:"default:0" json:"total_points"`
GlobalRank *int `gorm:"index" json:"global_rank,omitempty"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
func (User) TableName() string {
return "users"
}