omnix-sopiga/services/template-service/transformer/orders.go

41 lines
877 B
Go
Raw Normal View History

2026-08-07 12:21:42 +07:00
package transformer
import (
"fmt"
"time"
"github.com/yourorg/go-dw-platform/services/template-service/domain"
"github.com/yourorg/go-dw-platform/services/template-service/dto"
"github.com/yourorg/go-dw-platform/services/template-service/entity"
)
type Transformer struct{}
func New() *Transformer {
return &Transformer{}
}
func (t *Transformer) RequestToDomain(req *dto.IngestRequest) (*domain.Order, error) {
order := &domain.Order{
OrderID: req.OrderID,
CustomerID: req.CustomerID,
Amount: req.Amount,
CreatedAt: time.Now(),
}
if err := order.Validate(); err != nil {
return nil, fmt.Errorf("transform: %w", err)
}
return order, nil
}
func (t *Transformer) DomainToEntity(d *domain.Order) *entity.Order {
return &entity.Order{
OrderID: d.OrderID,
CustomerID: d.CustomerID,
Amount: d.Amount,
CreatedAt: d.CreatedAt,
}
}