Files
lti-api/internal/modules/users/dto/user.dto.go
T
2025-09-30 14:45:54 +07:00

52 lines
905 B
Go

package dto
import (
"time"
model "gitlab.com/mbugroup/lti-api.git/internal/modules/users/models"
)
// === DTO Structs ===
type UserBaseDTO struct {
Id uint `json:"id"`
IdUser int64 `json:"id_user"`
Email string `json:"email"`
Name string `json:"name"`
}
type UserListDTO struct {
UserBaseDTO
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
type UserDetailDTO struct {
UserListDTO
}
// === Mapper Functions ===
func ToUserBaseDTO(m model.User) UserBaseDTO {
return UserBaseDTO{
Id: m.Id,
Name: m.Name,
}
}
func ToUserListDTO(m model.User) UserListDTO {
return UserListDTO{
UserBaseDTO: ToUserBaseDTO(m),
CreatedAt: m.CreatedAt,
UpdatedAt: m.UpdatedAt,
}
}
func ToUserListDTOs(m []model.User) []UserListDTO {
result := make([]UserListDTO, len(m))
for i, r := range m {
result[i] = ToUserListDTO(r)
}
return result
}