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), } }