mirror of
https://gitlab.com/mbugroup/lti-api.git
synced 2026-05-24 23:35:43 +00:00
136 lines
3.1 KiB
Go
136 lines
3.1 KiB
Go
package dto
|
|
|
|
import (
|
|
"time"
|
|
|
|
entity "gitlab.com/mbugroup/lti-api.git/internal/entities"
|
|
)
|
|
|
|
// === DTO Structs ===
|
|
|
|
type ChickinBaseDTO struct {
|
|
Id uint `json:"id"`
|
|
ProjectFlocId uint `json:"project_floc_id"`
|
|
ChickInDate time.Time `json:"chick_in_date"`
|
|
Quantity float64 `json:"quantity"`
|
|
Note string `json:"note"`
|
|
}
|
|
|
|
type ChickinSimpleDTO struct {
|
|
Id uint `json:"id"`
|
|
ProjectFlocId uint `json:"project_floc_id"`
|
|
ChickInDate time.Time `json:"chick_in_date"`
|
|
Quantity float64 `json:"quantity"`
|
|
Note string `json:"note"`
|
|
CreatedBy uint `json:"created_by"`
|
|
}
|
|
|
|
type UserBaseDTO struct {
|
|
Id uint `json:"id"`
|
|
Name string `json:"name"`
|
|
}
|
|
|
|
type ChickinListDTO struct {
|
|
ChickinBaseDTO
|
|
ProjectFlock *ProjectFlockDTO `json:"project_flock"`
|
|
CreatedUser *UserBaseDTO `json:"created_user"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
type ProjectFlockDTO struct {
|
|
Id uint `json:"id"`
|
|
Period int `json:"period"`
|
|
FlockId uint `json:"flock_id"`
|
|
FlockName string `json:"flock_name"`
|
|
}
|
|
|
|
// === Mapper Functions ===
|
|
|
|
func ToProjectFlockDTO(e entity.ProjectFlock) ProjectFlockDTO {
|
|
return ProjectFlockDTO{
|
|
Id: e.Id,
|
|
Period: e.Period,
|
|
FlockId: e.FlockId,
|
|
FlockName: e.Flock.Name,
|
|
}
|
|
}
|
|
|
|
type ChickinDetailDTO struct {
|
|
ChickinListDTO
|
|
}
|
|
|
|
// === Mapper Functions ===
|
|
|
|
func ToChickinBaseDTO(e entity.ProjectChickin) ChickinBaseDTO {
|
|
return ChickinBaseDTO{
|
|
Id: e.Id,
|
|
ProjectFlocId: e.ProjectFlocId,
|
|
ChickInDate: e.ChickInDate,
|
|
Quantity: e.Quantity,
|
|
Note: e.Note,
|
|
}
|
|
}
|
|
|
|
func ToChickinSimpleDTO(e entity.ProjectChickin) ChickinSimpleDTO {
|
|
return ChickinSimpleDTO{
|
|
Id: e.Id,
|
|
ProjectFlocId: e.ProjectFlocId,
|
|
ChickInDate: e.ChickInDate,
|
|
Quantity: e.Quantity,
|
|
Note: e.Note,
|
|
CreatedBy: e.CreatedBy,
|
|
}
|
|
}
|
|
|
|
func ToChickinListDTO(e entity.ProjectChickin) ChickinListDTO {
|
|
var createdUser *UserBaseDTO
|
|
if e.CreatedUser.Id != 0 {
|
|
mapped := ToUserBaseDTO(e.CreatedUser)
|
|
createdUser = &mapped
|
|
}
|
|
|
|
var projectFlock *ProjectFlockDTO
|
|
if e.ProjectFlock.Id != 0 {
|
|
mapped := ToProjectFlockDTO(e.ProjectFlock)
|
|
projectFlock = &mapped
|
|
}
|
|
|
|
return ChickinListDTO{
|
|
ChickinBaseDTO: ToChickinBaseDTO(e),
|
|
ProjectFlock: projectFlock,
|
|
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),
|
|
}
|
|
}
|
|
|
|
func ToUserBaseDTO(e entity.User) UserBaseDTO {
|
|
return UserBaseDTO{
|
|
Id: e.Id,
|
|
Name: e.Name,
|
|
}
|
|
}
|