package account type Account struct { ID uint `gorm:"primaryKey" json:"id"` Username string `gorm:"unique" json:"username"` Password string `json:"-"` Token string `json:"-"` RefreshToken string `json:"-"` AvatarURL string `gorm:"type:varchar(512)" json:"avatar_url,omitempty"` Bio string `gorm:"type:varchar(255)" json:"bio,omitempty"` } type CreateAccountRequest struct { Username string `json:"username"` Password string `json:"password"` } type RenameRequest struct { NewUsername string `json:"new_username"` } type FindByIDRequest struct { ID uint `json:"id"` } type FindByIDResponse struct { ID uint `json:"id"` Username string `json:"username"` AvatarURL string `json:"avatar_url,omitempty"` Bio string `json:"bio,omitempty"` } type FindByUsernameRequest struct { Username string `json:"username"` } type FindByUsernameResponse struct { ID uint `json:"id"` Username string `json:"username"` } type ChangePasswordRequest struct { Username string `json:"username"` OldPassword string `json:"old_password"` NewPassword string `json:"new_password"` } type LoginRequest struct { Username string `json:"username"` Password string `json:"password"` } type LoginResponse struct { Token string `json:"token"` RefreshToken string `json:"refresh_token"` AccountID uint `json:"account_id"` Username string `json:"username"` } type UpdateProfileRequest struct { AvatarURL string `json:"avatar_url"` Bio string `json:"bio"` } type RefreshRequest struct { RefreshToken string `json:"refresh_token"` }