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 ChickinBaseDTO struct { Id uint `json:"id"` Name string `json:"name"` } type ChickinSimpleDTO struct { Id uint `json:"id"` Name string `json:"name"` } type ChickinListDTO struct { ChickinBaseDTO CreatedUser *userDTO.UserBaseDTO `json:"created_user"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` } type ChickinDetailDTO struct { ChickinListDTO } // === Mapper Functions === func ToChickinBaseDTO(e entity.ProjectChickin) ChickinBaseDTO { return ChickinBaseDTO{ Id: e.Id, } } func ToChickinSimpleDTO(e entity.ProjectChickin) ChickinSimpleDTO { return ChickinSimpleDTO{ Id: e.Id, } } func ToChickinListDTO(e entity.ProjectChickin) ChickinListDTO { var createdUser *userDTO.UserBaseDTO if e.CreatedUser.Id != 0 { mapped := userDTO.ToUserBaseDTO(e.CreatedUser) createdUser = &mapped } return ChickinListDTO{ ChickinBaseDTO: ToChickinBaseDTO(e), CreatedAt: e.CreatedAt, UpdatedAt: e.UpdatedAt, CreatedUser: createdUser, } } func ToChickinListDTOs(e []entity.ProjectChickin) []ChickinListDTO { result := make([]ChickinListDTO, len(e)) for i, r := range e { result[i] = ToChickinListDTO(r) } return result } func ToChickinSimpleDTOs(e []entity.ProjectChickin) []ChickinSimpleDTO { result := make([]ChickinSimpleDTO, len(e)) for i, r := range e { result[i] = ToChickinSimpleDTO(r) } return result } func ToChickinDetailDTO(e entity.ProjectChickin) ChickinDetailDTO { return ChickinDetailDTO{ ChickinListDTO: ToChickinListDTO(e), } }