9d845c8899
- backend moved to backend directory - added and initialized frontend with vue - moved infrastructure files to infra directory
60 lines
1.5 KiB
Go
60 lines
1.5 KiB
Go
package domain
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
type UserModel struct {
|
|
ID int64
|
|
TelegramID int64
|
|
Username *string
|
|
FirstName *string
|
|
LastName *string
|
|
LanguageCode *string
|
|
CreatedAt time.Time
|
|
UpdatedAt time.Time
|
|
}
|
|
|
|
type CreateUserRequest struct {
|
|
TelegramID int64 `json:"telegram_id" validate:"required"`
|
|
Username *string `json:"username"`
|
|
FirstName *string `json:"first_name" validate:"required"`
|
|
LastName *string `json:"last_name"`
|
|
LanguageCode *string `json:"language_code"`
|
|
}
|
|
|
|
type UpdateUserRequest struct {
|
|
Username *string `json:"username"`
|
|
FirstName *string `json:"first_name"`
|
|
LastName *string `json:"last_name"`
|
|
LanguageCode *string `json:"language_code"`
|
|
}
|
|
|
|
type UserResponse struct {
|
|
ID int64 `json:"id"`
|
|
TelegramID int64 `json:"telegram_id"`
|
|
Username *string `json:"username"`
|
|
FirstName *string `json:"first_name"`
|
|
LastName *string `json:"last_name"`
|
|
LanguageCode *string `json:"language_code"`
|
|
CreatedAt string `json:"created_at"`
|
|
UpdatedAt string `json:"updated_at"`
|
|
}
|
|
|
|
type UserErrorResponse struct {
|
|
Error string `json:"error"`
|
|
}
|
|
|
|
func (response *UserResponse) ModelToResponse(u *UserModel) UserResponse {
|
|
return UserResponse{
|
|
ID: u.ID,
|
|
TelegramID: u.TelegramID,
|
|
Username: u.Username,
|
|
FirstName: u.FirstName,
|
|
LastName: u.LastName,
|
|
LanguageCode: u.LanguageCode,
|
|
CreatedAt: u.CreatedAt.Format(time.RFC3339),
|
|
UpdatedAt: u.UpdatedAt.Format(time.RFC3339),
|
|
}
|
|
}
|