Files
FamilyHUB/backend/src/domain/users.go
T
admin 9d845c8899 Restructured project
- backend moved to backend directory
- added and initialized frontend with vue
- moved infrastructure files to infra directory
2026-04-01 23:16:27 +03:00

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),
}
}