mirror of
https://gitlab.com/mbugroup/lti-api.git
synced 2026-05-20 13:31:56 +00:00
9b016dc30a
- Extend DB schema for stock transfers - Build stock transfer API (create,)
65 lines
1.6 KiB
Go
65 lines
1.6 KiB
Go
package dto
|
|
|
|
import (
|
|
"time"
|
|
|
|
entity "gitlab.com/mbugroup/lti-api.git/internal/entities"
|
|
)
|
|
|
|
// === DTO Structs ===
|
|
|
|
type TransferBaseDTO struct {
|
|
Id uint64 `json:"id"`
|
|
TransferReason string `json:"transfer_reason"`
|
|
TransferDate string `json:"transfer_date"`
|
|
SourceWarehouseId uint64 `json:"source_warehouse_id"`
|
|
DestinationWarehouseId uint64 `json:"destination_warehouse_id"`
|
|
}
|
|
|
|
type TransferListDTO struct {
|
|
TransferBaseDTO
|
|
CreatedBy uint64 `json:"created_by"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
type TransferDetailDTO struct {
|
|
TransferListDTO
|
|
// Tambahkan detail produk, deliveries, dsb jika perlu
|
|
}
|
|
|
|
// === Mapper Functions ===
|
|
|
|
func ToTransferBaseDTO(e entity.StockTransfer) TransferBaseDTO {
|
|
return TransferBaseDTO{
|
|
Id: e.Id,
|
|
TransferReason: e.Reason, // atau field lain sesuai entity
|
|
TransferDate: e.CreatedAt.Format("2006-01-02"),
|
|
SourceWarehouseId: e.FromWarehouseId,
|
|
DestinationWarehouseId: e.ToWarehouseId,
|
|
}
|
|
}
|
|
|
|
func ToTransferListDTO(e entity.StockTransfer) TransferListDTO {
|
|
return TransferListDTO{
|
|
TransferBaseDTO: ToTransferBaseDTO(e),
|
|
CreatedBy: e.CreatedBy,
|
|
CreatedAt: e.CreatedAt,
|
|
UpdatedAt: e.UpdatedAt,
|
|
}
|
|
}
|
|
|
|
func ToTransferListDTOs(e []entity.StockTransfer) []TransferListDTO {
|
|
result := make([]TransferListDTO, len(e))
|
|
for i, r := range e {
|
|
result[i] = ToTransferListDTO(r)
|
|
}
|
|
return result
|
|
}
|
|
|
|
func ToTransferDetailDTO(e entity.StockTransfer) TransferDetailDTO {
|
|
return TransferDetailDTO{
|
|
TransferListDTO: ToTransferListDTO(e),
|
|
}
|
|
}
|