WorkLoadAllocationResult.java

package com.tradecloud.dto.workload;

import com.tradecloud.authentication.User;
import com.tradecloud.domain.model.ordermanagement.BusinessState;
import com.tradecloud.domain.party.ServiceProvider;
import com.tradecloud.domain.workload.WorkLoadCategory;
import com.tradecloud.domain.workload.WorkLoadComment;
import lombok.Getter;
import lombok.Setter;
import org.springframework.stereotype.Component;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@Getter
@Setter
@Component
public class WorkLoadAllocationResult implements Serializable {

    private long id;
    private String reference;
    private String number;
    private String freightForwarder;
    private String vesselName;
    private String type;
    private String shippingMode;
    private String supplier;
    private String paymentTerms;
    private Date scheduledDepartureDate;
    private Date estimateArrivalPod;
    private Date estimatedArrivalDate;
    private String comment;
    private String assignedUser;
    private String applyTo;
    private long entityId;
    private String textComment;
    private short priority = 0;
    private String fullName;
    private User allocatedUser;
    private WorkLoadCategory category;
    private WorkLoadComment workLoadComment;
    private ServiceProvider transporter;
    private String containerReferences;
    private String ruleAttribute;
    private Date ruleDate;
    private String multiModalShippingMode;
    private String businessState;
    private Date actualArrivalPod;
    private Date plannedShipmentDate;
    private Date dueDate;

    public String getComments() {
        List<String> commentParts = new ArrayList<>();

        if (textComment != null && !textComment.trim().isEmpty()) {
            commentParts.add(textComment.trim());
        }

        if (workLoadComment != null && workLoadComment.getCommentText() != null && !workLoadComment.getCommentText().trim().isEmpty()) {
            commentParts.add(workLoadComment.getCommentText().trim());
        }

        return commentParts.isEmpty() ? null : String.join(", ", commentParts);
    }

    public String getShippingModes() {
        if (multiModalShippingMode == null || multiModalShippingMode.isEmpty()) {
            return shippingMode;
        }
        return String.join(" - ", shippingMode, multiModalShippingMode);
    }

    public BusinessState getBusinessStateEnum() {
        return businessState != null ? BusinessState.valueOf(businessState) : null;
    }
}