package main import ( "time" "gorm.io/gorm" ) type User struct { ID uint `gorm:"primaryKey" json:"id"` Name string `gorm:"size:100;not null" json:"name"` Email string `gorm:"size:100;unique;not null" json:"email"` Password string `gorm:"size:255;not null" json:"-"` // 不在 JSON 中显示 Phone string `gorm:"size:20" json:"phone,omitempty"` Age int `json:"age,omitempty"` Active bool `gorm:"default:true" json:"active"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` DeletedAt gorm.DeletedAt `json:"-"` } func (User) TableName() string { return "users" } // 请求体 type RegisterRequest struct { Name string `json:"name" binding:"required"` Email string `json:"email" binding:"required,email"` Password string `json:"password" binding:"required,min=6"` Phone string `json:"phone" binding:"omitempty,len=11"` } type LoginRequest struct { Email string `json:"email" binding:"required,email"` Password string `json:"password" binding:"required"` } type LoginResponse struct { Token string `json:"token"` User User `json:"user"` }