Files
tp/main_dc/yalarba/api_es/internal/dto/user.go
T
valitovgaziz c5b80129d3 modified: main_dc/yalarba/api_es/internal/dto/user.go
modified:   main_dc/yalarba/api_es/internal/handler/user_handler.go
	modified:   main_dc/yalarba/api_es/internal/middleware/auth.go
	modified:   main_dc/yalarba/api_es/internal/router/router.go
set authorization with cooky and bearer jwt token
2025-11-13 04:37:15 +05:00

91 lines
3.1 KiB
Go

package dto
import (
"api_es/internal/models"
"time"
)
// RegisterRequest - запрос на регистрацию
type RegisterRequest struct {
Email string `json:"email" validate:"required,email"`
Password string `json:"password" validate:"required,min=6"`
FullName string `json:"full_name" validate:"required"`
FirstName string `json:"first_name" validate:"required"`
LastName string `json:"last_name" validate:"required"`
Phone string `json:"phone"`
City string `json:"city"`
}
// LoginRequest - запрос на вход
type LoginRequest struct {
Email string `json:"email" validate:"required,email"`
Password string `json:"password" validate:"required"`
}
// UpdateUserRequest - запрос на обновление пользователя
type UpdateUserRequest struct {
FullName string `json:"full_name"`
FirstName string `json:"first_name"`
LastName string `json:"last_name"`
Phone string `json:"phone"`
City string `json:"city"`
OrganizationForm string `json:"organization_form"`
OrganizationName string `json:"organization_name"`
OrganizationShort string `json:"organization_short"`
INN string `json:"inn"`
PersonalINN string `json:"personal_inn"`
}
// UserResponse - ответ с данными пользователя
type UserResponse struct {
ID uint `json:"id"`
Email string `json:"email"`
FullName string `json:"full_name"`
FirstName string `json:"first_name"`
LastName string `json:"last_name"`
Phone string `json:"phone"`
City string `json:"city"`
OrganizationForm string `json:"organization_form"`
OrganizationName string `json:"organization_name"`
OrganizationShort string `json:"organization_short"`
INN string `json:"inn"`
PersonalINN string `json:"personal_inn"`
IsActive bool `json:"is_active"`
IsVerified bool `json:"is_verified"`
Role string `json:"role"`
CreatedAt time.Time `json:"created_at"`
}
// AuthResponse - ответ с токеном
type AuthResponse struct {
Token string `json:"token"`
User UserResponse `json:"user"`
}
// ToUserResponse преобразует модель в DTO
func ToUserResponse(user *models.User) UserResponse {
return UserResponse{
ID: user.ID,
Email: user.Email,
FullName: user.FullName,
FirstName: user.FirstName,
LastName: user.LastName,
Phone: user.Phone,
City: user.City,
OrganizationForm: user.OrganizationForm,
OrganizationName: user.OrganizationName,
OrganizationShort: user.OrganizationShort,
INN: user.INN,
PersonalINN: user.PersonalINN,
IsActive: user.IsActive,
IsVerified: user.IsVerified,
Role: user.Role,
CreatedAt: user.CreatedAt,
}
}
// dto/auth.go (добавляем если нужно)
type RefreshTokenRequest struct {
RefreshToken string `json:"refresh_token" validate:"required"`
}