(BE-58,,59): extend db schema & build stock transfer api

- Extend DB schema for stock transfers
- Build stock transfer API (create,)
This commit is contained in:
aguhh18
2025-10-14 22:16:50 +07:00
parent 5283aed996
commit 9b016dc30a
25 changed files with 897 additions and 0 deletions
@@ -0,0 +1,64 @@
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),
}
}