TransportOrderMapper.java

package com.v1rex.liftnexus.transportorder.mapper;

import com.v1rex.liftnexus.forklift.domain.EquipmentType;
import com.v1rex.liftnexus.transportorder.domain.TransportOrder;
import com.v1rex.liftnexus.transportorder.domain.TransportOrderStatus;
import com.v1rex.liftnexus.transportorder.dto.TransportOrderRequest;
import com.v1rex.liftnexus.transportorder.dto.TransportOrderResponse;
import org.springframework.stereotype.Component;

@Component
public class TransportOrderMapper {

  public TransportOrder toEntity(TransportOrderRequest request) {
    if (request == null) return null;
    return TransportOrder.builder()
        .status(TransportOrderStatus.OPEN)
        .requiredEquipment(
            request.requiredEquipment() != null
                ? request.requiredEquipment()
                : EquipmentType.STANDARD)
        .build();
  }

  public TransportOrderResponse toResponse(TransportOrder entity) {
    if (entity == null) return null;
    return new TransportOrderResponse(
        entity.getId(),
        entity.getTargetLoadUnit() != null ? entity.getTargetLoadUnit().getTrackingCode() : null,
        entity.getTargetLoadUnit() != null ? entity.getTargetLoadUnit().getId() : null,
        entity.getTargetBin() != null ? entity.getTargetBin().getId() : null,
        entity.getSourceBin() != null ? entity.getSourceBin().getId() : null,
        entity.getRequiredEquipment(),
        entity.getStatus(),
        entity.getAssignedForklift() != null ? entity.getAssignedForklift().getId() : null);
  }
}