package dto import ( "time" entity "gitlab.com/mbugroup/lti-api.git/internal/entities" userDTO "gitlab.com/mbugroup/lti-api.git/internal/modules/users/dto" ) // === DTO Structs === type AdjustmentBaseDTO struct { Id uint `json:"id"` Name string `json:"name"` } type AdjustmentListDTO struct { AdjustmentBaseDTO CreatedUser *userDTO.UserBaseDTO `json:"created_user"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` } type AdjustmentDetailDTO struct { AdjustmentListDTO } // === Mapper Functions === func ToAdjustmentBaseDTO(e entity.Adjustment) AdjustmentBaseDTO { return AdjustmentBaseDTO{ Id: e.Id, Name: e.Name, } } func ToAdjustmentListDTO(e entity.Adjustment) AdjustmentListDTO { var createdUser *userDTO.UserBaseDTO if e.CreatedUser.Id != 0 { mapped := userDTO.ToUserBaseDTO(e.CreatedUser) createdUser = &mapped } return AdjustmentListDTO{ AdjustmentBaseDTO: ToAdjustmentBaseDTO(e), CreatedAt: e.CreatedAt, UpdatedAt: e.UpdatedAt, CreatedUser: createdUser, } } func ToAdjustmentListDTOs(e []entity.Adjustment) []AdjustmentListDTO { result := make([]AdjustmentListDTO, len(e)) for i, r := range e { result[i] = ToAdjustmentListDTO(r) } return result } func ToAdjustmentDetailDTO(e entity.Adjustment) AdjustmentDetailDTO { return AdjustmentDetailDTO{ AdjustmentListDTO: ToAdjustmentListDTO(e), } }