Transport.java
package com.tradecloud.domain.shipment;
import com.tradecloud.domain.party.Employee;
import com.tradecloud.domain.party.ServiceProvider;
import com.tradecloud.domain.place.PlaceOfDischarge;
import com.tradecloud.domain.place.PlaceOfLoading;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
import java.util.Date;
@Embeddable
@Access(AccessType.FIELD)
@Getter
@Setter
public class Transport {
//SEA
private String voyageNumber;
private String vesselName;
private String vesselCallSign;
private Date berthingDateAndTime;
private String vesselAgent;
//COMMON
@ManyToOne
private ServiceProvider masterCarrier;
@ManyToOne
private ServiceProvider carrier;
@ManyToOne
private PlaceOfLoading placeOfLoading;
@ManyToOne
private PlaceOfDischarge placeOfDischarge;
private Date estimateDateOfDeparture;
private Date actualDateOfDeparture;
private Date estimateArrivalDateAtPOD;
private Date actualArrivalDateAtPOD;
private Date shippedOnBoardDate;
private Date telexReleaseDate;
//AIR
private String flightNumber;
private String airlineName;
//RAIL
//COURIER
//ROAD
private String vehicleRegistration;
@OneToOne
private Employee driver;
@OneToOne
private Employee coDriver;
private String trailerRegistration1;
private String trailerRegistration2;
@ManyToOne
private ServiceProvider transporter;
}