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 ClosingRelationDTO struct { Id uint `json:"id"` Name string `json:"name"` } type ClosingListDTO struct { Id uint `json:"id"` Name string `json:"name"` CreatedUser *userDTO.UserRelationDTO `json:"created_user"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` } type ClosingDetailDTO struct { ClosingListDTO } // === Mapper Functions === func ToClosingRelationDTO(e entity.ProjectFlock) ClosingRelationDTO { return ClosingRelationDTO{ Id: e.Id, } } func ToClosingListDTO(e entity.ProjectFlock) ClosingListDTO { var createdUser *userDTO.UserRelationDTO if e.CreatedUser.Id != 0 { mapped := userDTO.ToUserRelationDTO(e.CreatedUser) createdUser = &mapped } return ClosingListDTO{ Id: e.Id, CreatedAt: e.CreatedAt, UpdatedAt: e.UpdatedAt, CreatedUser: createdUser, } } func ToClosingListDTOs(e []entity.ProjectFlock) []ClosingListDTO { result := make([]ClosingListDTO, len(e)) for i, r := range e { result[i] = ToClosingListDTO(r) } return result } func ToClosingDetailDTO(e entity.ProjectFlock) ClosingDetailDTO { return ClosingDetailDTO{ ClosingListDTO: ToClosingListDTO(e), } }