// dto.go package auth import ( "errors" "time" ) // RegisterRequest - запрос на регистрацию type RegisterRequest struct { Email string `json:"email" validate:"required,email"` Password string `json:"password" validate:"required,min=6"` FirstName string `json:"first_name" validate:"required"` LastName string `json:"last_name" validate:"required"` } // LoginRequest - запрос на вход type LoginRequest struct { Email string `json:"email" validate:"required,email"` Password string `json:"password" validate:"required"` } // AuthResponse структура ответа при успешной аутентификации type AuthResponse struct { Token string `json:"token"` ExpiresAt time.Time `json:"expires_at"` User UserInfo `json:"user"` } // RefreshTokenResponse структура ответа при обновлении токена type RefreshTokenResponse struct { Token string `json:"token"` ExpiresAt time.Time `json:"expires_at"` User UserInfo `json:"user"` } // ResetPasswordRequest - запрос на сброс пароля type ResetPasswordRequest struct { Email string `json:"email" validate:"required,email"` } // ResetPasswordConfirmRequest - запрос на подтверждение сброса пароля type ResetPasswordConfirmRequest struct { Token string `json:"token" validate:"required"` NewPassword string `json:"new_password" validate:"required,min=6"` } // RefreshTokenRequest - запрос на обновление токена (только для мобильных приложений) type RefreshTokenRequest struct { RefreshToken string `json:"refresh_token" validate:"required"` } // ChangePasswordRequest - запрос на смену пароля (для account домена) type ChangePasswordRequest struct { OldPassword string `json:"old_password" validate:"required"` NewPassword string `json:"new_password" validate:"required,min=6"` } // UserInfo информация о пользователе для ответа type UserInfo struct { ID uint `json:"id"` Email string `json:"email"` FirstName string `json:"first_name"` LastName string `json:"last_name"` FullName string `json:"full_name"` Role string `json:"role"` } var ( ErrUserNotFound = errors.New("user not found") ErrInvalidPassword = errors.New("invalid password") ErrUserAlreadyExists = errors.New("user with this email already exists") ErrInvalidToken = errors.New("invalid token") ErrTokenExpired = errors.New("token expired") ErrResetTokenInvalid = errors.New("reset token is invalid or expired") ErrResetTokenNotFound = errors.New("reset token not found") )