fix[BE]: fix naming on project_flock_kandang dto to standarized project

This commit is contained in:
aguhh18
2025-11-05 08:40:27 +07:00
parent 48730e1b74
commit 3a5c49c511
@@ -16,11 +16,13 @@ import (
userDTO "gitlab.com/mbugroup/lti-api.git/internal/modules/users/dto"
)
// === DTO Structs (ordered) ===
type ProjectFlockKandangBaseDTO struct {
Id uint `json:"id"`
}
type ProjectFlockCustomDTO struct {
type ProjectFlockDTO struct {
Id uint `json:"id"`
Period int `json:"period"`
Flock *flockDTO.FlockBaseDTO `json:"flock,omitempty"`
@@ -33,7 +35,7 @@ type ProjectFlockCustomDTO struct {
UpdatedAt time.Time `json:"updated_at"`
}
type KandangCustomDTO struct {
type KandangDTO struct {
Id uint `json:"id"`
Name string `json:"name"`
Status string `json:"status"`
@@ -52,8 +54,8 @@ type AvailableQtyDTO struct {
type ProjectFlockKandangListDTO struct {
ProjectFlockKandangBaseDTO
ProjectFlock *ProjectFlockCustomDTO `json:"project_flock,omitempty"`
Kandang *KandangCustomDTO `json:"kandang,omitempty"`
ProjectFlock *ProjectFlockDTO `json:"project_flock,omitempty"`
Kandang *KandangDTO `json:"kandang,omitempty"`
Chickins []chickinDTO.ChickinBaseDTO `json:"chickins,omitempty"`
AvailableQtys []AvailableQtyDTO `json:"available_qtys,omitempty"`
CreatedUser *userDTO.UserBaseDTO `json:"created_user,omitempty"`
@@ -65,18 +67,20 @@ type ProjectFlockKandangDetailDTO struct {
ProjectFlockKandangListDTO
}
// === Mapper Functions (ordered) ===
func ToProjectFlockKandangBaseDTO(e entity.ProjectFlockKandang) ProjectFlockKandangBaseDTO {
return ProjectFlockKandangBaseDTO{
Id: e.Id,
}
}
func toProjectFlockCustomDTO(pf *projectFlockDTO.ProjectFlockListDTO) *ProjectFlockCustomDTO {
func toProjectFlockDTO(pf *projectFlockDTO.ProjectFlockListDTO) *ProjectFlockDTO {
if pf == nil {
return nil
}
return &ProjectFlockCustomDTO{
return &ProjectFlockDTO{
Id: pf.Id,
Period: pf.Period,
Flock: pf.Flock,
@@ -99,28 +103,32 @@ func ToProjectFlockKandangListDTOWithAvailableQty(e entity.ProjectFlockKandang,
return ProjectFlockKandangListDTO{
ProjectFlockKandangBaseDTO: ToProjectFlockKandangBaseDTO(e),
ProjectFlock: toProjectFlockCustomDTO(projectFlockSummary),
Kandang: buildKandangFromEntity(e.Kandang),
Chickins: buildChickins(e.Chickins),
AvailableQtys: buildAvailableQtysFromRaw(availableQtysRaw),
ProjectFlock: toProjectFlockDTO(projectFlockSummary),
Kandang: toKandangDTO(e.Kandang),
Chickins: toChickinDTOs(e.Chickins),
AvailableQtys: toAvailableQtyDTOsFromRaw(availableQtysRaw),
CreatedAt: e.CreatedAt,
CreatedUser: buildCreatedUser(e.ProjectFlock),
Approval: defaultProjectFlockKandangLatestApproval(e),
CreatedUser: toCreatedUserDTO(e.ProjectFlock),
Approval: toApprovalDTO(e),
}
}
func toKandangCustomDTO(k projectFlockDTO.KandangWithProjectFlockIdDTO) KandangCustomDTO {
return KandangCustomDTO{
Id: k.Id,
Name: k.Name,
Status: k.Status,
func toKandangDTO(kandang entity.Kandang) *KandangDTO {
if kandang.Id == 0 {
return nil
}
return &KandangDTO{
Id: kandang.Id,
Name: kandang.Name,
Status: kandang.Status,
}
}
func defaultProjectFlockKandangLatestApproval(e entity.ProjectFlockKandang) *approvalDTO.ApprovalBaseDTO {
func toApprovalDTO(e entity.ProjectFlockKandang) *approvalDTO.ApprovalBaseDTO {
if e.LatestApproval != nil {
result := approvalDTO.ToApprovalDTO(*e.LatestApproval)
return &result
mapped := approvalDTO.ToApprovalDTO(*e.LatestApproval)
return &mapped
}
return nil
}
@@ -134,13 +142,13 @@ func ToProjectFlockKandangListDTO(e entity.ProjectFlockKandang) ProjectFlockKand
return ProjectFlockKandangListDTO{
ProjectFlockKandangBaseDTO: ToProjectFlockKandangBaseDTO(e),
ProjectFlock: toProjectFlockCustomDTO(projectFlockSummary),
Kandang: buildKandangFromEntity(e.Kandang),
Chickins: buildChickins(e.Chickins),
AvailableQtys: buildAvailableQtys(e.Chickins),
ProjectFlock: toProjectFlockDTO(projectFlockSummary),
Kandang: toKandangDTO(e.Kandang),
Chickins: toChickinDTOs(e.Chickins),
AvailableQtys: toAvailableQtyDTOs(e.Chickins),
CreatedAt: e.CreatedAt,
CreatedUser: buildCreatedUser(e.ProjectFlock),
Approval: defaultProjectFlockKandangLatestApproval(e),
CreatedUser: toCreatedUserDTO(e.ProjectFlock),
Approval: toApprovalDTO(e),
}
}
@@ -158,7 +166,9 @@ func ToProjectFlockKandangDetailDTO(e entity.ProjectFlockKandang) ProjectFlockKa
}
}
func buildProductWarehouseFromMap(pwData map[string]interface{}) *ProductWarehouseDTO {
// === Helper Functions (ordered) ===
func toProductWarehouseDTO(pwData map[string]interface{}) *ProductWarehouseDTO {
if pwData == nil {
return nil
}
@@ -172,17 +182,17 @@ func buildProductWarehouseFromMap(pwData map[string]interface{}) *ProductWarehou
}
if pData, ok := pwData["product"].(map[string]interface{}); ok {
dto.Product = buildProductFromMap(pData)
dto.Product = toProductDTO(pData)
}
if wData, ok := pwData["warehouse"].(map[string]interface{}); ok {
dto.Warehouse = buildWarehouseFromMap(wData)
dto.Warehouse = toWarehouseDTO(wData)
}
return dto
}
func buildProductFromMap(pData map[string]interface{}) *productDTO.ProductBaseDTO {
func toProductDTO(pData map[string]interface{}) *productDTO.ProductBaseDTO {
if pData == nil {
return nil
}
@@ -199,7 +209,7 @@ func buildProductFromMap(pData map[string]interface{}) *productDTO.ProductBaseDT
return product
}
func buildWarehouseFromMap(wData map[string]interface{}) *warehouseDTO.WarehouseBaseDTO {
func toWarehouseDTO(wData map[string]interface{}) *warehouseDTO.WarehouseBaseDTO {
if wData == nil {
return nil
}
@@ -219,7 +229,7 @@ func buildWarehouseFromMap(wData map[string]interface{}) *warehouseDTO.Warehouse
return warehouse
}
func buildCreatedUser(pf entity.ProjectFlock) *userDTO.UserBaseDTO {
func toCreatedUserDTO(pf entity.ProjectFlock) *userDTO.UserBaseDTO {
if pf.CreatedUser.Id != 0 {
mapped := userDTO.ToUserBaseDTO(pf.CreatedUser)
return &mapped
@@ -232,19 +242,7 @@ func buildCreatedUser(pf entity.ProjectFlock) *userDTO.UserBaseDTO {
return nil
}
func buildKandangFromEntity(kandang entity.Kandang) *KandangCustomDTO {
if kandang.Id == 0 {
return nil
}
return &KandangCustomDTO{
Id: kandang.Id,
Name: kandang.Name,
Status: kandang.Status,
}
}
func buildChickins(chickins []entity.ProjectChickin) []chickinDTO.ChickinBaseDTO {
func toChickinDTOs(chickins []entity.ProjectChickin) []chickinDTO.ChickinBaseDTO {
if len(chickins) == 0 {
return nil
}
@@ -256,7 +254,7 @@ func buildChickins(chickins []entity.ProjectChickin) []chickinDTO.ChickinBaseDTO
return result
}
func buildAvailableQtys(chickins []entity.ProjectChickin) []AvailableQtyDTO {
func toAvailableQtyDTOs(chickins []entity.ProjectChickin) []AvailableQtyDTO {
if len(chickins) == 0 {
return nil
}
@@ -306,7 +304,7 @@ func buildAvailableQtys(chickins []entity.ProjectChickin) []AvailableQtyDTO {
return result
}
func buildAvailableQtysFromRaw(availableQtysRaw []map[string]interface{}) []AvailableQtyDTO {
func toAvailableQtyDTOsFromRaw(availableQtysRaw []map[string]interface{}) []AvailableQtyDTO {
if len(availableQtysRaw) == 0 {
return nil
}
@@ -318,7 +316,7 @@ func buildAvailableQtysFromRaw(availableQtysRaw []map[string]interface{}) []Avai
continue
}
pwDTO := buildProductWarehouseFromMap(pwData)
pwDTO := toProductWarehouseDTO(pwData)
availableQty := 0.0
if qty, ok := v["available_qty"].(float64); ok {
availableQty = qty