package schemas type RegisterRequest struct { Email string `json:"email" binding:"required,email"` Username string `json:"username" binding:"required,min=2,max=50"` Password string `json:"password" binding:"required,min=6"` InviteCode string `json:"invite_code"` } type LoginRequest struct { Email string `json:"email" binding:"required,email"` Password string `json:"password" binding:"required"` } type ForgotPasswordRequest struct { Email string `json:"email" binding:"required,email"` } type ResetPasswordRequest struct { Email string `json:"email" binding:"required,email"` Code string `json:"code" binding:"required"` Password string `json:"password" binding:"required,min=6"` } type VerifyEmailRequest struct { Email string `json:"email" binding:"required,email"` Code string `json:"code" binding:"required"` } type ChangePasswordRequest struct { OldPassword string `json:"old_password" binding:"required"` NewPassword string `json:"new_password" binding:"required,min=6"` } type AuthResponse struct { Token string `json:"token"` User UserResponse `json:"user"` } type UserResponse struct { ID uint `json:"id"` Username string `json:"username"` Email string `json:"email"` Role string `json:"role"` PurchaseCredits int `json:"purchase_credits"` InviteCode string `json:"invite_code"` EmailVerified bool `json:"email_verified"` } type InstallRequest struct { Username string `json:"username" binding:"required,min=2,max=50"` Email string `json:"email" binding:"required,email"` Password string `json:"password" binding:"required,min=6"` }