mirror of
https://gitlab.com/mbugroup/lti-api.git
synced 2026-05-21 22:05:44 +00:00
115 lines
3.2 KiB
Go
115 lines
3.2 KiB
Go
package dto
|
|
|
|
import (
|
|
"time"
|
|
|
|
entity "gitlab.com/mbugroup/lti-api.git/internal/entities"
|
|
locationDTO "gitlab.com/mbugroup/lti-api.git/internal/modules/master/locations/dto"
|
|
userDTO "gitlab.com/mbugroup/lti-api.git/internal/modules/users/dto"
|
|
)
|
|
|
|
type KandangGroupRelationDTO struct {
|
|
Id uint `json:"id"`
|
|
Name string `json:"name"`
|
|
Status string `json:"status"`
|
|
Location *locationDTO.LocationRelationDTO `json:"location,omitempty"`
|
|
Pic *userDTO.UserRelationDTO `json:"pic,omitempty"`
|
|
}
|
|
|
|
type RecordingKandangDTO struct {
|
|
Id uint `json:"id"`
|
|
Name string `json:"name"`
|
|
}
|
|
|
|
type KandangGroupListDTO struct {
|
|
Id uint `json:"id"`
|
|
Name string `json:"name"`
|
|
Status string `json:"status"`
|
|
Location locationDTO.LocationRelationDTO `json:"location"`
|
|
Pic userDTO.UserRelationDTO `json:"pic"`
|
|
CreatedUser userDTO.UserRelationDTO `json:"created_user"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
RecordingKandangs []RecordingKandangDTO `json:"recording_kandangs"`
|
|
}
|
|
|
|
type KandangGroupDetailDTO struct {
|
|
KandangGroupListDTO
|
|
}
|
|
|
|
func ToKandangGroupRelationDTO(e entity.KandangGroup) KandangGroupRelationDTO {
|
|
var location *locationDTO.LocationRelationDTO
|
|
if e.Location.Id != 0 {
|
|
mapped := locationDTO.ToLocationRelationDTO(e.Location)
|
|
location = &mapped
|
|
}
|
|
|
|
var pic *userDTO.UserRelationDTO
|
|
if e.Pic.Id != 0 {
|
|
mapped := userDTO.ToUserRelationDTO(e.Pic)
|
|
pic = &mapped
|
|
}
|
|
|
|
return KandangGroupRelationDTO{
|
|
Id: e.Id,
|
|
Name: e.Name,
|
|
Status: e.Status,
|
|
Location: location,
|
|
Pic: pic,
|
|
}
|
|
}
|
|
|
|
func ToKandangGroupListDTO(e entity.KandangGroup) KandangGroupListDTO {
|
|
var location locationDTO.LocationRelationDTO
|
|
if e.Location.Id != 0 {
|
|
mapped := locationDTO.ToLocationRelationDTO(e.Location)
|
|
location = mapped
|
|
}
|
|
|
|
var pic userDTO.UserRelationDTO
|
|
if e.Pic.Id != 0 {
|
|
mapped := userDTO.ToUserRelationDTO(e.Pic)
|
|
pic = mapped
|
|
}
|
|
|
|
var createdUser userDTO.UserRelationDTO
|
|
if e.CreatedUser.Id != 0 {
|
|
mapped := userDTO.ToUserRelationDTO(e.CreatedUser)
|
|
createdUser = mapped
|
|
}
|
|
|
|
recordingKandangs := make([]RecordingKandangDTO, 0, len(e.Kandangs))
|
|
for _, kandang := range e.Kandangs {
|
|
recordingKandangs = append(recordingKandangs, RecordingKandangDTO{
|
|
Id: kandang.Id,
|
|
Name: kandang.Name,
|
|
})
|
|
}
|
|
|
|
return KandangGroupListDTO{
|
|
Id: e.Id,
|
|
Name: e.Name,
|
|
Status: e.Status,
|
|
Location: location,
|
|
Pic: pic,
|
|
CreatedAt: e.CreatedAt,
|
|
UpdatedAt: e.UpdatedAt,
|
|
CreatedUser: createdUser,
|
|
RecordingKandangs: recordingKandangs,
|
|
}
|
|
}
|
|
|
|
func ToKandangGroupListDTOs(e []entity.KandangGroup) []KandangGroupListDTO {
|
|
result := make([]KandangGroupListDTO, len(e))
|
|
for i, r := range e {
|
|
result[i] = ToKandangGroupListDTO(r)
|
|
}
|
|
return result
|
|
}
|
|
|
|
func ToKandangGroupDetailDTO(e entity.KandangGroup) KandangGroupDetailDTO {
|
|
return KandangGroupDetailDTO{
|
|
KandangGroupListDTO: ToKandangGroupListDTO(e),
|
|
}
|
|
}
|