feat: update QuarantineResponse and QuarantineLineResponse to use pkgdto.IdNameResponse for better structure
Deploy Application / deploy (push) Successful in 20s Details

This commit is contained in:
Habib Fatkhul Rohman 2025-12-01 11:51:13 +07:00
parent 6fb7218de7
commit 0abdc2ae6f
1 changed files with 25 additions and 30 deletions

View File

@ -2,6 +2,7 @@ package dto
import ( import (
"github.com/Caknoooo/go-gin-clean-starter/database/entities" "github.com/Caknoooo/go-gin-clean-starter/database/entities"
pkgdto "github.com/Caknoooo/go-gin-clean-starter/pkg/dto"
"github.com/Caknoooo/go-gin-clean-starter/pkg/utils" "github.com/Caknoooo/go-gin-clean-starter/pkg/utils"
) )
@ -68,29 +69,26 @@ type QuarantineLineUpdateRequest struct {
} }
type QuarantineResponse struct { type QuarantineResponse struct {
ID string `json:"id"` ID string `json:"id"`
DocumentNumber string `json:"document_number"` DocumentNumber string `json:"document_number"`
DocumentDate string `json:"document_date"` DocumentDate string `json:"document_date"`
Status string `json:"status"` Status string `json:"status"`
WarehouseID string `json:"warehouse_id"` Warehouse pkgdto.IdNameResponse `json:"warehouse"`
ZonaID string `json:"zona_id"` Zona pkgdto.IdNameResponse `json:"zona"`
ClientID string `json:"client_id"` Client pkgdto.IdNameResponse `json:"client"`
Warehouse string `json:"warehouse"` // QuarantineLines []QuarantineLineResponse `json:"quarantine_lines,omitempty"`
Zona string `json:"zona"`
Client string `json:"client"`
QuarantineLines []QuarantineLineResponse `json:"quarantine_lines,omitempty"`
} }
type QuarantineLineResponse struct { type QuarantineLineResponse struct {
ID string `json:"id"` ID string `json:"id"`
QuarantineID string `json:"quarantine_id"` QuarantineID string `json:"quarantine_id"`
StorageID string `json:"storage_id"` StorageID string `json:"storage_id"`
ProductID string `json:"product_id"` ProductID string `json:"product_id"`
ClientID string `json:"client_id"` ClientID string `json:"client_id"`
Product string `json:"product"` Product pkgdto.IdNameResponse `json:"product"`
Storage string `json:"storage"` Storage pkgdto.IdNameResponse `json:"storage"`
Quarantine string `json:"quarantine"` Quarantine pkgdto.IdNameResponse `json:"quarantine"`
Client string `json:"client"` Client pkgdto.IdNameResponse `json:"client"`
} }
func MapQuarantineToResponse(entity entities.TInventoryQuarantineEntity, lines []entities.TInventoryQuarantineLineEntity) QuarantineResponse { func MapQuarantineToResponse(entity entities.TInventoryQuarantineEntity, lines []entities.TInventoryQuarantineLineEntity) QuarantineResponse {
@ -99,12 +97,9 @@ func MapQuarantineToResponse(entity entities.TInventoryQuarantineEntity, lines [
DocumentNumber: entity.DocumentNumber, DocumentNumber: entity.DocumentNumber,
DocumentDate: utils.DateTimeToString(entity.DocumentDate), DocumentDate: utils.DateTimeToString(entity.DocumentDate),
Status: entity.Status, Status: entity.Status,
WarehouseID: entity.WarehouseID.String(), Warehouse: pkgdto.IdNameResponse{ID: entity.WarehouseID.String(), Name: entity.Warehouse.Name},
ZonaID: entity.ZonaID.String(), Zona: pkgdto.IdNameResponse{ID: entity.ZonaID.String(), Name: entity.Zona.Name},
ClientID: entity.ClientID.String(), Client: pkgdto.IdNameResponse{ID: entity.ClientID.String(), Name: entity.Client.Name},
Warehouse: entity.Warehouse.Name,
Zona: entity.Zona.Name,
Client: entity.Client.Name,
} }
return resp return resp
} }
@ -116,10 +111,10 @@ func MapQuarantineLineToResponse(line entities.TInventoryQuarantineLineEntity) Q
StorageID: line.StorageID.String(), StorageID: line.StorageID.String(),
ProductID: line.ProductID.String(), ProductID: line.ProductID.String(),
ClientID: line.ClientID.String(), ClientID: line.ClientID.String(),
Product: line.Product.Name, Product: pkgdto.IdNameResponse{ID: line.ProductID.String(), Name: line.Product.Name},
Storage: line.StorageID.String(), // gunakan StorageID, karena field Name tidak ada Storage: pkgdto.IdNameResponse{ID: line.StorageID.String(), Name: "line.Storage.Name"},
Quarantine: line.Quarantine.DocumentNumber, Quarantine: pkgdto.IdNameResponse{ID: line.QuarantineID.String(), Name: line.Quarantine.DocumentNumber},
Client: line.Client.Name, Client: pkgdto.IdNameResponse{ID: line.ClientID.String(), Name: line.Client.Name},
} }
} }