Files
tp/main_dc/yalarba/api_yal/internal/domain/auth/dto.go
T
valitovgaziz 21c6c03b27 On branch main
modified:   internal/database/psql_db.go
	modified:   internal/domain/auth/dto.go
	modified:   internal/domain/auth/handler.go
	modified:   internal/domain/auth/router.go
	modified:   internal/domain/auth/servcie.go
	new file:   internal/models/password_reset.go
	modified:   internal/repository/account_repository.go
	modified:   internal/repository/account_repository_impl.go
auth domain is implemented but not tested
2026-03-31 05:29:46 +05:00

77 lines
2.7 KiB
Go

// 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")
)