diff --git a/pom.xml b/pom.xml index 30fae36..ca2538e 100644 --- a/pom.xml +++ b/pom.xml @@ -56,7 +56,6 @@ org.postgresql postgresql ${postgresql.version} - runtime diff --git a/src/main/java/com/snp/batch/common/batch/repository/BaseJdbcRepository.java b/src/main/java/com/snp/batch/common/batch/repository/BaseJdbcRepository.java index b12b52c..3bf752a 100644 --- a/src/main/java/com/snp/batch/common/batch/repository/BaseJdbcRepository.java +++ b/src/main/java/com/snp/batch/common/batch/repository/BaseJdbcRepository.java @@ -39,6 +39,9 @@ public abstract class BaseJdbcRepository { protected String getIdColumnName() { return "id"; } + protected String getIdColumnName(String customId) { + return customId; + } /** * RowMapper 반환 (하위 클래스에서 구현) diff --git a/src/main/java/com/snp/batch/common/util/JsonChangeDetector.java b/src/main/java/com/snp/batch/common/util/JsonChangeDetector.java new file mode 100644 index 0000000..96231f1 --- /dev/null +++ b/src/main/java/com/snp/batch/common/util/JsonChangeDetector.java @@ -0,0 +1,179 @@ +package com.snp.batch.common.util; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import java.security.MessageDigest; +import java.util.*; + +public class JsonChangeDetector { + + // Map으로 변환 시 사용할 ObjectMapper (표준 Mapper 사용) + private static final ObjectMapper MAPPER = new ObjectMapper(); + + // 해시 비교에서 제외할 필드 목록 (DataSetVersion 등) + // 이 목록은 모든 JSON 계층에 걸쳐 적용됩니다. + private static final java.util.Set EXCLUDE_KEYS = + java.util.Set.of("DataSetVersion", "APSStatus", "LastUpdateDate", "LastUpdateDateTime"); + + private static final Map LIST_SORT_KEYS = Map.of( + // List 필드명 // 정렬 기준 키 + "OwnerHistory" ,"Sequence", // OwnerHistory는 Sequence를 기준으로 정렬 + "SurveyDatesHistoryUnique" , "SurveyDate" // SurveyDatesHistoryUnique는 SurveyDate를 기준으로 정렬 + // 추가적인 List/Array 필드가 있다면 여기에 추가 + ); + + // ========================================================================= + // 1. JSON 문자열을 정렬 및 필터링된 Map으로 변환하는 핵심 로직 + // ========================================================================= + /** + * JSON 문자열을 Map으로 변환하고, 특정 키를 제거하며, 키 순서가 정렬된 상태로 만듭니다. + * @param jsonString API 응답 또는 DB에서 읽은 JSON 문자열 + * @return 필터링되고 정렬된 Map 객체 + */ + public static Map jsonToSortedFilteredMap(String jsonString) { + if (jsonString == null || jsonString.trim().isEmpty()) { + return Collections.emptyMap(); + } + + try { + // 1. Map으로 1차 변환합니다. (순서 보장 안됨) + Map rawMap = MAPPER.readValue(jsonString, + new com.fasterxml.jackson.core.type.TypeReference>() {}); + + // 2. 재귀 함수를 호출하여 키를 제거하고 TreeMap(키 순서 정렬)으로 깊은 복사합니다. + return deepFilterAndSort(rawMap); + + } catch (Exception e) { + System.err.println("Error converting JSON to filtered Map: " + e.getMessage()); + // 예외 발생 시 빈 Map 반환 + return Collections.emptyMap(); + } + } + + /** + * Map을 재귀적으로 탐색하며 제외 키를 제거하고 TreeMap(알파벳 순서)으로 변환합니다. + */ + private static Map deepFilterAndSort(Map rawMap) { + // Map을 TreeMap으로 생성하여 키 순서를 알파벳 순으로 강제 정렬합니다. + Map sortedMap = new TreeMap<>(); + + for (Map.Entry entry : rawMap.entrySet()) { + String key = entry.getKey(); + Object value = entry.getValue(); + + // 🔑 1. 제외할 키 값인지 확인 + if (EXCLUDE_KEYS.contains(key)) { + continue; // 제외 + } + + // 2. 값의 타입에 따라 재귀 처리 + if (value instanceof Map) { + // 재귀 호출: 하위 Map을 필터링하고 정렬 + @SuppressWarnings("unchecked") + Map subMap = (Map) value; + sortedMap.put(key, deepFilterAndSort(subMap)); + } else if (value instanceof List) { + // List 처리: List 내부의 Map 요소만 재귀 호출 + @SuppressWarnings("unchecked") + List rawList = (List) value; + List filteredList = new ArrayList<>(); + + // 1. List 내부의 Map 요소들을 재귀적으로 필터링/정렬하여 filteredList에 추가 + for (Object item : rawList) { + if (item instanceof Map) { + @SuppressWarnings("unchecked") + Map itemMap = (Map) item; + // List의 요소인 Map도 필터링하고 정렬 (Map의 필드 순서 정렬) + filteredList.add(deepFilterAndSort(itemMap)); + } else { + filteredList.add(item); + } + } + + // 2. 🔑 List 필드명에 따른 순서 정렬 로직 (추가된 핵심 로직) + String listFieldName = entry.getKey(); + String sortKey = LIST_SORT_KEYS.get(listFieldName); + + if (sortKey != null && !filteredList.isEmpty() && filteredList.get(0) instanceof Map) { + // Map 요소를 가진 리스트인 경우에만 정렬 실행 + try { + // 정렬 기준 키를 사용하여 Comparator를 생성 + Collections.sort(filteredList, new Comparator() { + @Override + @SuppressWarnings("unchecked") + public int compare(Object o1, Object o2) { + Map map1 = (Map) o1; + Map map2 = (Map) o2; + + // 정렬 기준 키(sortKey)의 값을 가져와 비교 + Object key1 = map1.get(sortKey); + Object key2 = map2.get(sortKey); + + if (key1 == null || key2 == null) { + // 키 값이 null인 경우, Map의 전체 문자열로 비교 (안전장치) + return map1.toString().compareTo(map2.toString()); + } + + // String 타입으로 변환하여 비교 (Date, Number 타입도 대부분 String으로 처리 가능) + return key1.toString().compareTo(key2.toString()); + } + }); + } catch (Exception e) { + System.err.println("List sort failed for key " + listFieldName + ": " + e.getMessage()); + // 정렬 실패 시 원래 순서 유지 + } + } + sortedMap.put(key, filteredList); + } else { + // String, Number 등 기본 타입은 그대로 추가 + sortedMap.put(key, value); + } + } + return sortedMap; + } + + + // ========================================================================= + // 2. 해시 생성 로직 + // ========================================================================= + + /** + * 필터링되고 정렬된 Map의 문자열 표현을 기반으로 SHA-256 해시를 생성합니다. + */ + public static String getSha256HashFromMap(Map sortedMap) { + // 1. Map을 String으로 변환: TreeMap 덕분에 toString() 결과가 항상 동일한 순서를 가집니다. + String mapString = sortedMap.toString(); + + try { + MessageDigest digest = MessageDigest.getInstance("SHA-256"); + byte[] hash = digest.digest(mapString.getBytes("UTF-8")); + + // 바이트 배열을 16진수 문자열로 변환 + StringBuilder hexString = new StringBuilder(); + for (byte b : hash) { + String hex = Integer.toHexString(0xff & b); + if (hex.length() == 1) hexString.append('0'); + hexString.append(hex); + } + return hexString.toString(); + } catch (Exception e) { + System.err.println("Error generating hash: " + e.getMessage()); + return "HASH_ERROR"; + } + } + + + // ========================================================================= + // 3. 해시값 비교 로직 + // ========================================================================= + public static boolean isChanged(String previousHash, String currentHash) { + // DB 해시가 null인 경우 (첫 Insert)는 변경된 것으로 간주 + if (previousHash == null || previousHash.isEmpty()) { + return true; + } + + // 해시값이 다르면 변경된 것으로 간주 + return !Objects.equals(previousHash, currentHash); + } + +} \ No newline at end of file diff --git a/src/main/java/com/snp/batch/global/config/SwaggerConfig.java b/src/main/java/com/snp/batch/global/config/SwaggerConfig.java index b0e4186..c90a229 100644 --- a/src/main/java/com/snp/batch/global/config/SwaggerConfig.java +++ b/src/main/java/com/snp/batch/global/config/SwaggerConfig.java @@ -38,6 +38,9 @@ public class SwaggerConfig { new Server() .url("http://localhost:" + serverPort) .description("로컬 개발 서버"), + new Server() + .url("http://211.208.115.83:" + serverPort) + .description("중계 서버"), new Server() .url("https://api.snp-batch.com") .description("운영 서버 (예시)") diff --git a/src/main/java/com/snp/batch/jobs/shipdetail/batch/config/ShipDetailImportJobConfig.java b/src/main/java/com/snp/batch/jobs/shipdetail/batch/config/ShipDetailImportJobConfig.java index c97b43c..651a179 100644 --- a/src/main/java/com/snp/batch/jobs/shipdetail/batch/config/ShipDetailImportJobConfig.java +++ b/src/main/java/com/snp/batch/jobs/shipdetail/batch/config/ShipDetailImportJobConfig.java @@ -1,8 +1,8 @@ package com.snp.batch.jobs.shipdetail.batch.config; import com.snp.batch.common.batch.config.BaseJobConfig; -import com.snp.batch.jobs.shipdetail.batch.dto.ShipDetailDto; -import com.snp.batch.jobs.shipdetail.batch.entity.ShipDetailEntity; +import com.snp.batch.jobs.shipdetail.batch.dto.ShipDetailComparisonData; // Reader 출력 타입 +import com.snp.batch.jobs.shipdetail.batch.dto.ShipDetailUpdate; // Processor 출력 타입 import com.snp.batch.jobs.shipdetail.batch.processor.ShipDetailDataProcessor; import com.snp.batch.jobs.shipdetail.batch.reader.ShipDetailDataReader; import com.snp.batch.jobs.shipdetail.batch.writer.ShipDetailDataWriter; @@ -19,6 +19,7 @@ import org.springframework.context.annotation.Configuration; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.web.reactive.function.client.WebClient; +import com.fasterxml.jackson.databind.ObjectMapper; // ObjectMapper 추가 /** * 선박 상세 정보 Import Job Config @@ -27,6 +28,7 @@ import org.springframework.web.reactive.function.client.WebClient; * - ship_data 테이블에서 IMO 번호 조회 * - IMO 번호를 100개씩 배치로 분할 * - Maritime API GetShipsByIHSLRorIMONumbers 호출 + * TODO : GetShipsByIHSLRorIMONumbersAll 호출로 변경 * - 선박 상세 정보를 ship_detail 테이블에 저장 (UPSERT) * * 데이터 흐름: @@ -37,31 +39,35 @@ import org.springframework.web.reactive.function.client.WebClient; * ShipDetailDataWriter * ↓ (ship_detail 테이블) */ +/** + * 선박 상세 정보 Import Job Config + * I: ShipDetailComparisonData (Reader 출력) + * O: ShipDetailUpdate (Processor 출력) + */ @Slf4j @Configuration -public class ShipDetailImportJobConfig extends BaseJobConfig { +public class ShipDetailImportJobConfig extends BaseJobConfig { private final ShipDetailDataProcessor shipDetailDataProcessor; private final ShipDetailDataWriter shipDetailDataWriter; private final JdbcTemplate jdbcTemplate; private final WebClient maritimeApiWebClient; + private final ObjectMapper objectMapper; // ObjectMapper 주입 추가 - /** - * 생성자 주입 - * maritimeApiWebClient: MaritimeApiWebClientConfig에서 등록한 Bean 주입 (ShipImportJob과 동일) - */ public ShipDetailImportJobConfig( JobRepository jobRepository, PlatformTransactionManager transactionManager, ShipDetailDataProcessor shipDetailDataProcessor, ShipDetailDataWriter shipDetailDataWriter, JdbcTemplate jdbcTemplate, - @Qualifier("maritimeApiWebClient") WebClient maritimeApiWebClient) { + @Qualifier("maritimeApiWebClient") WebClient maritimeApiWebClient, + ObjectMapper objectMapper) { // ObjectMapper 주입 추가 super(jobRepository, transactionManager); this.shipDetailDataProcessor = shipDetailDataProcessor; this.shipDetailDataWriter = shipDetailDataWriter; this.jdbcTemplate = jdbcTemplate; this.maritimeApiWebClient = maritimeApiWebClient; + this.objectMapper = objectMapper; // ObjectMapper 초기화 } @Override @@ -75,23 +81,24 @@ public class ShipDetailImportJobConfig extends BaseJobConfig createReader() { - return new ShipDetailDataReader(maritimeApiWebClient, jdbcTemplate); + protected ItemReader createReader() { // 타입 변경 + // Reader 생성자 수정: ObjectMapper를 전달합니다. + return new ShipDetailDataReader(maritimeApiWebClient, jdbcTemplate, objectMapper); } @Override - protected ItemProcessor createProcessor() { + protected ItemProcessor createProcessor() { return shipDetailDataProcessor; } @Override - protected ItemWriter createWriter() { + protected ItemWriter createWriter() { // 타입 변경 return shipDetailDataWriter; } @Override protected int getChunkSize() { - return 100; // API에서 100개씩 가져오므로 chunk도 100으로 설정 + return 50; // API에서 100개씩 가져오므로 chunk도 100으로 설정 } @Bean(name = "shipDetailImportJob") diff --git a/src/main/java/com/snp/batch/jobs/shipdetail/batch/dto/OwnerHistoryDto.java b/src/main/java/com/snp/batch/jobs/shipdetail/batch/dto/OwnerHistoryDto.java new file mode 100644 index 0000000..0e98e35 --- /dev/null +++ b/src/main/java/com/snp/batch/jobs/shipdetail/batch/dto/OwnerHistoryDto.java @@ -0,0 +1,52 @@ +package com.snp.batch.jobs.shipdetail.batch.dto; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class OwnerHistoryDto { + /** + * 회사 상태 + * API: CompanyStatus + */ + @JsonProperty("CompanyStatus") + private String CompanyStatus; + /** + * 효력 일자 + * API: EffectiveDate + */ + @JsonProperty("EffectiveDate") + private String EffectiveDate; + /** + * IMO 번호 + * API: LRNO + */ + @JsonProperty("LRNO") + private String LRNO; + /** + * 소유주 + * API: Owner + */ + @JsonProperty("Owner") + private String Owner; + /** + * 소유주 코드 + * API: OwnerCode + */ + @JsonProperty("OwnerCode") + private String OwnerCode; + /** + * 시퀀스 + * API: Sequence + */ + @JsonProperty("Sequence") + private String Sequence; +} diff --git a/src/main/java/com/snp/batch/jobs/shipdetail/batch/dto/ShipDetailApiResponse.java b/src/main/java/com/snp/batch/jobs/shipdetail/batch/dto/ShipDetailApiResponse.java index 634d187..dda21df 100644 --- a/src/main/java/com/snp/batch/jobs/shipdetail/batch/dto/ShipDetailApiResponse.java +++ b/src/main/java/com/snp/batch/jobs/shipdetail/batch/dto/ShipDetailApiResponse.java @@ -16,6 +16,16 @@ import java.util.List; * "shipCount": 5, * "Ships": [...] * } + * + * Maritime API GetShipsByIHSLRorIMONumbersAll 응답 래퍼 + * + * API 응답 구조: + * { + * "shipCount": 5, + * "ShipResult": [...], + * "APSStatus": {...} + * } + * */ @Data @Builder @@ -23,6 +33,12 @@ import java.util.List; @AllArgsConstructor public class ShipDetailApiResponse { + /** + * 선박 개수 + * API에서 "shipCount"로 반환 + */ + @JsonProperty("shipCount") + private Integer shipCount; /** * 선박 상세 정보 리스트 * API에서 "Ships" (대문자 S)로 반환 @@ -30,10 +46,7 @@ public class ShipDetailApiResponse { @JsonProperty("Ships") private List ships; - /** - * 선박 개수 - * API에서 "shipCount"로 반환 - */ - @JsonProperty("shipCount") - private Integer shipCount; + @JsonProperty("ShipResult") + private List shipResult; + } diff --git a/src/main/java/com/snp/batch/jobs/shipdetail/batch/dto/ShipDetailComparisonData.java b/src/main/java/com/snp/batch/jobs/shipdetail/batch/dto/ShipDetailComparisonData.java new file mode 100644 index 0000000..90c2ecb --- /dev/null +++ b/src/main/java/com/snp/batch/jobs/shipdetail/batch/dto/ShipDetailComparisonData.java @@ -0,0 +1,17 @@ +package com.snp.batch.jobs.shipdetail.batch.dto; +import lombok.Builder; +import lombok.Getter; +import java.util.Map; + +/** + * DB 해시와 API 데이터를 결합하여 Processor로 전달하는 컨테이너 DTO + */ +@Getter +@Builder +public class ShipDetailComparisonData { + private final String imoNumber; + private final String previousMasterHash; // DB에서 조회한 해시값 (비교대상 1) + private final Map currentMasterMap; // API JSON을 Map으로 변환/정렬/필터링한 데이터 + private final String currentMasterHash; // currentMasterMap으로 생성한 해시값 (비교대상 2) + private final ShipDetailDto structuredDto; // 비즈니스 로직 처리용 DTO +} \ No newline at end of file diff --git a/src/main/java/com/snp/batch/jobs/shipdetail/batch/dto/ShipDetailDto.java b/src/main/java/com/snp/batch/jobs/shipdetail/batch/dto/ShipDetailDto.java index 210da7c..3a1aa44 100644 --- a/src/main/java/com/snp/batch/jobs/shipdetail/batch/dto/ShipDetailDto.java +++ b/src/main/java/com/snp/batch/jobs/shipdetail/batch/dto/ShipDetailDto.java @@ -1,15 +1,17 @@ package com.snp.batch.jobs.shipdetail.batch.dto; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.List; + /** * 선박 상세 정보 DTO * Maritime API GetShipsByIHSLRorIMONumbers 응답 데이터 - * * API 응답 필드명과 매핑: * - IHSLRorIMOShipNo → imoNumber * - ShipName → shipName @@ -23,6 +25,7 @@ import lombok.NoArgsConstructor; @Builder @NoArgsConstructor @AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) public class ShipDetailDto { /** @@ -30,7 +33,13 @@ public class ShipDetailDto { * API: IHSLRorIMOShipNo */ @JsonProperty("IHSLRorIMOShipNo") - private String imoNumber; + private String ihslrorimoshipno; + /** + * MMSI 번호 + * API: MaritimeMobileServiceIdentityMMSINumber + */ + @JsonProperty("MaritimeMobileServiceIdentityMMSINumber") + private String maritimemobileserviceidentitymmsinumber; /** * 선박명 @@ -40,32 +49,87 @@ public class ShipDetailDto { private String shipName; /** - * 선박 타입 - * API: ShiptypeLevel5 + * 호출신호 + * API: CallSign */ - @JsonProperty("ShiptypeLevel5") - private String shipType; + @JsonProperty("CallSign") + private String callsign; /** * 깃발 국가 (Flag) * API: FlagName */ @JsonProperty("FlagName") - private String flag; + private String flagname; /** - * 깃발 국가 코드 - * API: FlagCode + * 등록항 + * API: PortOfRegistry */ - @JsonProperty("FlagCode") - private String flagCode; + @JsonProperty("PortOfRegistry") + private String portofregistry; /** - * 깃발 유효 날짜 - * API: FlagEffectiveDate + * 선급 + * API: ClassificationSociety */ - @JsonProperty("FlagEffectiveDate") - private String flagEffectiveDate; + @JsonProperty("ClassificationSociety") + private String ClassificationSociety; + + /** + * 선종(Lv5) + * API: ShiptypeLevel5 + */ + @JsonProperty("ShiptypeLevel5") + private String shiptypelevel5; + /** + * 선종(Lv2) + * API: ShiptypeLevel2 + */ + @JsonProperty("ShiptypeLevel2") + private String shiptypelevel2; + /** + * 세부선종 + * API: ShiptypeLevel5SubType + */ + @JsonProperty("ShiptypeLevel5SubType") + private String shiptypelevel5subtype; + /** + * 건조연도 + * API: YearOfBuild + */ + @JsonProperty("YearOfBuild") + private String yearofbuild; + /** + * 조선소 + * API: Shipbuilder + */ + @JsonProperty("Shipbuilder") + private String shipbuilder; + /** + * 전장(LOA)[m] + * API: LengthOverallLOA + */ + @JsonProperty("LengthOverallLOA") + private String lengthoverallloa; + /** + * 형폭(몰디드)[m] + * API: BreadthMoulded + */ + @JsonProperty("BreadthMoulded") + private String breadthmoulded; + /** + * 깊이[m] + * API: Depth + */ + @JsonProperty("Depth") + private String depth; + /** + * 흘수[m] + * API: Draught + */ + @JsonProperty("Draught") + private String draught; /** * 총톤수 (Gross Tonnage) @@ -82,23 +146,128 @@ public class ShipDetailDto { private String deadweight; /** - * 선박 상태 - * API: ShipStatus + * 컨테이너(TEU) + * API: TEU */ + @JsonProperty("TEU") + private String teu; + + /** + * 항속(kt) + * API: SpeedService + */ + @JsonProperty("SpeedService") + private String speedservice; + + /** + * 주기관 형식 + * API: MainEngineType + */ + @JsonProperty("MainEngineType") + private String mainenginetype; + + @JsonProperty("ShipStatus") - private String status; + private String shipStatus; + + @JsonProperty("Operator") + private String operator; + + @JsonProperty("FlagCode") + private String flagCode; /** - * Core Ship Indicator - * API: CoreShipInd + * 소유주 이력 List + * API: OwnerHistory */ - @JsonProperty("CoreShipInd") - private String coreShipInd; + @JsonProperty("OwnerHistory") + private List ownerHistory; + /** - * 이전 선박명 - * API: ExName + * TODO : Core20 Dto 작성 + * shipresultindex int8 NOT NULL, -- 결과인덱스 + * batch_flag varchar(1) DEFAULT 'N'::character varying NULL -- 업데이트 이력 확인 (N:대기,P:진행,S:완료) + * vesselid varchar(7) NOT NULL, -- 선박ID + * ihslrorimoshipno varchar(7) NOT NULL, -- IMO번호 + * maritimemobileserviceidentitymmsinumber varchar(9) NULL, -- MMSI + * shipname varchar(100) NULL, -- 선명 + * callsign varchar(5) NULL, -- 호출부호 + * flagname varchar(100) NULL, -- 국가 + * portofregistry varchar(50) NULL, -- 등록항 + * classificationsociety varchar(50) NULL, -- 선급 + * shiptypelevel5 varchar(15) NULL, -- 선종(Lv5) + * shiptypelevel5subtype varchar(15) NULL, -- 세부선종 + * yearofbuild varchar(4) NULL, -- 건조연도 + * shipbuilder varchar(100) NULL, -- 조선소 + * lengthoverallloa numeric(3, 3) NULL, -- 전장(LOA)[m] + * breadthmoulded numeric(3, 3) NULL, -- 형폭(몰디드)[m] + * "depth" numeric(3, 3) NULL, -- 깊이[m] + * draught numeric(3, 3) NULL, -- 흘수[m] + * grosstonnage varchar(4) NULL, -- 총톤수(GT) + * deadweight varchar(5) NULL, -- 재화중량톤수(DWT) + * teu varchar(1) NULL, -- 컨테이너(TEU) + * speedservice numeric(2, 2) NULL, -- 항속(kt) + * mainenginetype varchar(2) NULL, -- 주기관 형식 */ - @JsonProperty("ExName") - private String exName; + // TODO : List/Array 데이터 추가 + /** + * 선박 추가 정보 List + * API: AdditionalInformation + */ +// @JsonProperty("AdditionalInformation") +// private List additionalInformation; + + + /** + * auxengine + * auxgenerator + * ballastwatermanagement + * bareboatcharterhistory + * builderaddress + * callsignandmmsihistory + * capacities + * cargopump + * classcurrent + * classhistory + * companycompliancedetails + * companydetailscomplexwithcodesa + * companyfleetcounts + * companyorderbookcounts + * companyvesselrelationships + * crewlist + * darkactivityconfirmed + * enginebuilder + * flaghistory + * grosstonnagehistory + * groupbeneficialownerhistory + * iceclass + * liftinggear + * mainengine + * namehistory + * operatorhistory + * ownerhistory + * pandihistory + * propellers + * safetymanagementcertificatehist + * sales + * scrubberdetails + * shipbuilderandsubcontractor + * shipbuilderdetail + * shipbuilderhistory + * shipcertificatesall + * shipmanagerhistory + * shiptypehistory + * sistershiplinks + * specialfeature + * statushistory + * stowagecommodity + * surveydates + * surveydateshistoryunique + * tankcoatings + * technicalmanagerhistory + * thrusters + * */ + + } diff --git a/src/main/java/com/snp/batch/jobs/shipdetail/batch/dto/ShipDetailUpdate.java b/src/main/java/com/snp/batch/jobs/shipdetail/batch/dto/ShipDetailUpdate.java new file mode 100644 index 0000000..9878b76 --- /dev/null +++ b/src/main/java/com/snp/batch/jobs/shipdetail/batch/dto/ShipDetailUpdate.java @@ -0,0 +1,28 @@ +package com.snp.batch.jobs.shipdetail.batch.dto; + +import com.snp.batch.jobs.shipdetail.batch.entity.OwnerHistoryEntity; +import com.snp.batch.jobs.shipdetail.batch.entity.ShipDetailEntity; +import com.snp.batch.jobs.shipdetail.batch.entity.ShipHashEntity; +import lombok.Builder; +import lombok.Getter; + +import java.util.*; + +/** + * 변경이 감지되어 Writer로 전달될 최종 증분 업데이트 데이터 + */ +@Getter +@Builder +public class ShipDetailUpdate { + private final String imoNumber; + private final Map currentMasterMap; // DB JSONB 컬럼 업데이트용 데이터 + private final String newMasterHash; + + // Hash Update Entity + private final ShipHashEntity shipHashEntity; + + // 이 외에 OwnerHistory Entity, Core Entity 등 증분 데이터를 추가합니다. + private final ShipDetailEntity shipDetailEntity; + private final List ownerHistoryEntityList; + +} \ No newline at end of file diff --git a/src/main/java/com/snp/batch/jobs/shipdetail/batch/dto/ShipResultDto.java b/src/main/java/com/snp/batch/jobs/shipdetail/batch/dto/ShipResultDto.java new file mode 100644 index 0000000..676398d --- /dev/null +++ b/src/main/java/com/snp/batch/jobs/shipdetail/batch/dto/ShipResultDto.java @@ -0,0 +1,26 @@ +package com.snp.batch.jobs.shipdetail.batch.dto; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.JsonNode; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.*; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ShipResultDto { + + @JsonProperty("shipCount") + private Integer shipCount; + + @JsonProperty("APSShipDetail") + private JsonNode shipDetailNode; + // Getter and Setter + public JsonNode getShipDetailNode() { return shipDetailNode; } + +} diff --git a/src/main/java/com/snp/batch/jobs/shipdetail/batch/entity/OwnerHistoryEntity.java b/src/main/java/com/snp/batch/jobs/shipdetail/batch/entity/OwnerHistoryEntity.java new file mode 100644 index 0000000..3e77ef7 --- /dev/null +++ b/src/main/java/com/snp/batch/jobs/shipdetail/batch/entity/OwnerHistoryEntity.java @@ -0,0 +1,23 @@ +package com.snp.batch.jobs.shipdetail.batch.entity; + +import com.snp.batch.common.batch.entity.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class OwnerHistoryEntity extends BaseEntity { + + private String CompanyStatus; + private String EffectiveDate; + private String LRNO; + private String Owner; + private String OwnerCode; + private String Sequence; +} diff --git a/src/main/java/com/snp/batch/jobs/shipdetail/batch/entity/ShipDetailEntity.java b/src/main/java/com/snp/batch/jobs/shipdetail/batch/entity/ShipDetailEntity.java index bf55357..3695d6b 100644 --- a/src/main/java/com/snp/batch/jobs/shipdetail/batch/entity/ShipDetailEntity.java +++ b/src/main/java/com/snp/batch/jobs/shipdetail/batch/entity/ShipDetailEntity.java @@ -24,75 +24,185 @@ import lombok.experimental.SuperBuilder; @EqualsAndHashCode(callSuper = true) public class ShipDetailEntity extends BaseEntity { + /** + * TODO : Core20 Dto 작성 + * shipresultindex int8 NOT NULL, -- 결과인덱스 + * ihslrorimoshipno varchar(7) NOT NULL, -- IMO번호 + * vesselid varchar(7) NOT NULL, -- 선박ID + * maritimemobileserviceidentitymmsinumber varchar(9) NULL, -- MMSI + * shipname varchar(100) NULL, -- 선명 + * callsign varchar(5) NULL, -- 호출부호 + * flagname varchar(100) NULL, -- 국가 + * portofregistry varchar(50) NULL, -- 등록항 + * classificationsociety varchar(50) NULL, -- 선급 + * shiptypelevel5 varchar(15) NULL, -- 선종(Lv5) + * shiptypelevel5subtype varchar(15) NULL, -- 세부선종 + * yearofbuild varchar(4) NULL, -- 건조연도 + * shipbuilder varchar(100) NULL, -- 조선소 + * lengthoverallloa numeric(3, 3) NULL, -- 전장(LOA)[m] + * breadthmoulded numeric(3, 3) NULL, -- 형폭(몰디드)[m] + * "depth" numeric(3, 3) NULL, -- 깊이[m] + * draught numeric(3, 3) NULL, -- 흘수[m] + * grosstonnage varchar(4) NULL, -- 총톤수(GT) + * deadweight varchar(5) NULL, -- 재화중량톤수(DWT) + * teu varchar(1) NULL, -- 컨테이너(TEU) + * speedservice numeric(2, 2) NULL, -- 항속(kt) + * mainenginetype varchar(2) NULL, -- 주기관 형식 + * batch_flag varchar(1) DEFAULT 'N'::character varying NULL -- 업데이트 이력 확인 (N:대기,P:진행,S:완료) + */ + /** * 기본 키 (자동 생성) * 컬럼: id (BIGSERIAL) */ private Long id; + /** + * 결과인덱스 + * 컬럼: shipresultindex (int8, NOT NULL) + */ + private long shipResultIndex; + /** * IMO 번호 (비즈니스 키) * 컬럼: imo_number (VARCHAR(20), UNIQUE, NOT NULL) */ - private String imoNumber; + private String ihslrorimoshipno; /** - * 선박명 - * 컬럼: ship_name (VARCHAR(200)) + * 선박ID + * 컬럼: vesselid (VARCHAR(7), NOT NULL) + */ + private String vesselId; + + /** + * MMSI + * 컬럼: maritimemobileserviceidentitymmsinumber (VARCHAR(9)) + */ + // Core20 테이블 컬럼 추가 + private String maritimeMobileServiceIdentityMmsiNumber; + + /** + * 선명 + * 컬럼: shipname (VARCHAR(100)) */ private String shipName; /** - * 선박 타입 - * 컬럼: ship_type (VARCHAR(100)) + * 호출부호 + * 컬럼: callsign (VARCHAR(5)) */ - private String shipType; + private String callSign; /** - * 깃발 국가명 - * 컬럼: flag_name (VARCHAR(100)) + * 국가 + * 컬럼: flagname (VARCHAR(100)) */ - private String flag; + private String flagName; /** - * 깃발 국가 코드 - * 컬럼: flag_code (VARCHAR(10)) + * 등록항 + * 컬럼: portofregistry (VARCHAR(50)) */ - private String flagCode; + private String portOfRegistry; /** - * 깃발 유효 날짜 - * 컬럼: flag_effective_date (VARCHAR(20)) + * 선급 + * 컬럼: classificationsociety (VARCHAR(50)) */ - private String flagEffectiveDate; + private String classificationSociety; /** - * 총톤수 (Gross Tonnage) - * 컬럼: gross_tonnage (VARCHAR(20)) + * 선종(Lv5) + * 컬럼: shiptypelevel5 (VARCHAR(15)) + */ + private String shipTypeLevel5; + + /** + * 선종(Lv2) + * 컬럼: shiptypelevel2 (VARCHAR(100)) + */ + private String shipTypeLevel2; + + /** + * 세부선종 + * 컬럼: shiptypelevel5subtype (VARCHAR(15)) + */ + private String shipTypeLevel5SubType; + + /** + * 건조연도 + * 컬럼: yearofbuild (VARCHAR(4)) + */ + private String yearOfBuild; + + /** + * 조선소 + * 컬럼: shipbuilder (VARCHAR(100)) + */ + private String shipBuilder; + + /** + * 전장(LOA)[m] + * 컬럼: lengthoverallloa (NUMERIC(3, 3)) + */ + private Double lengthOverallLoa; + + /** + * 형폭(몰디드)[m] + * 컬럼: breadthmoulded (NUMERIC(3, 3)) + */ + private Double breadthMoulded; + + /** + * 깊이[m] + * 컬럼: depth (NUMERIC(3, 3)) + */ + private Double depth; + + /** + * 흘수[m] + * 컬럼: draught (NUMERIC(3, 3)) + */ + private Double draught; + + /** + * 총톤수(GT) + * 컬럼: grosstonnage (VARCHAR(4)) */ private String grossTonnage; /** - * 재화중량톤수 (Deadweight) - * 컬럼: deadweight (VARCHAR(20)) + * 재화중량톤수(DWT) + * 컬럼: deadweight (VARCHAR(5)) */ - private String deadweight; + private String deadWeight; /** - * 선박 상태 - * 컬럼: ship_status (VARCHAR(100)) + * 컨테이너(TEU) + * 컬럼: teu (VARCHAR(1)) */ - private String status; + private String teu; /** - * Core Ship Indicator - * 컬럼: core_ship_ind (VARCHAR(10)) + * 항속(kt) + * 컬럼: speedservice (NUMERIC(2, 2)) */ - private String coreShipInd; + private Double speedService; /** - * 이전 선박명 - * 컬럼: ex_name (VARCHAR(200)) + * 주기관 형식 + * 컬럼: mainenginetype (VARCHAR(2)) */ - private String exName; + private String mainEngineType; + + /** + * 업데이트 이력 확인 (N:대기,P:진행,S:완료) + * 컬럼: batch_flag (VARCHAR(1)) + */ + private String batchFlag; + private String shipStatus; + private String operator; + private String flagCode; + } diff --git a/src/main/java/com/snp/batch/jobs/shipdetail/batch/entity/ShipHashEntity.java b/src/main/java/com/snp/batch/jobs/shipdetail/batch/entity/ShipHashEntity.java new file mode 100644 index 0000000..3308325 --- /dev/null +++ b/src/main/java/com/snp/batch/jobs/shipdetail/batch/entity/ShipHashEntity.java @@ -0,0 +1,20 @@ +package com.snp.batch.jobs.shipdetail.batch.entity; + +import com.snp.batch.common.batch.entity.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class ShipHashEntity extends BaseEntity { + + private String imoNumber; + private String shipDetailHash; + +} diff --git a/src/main/java/com/snp/batch/jobs/shipdetail/batch/processor/ShipDetailDataProcessor.java b/src/main/java/com/snp/batch/jobs/shipdetail/batch/processor/ShipDetailDataProcessor.java index e2cb12e..88ddbdf 100644 --- a/src/main/java/com/snp/batch/jobs/shipdetail/batch/processor/ShipDetailDataProcessor.java +++ b/src/main/java/com/snp/batch/jobs/shipdetail/batch/processor/ShipDetailDataProcessor.java @@ -1,41 +1,168 @@ package com.snp.batch.jobs.shipdetail.batch.processor; import com.snp.batch.common.batch.processor.BaseProcessor; +import com.snp.batch.jobs.shipdetail.batch.dto.OwnerHistoryDto; +import com.snp.batch.jobs.shipdetail.batch.dto.ShipDetailComparisonData; import com.snp.batch.jobs.shipdetail.batch.dto.ShipDetailDto; +import com.snp.batch.jobs.shipdetail.batch.dto.ShipDetailUpdate; +import com.snp.batch.jobs.shipdetail.batch.entity.OwnerHistoryEntity; import com.snp.batch.jobs.shipdetail.batch.entity.ShipDetailEntity; +import com.snp.batch.jobs.shipdetail.batch.entity.ShipHashEntity; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; +import java.util.*; + /** * 선박 상세 정보 Processor * ShipDetailDto → ShipDetailEntity 변환 */ + +/** + * 선박 상세 정보 Processor (해시 비교 및 증분 데이터 추출) + * I: ShipDetailComparisonData (DB 해시 + API Map Data) + * O: ShipDetailUpdate (변경분) + */ @Slf4j @Component -public class ShipDetailDataProcessor extends BaseProcessor { +public class ShipDetailDataProcessor extends BaseProcessor { @Override - protected ShipDetailEntity processItem(ShipDetailDto dto) throws Exception { - log.debug("선박 상세 정보 처리 시작: imoNumber={}, shipName={}", - dto.getImoNumber(), dto.getShipName()); + protected ShipDetailUpdate processItem(ShipDetailComparisonData comparisonData) throws Exception { + String imo = comparisonData.getImoNumber(); + String previousHash = comparisonData.getPreviousMasterHash(); + String currentHash = comparisonData.getCurrentMasterHash(); - // DTO → Entity 변환 (API에서 제공하는 필드만) - ShipDetailEntity entity = ShipDetailEntity.builder() - .imoNumber(dto.getImoNumber()) - .shipName(dto.getShipName()) - .shipType(dto.getShipType()) - .flag(dto.getFlag()) - .flagCode(dto.getFlagCode()) - .flagEffectiveDate(dto.getFlagEffectiveDate()) - .grossTonnage(dto.getGrossTonnage()) - .deadweight(dto.getDeadweight()) - .status(dto.getStatus()) - .coreShipInd(dto.getCoreShipInd()) - .exName(dto.getExName()) - .build(); + log.debug("선박 해시 비교 시작: imoNumber={}, DB Hash={}, API Hash={}", imo, previousHash, currentHash); - log.debug("선박 상세 정보 처리 완료: imoNumber={}", dto.getImoNumber()); + // 1. 해시 비교 (변경 감지) + if (isChanged(previousHash, currentHash)) { + log.info("선박 데이터 변경 감지: imoNumber={}", imo); - return entity; + // 2. 증분 데이터 추출 (Map 기반으로 업데이트 데이터 구성) + // Core20 + ShipDetailEntity shipDetailEntity = makeShipDetailEntity(comparisonData.getStructuredDto()); + // OwnerHistory + List ownerHistoryEntityList = makeOwnerHistoryEntityList(comparisonData.getStructuredDto().getOwnerHistory()); + + + + log.info("선박 데이터: shipDetailEntity={}", shipDetailEntity.toString()); + log.info("선박 데이터: ownerHistoryEntityList={}", ownerHistoryEntityList.toString()); + + // 3. 최종 업데이트 DTO 생성 (Writer에 전달) + return ShipDetailUpdate.builder() + .imoNumber(imo) + .newMasterHash(currentHash) // 새로운 해시 + .currentMasterMap(comparisonData.getCurrentMasterMap()) // DB JSONB 컬럼 업데이트용 Map + .shipDetailEntity(shipDetailEntity) + .ownerHistoryEntityList(ownerHistoryEntityList) + .shipHashEntity(makeShipHashEntity(imo, currentHash)) + .build(); + } + + // 변경 사항이 없으면 null 반환 (Writer로 전달되지 않음) + return null; } + + private ShipHashEntity makeShipHashEntity(String imo, String hash){ + return ShipHashEntity.builder() + .imoNumber(imo) + .shipDetailHash(hash) + .build(); + } + + private ShipDetailEntity makeShipDetailEntity(ShipDetailDto dto){ + return ShipDetailEntity.builder() + .ihslrorimoshipno(safeGetString(dto.getIhslrorimoshipno())) + .shipName(safeGetString(dto.getShipName())) + .vesselId(safeGetString(dto.getIhslrorimoshipno())) + .maritimeMobileServiceIdentityMmsiNumber(safeGetString(dto.getMaritimemobileserviceidentitymmsinumber())) + .shipName(safeGetString(dto.getShipName())) + .callSign(safeGetString(dto.getCallsign())) + .flagName(safeGetString(dto.getFlagname())) + .portOfRegistry(safeGetString(dto.getPortofregistry())) + .classificationSociety(safeGetString(dto.getClassificationSociety())) + .shipTypeLevel5(safeGetString(dto.getShiptypelevel5())) + .shipTypeLevel2(safeGetString(dto.getShiptypelevel2())) + .shipTypeLevel5SubType(safeGetString(dto.getShiptypelevel5subtype())) + .yearOfBuild(safeGetString(dto.getYearofbuild())) + .shipBuilder(safeGetString(dto.getShipbuilder())) + .lengthOverallLoa(safeGetDouble(dto.getLengthoverallloa())) + .breadthMoulded(safeGetDouble(dto.getBreadthmoulded())) + .depth(safeGetDouble(dto.getDepth())) + .draught(safeGetDouble(dto.getDraught())) + .grossTonnage(safeGetString(dto.getGrossTonnage())) + .deadWeight(safeGetString(dto.getDeadweight())) + .teu(safeGetString(dto.getTeu())) + .speedService(safeGetDouble(dto.getSpeedservice())) + .mainEngineType(safeGetString(dto.getMainenginetype())) + .shipStatus(safeGetString(dto.getShipStatus())) + .operator(safeGetString(dto.getOperator())) + .flagCode(safeGetString(dto.getFlagCode())) + .build(); + } + + private List makeOwnerHistoryEntityList(List dtoList){ + List ownerHistoryEntityList = new ArrayList<>(); + + // TODO: ownerHistoryEntityList 생성 로직 + if (dtoList == null || dtoList.isEmpty()) { + return ownerHistoryEntityList; // 빈 리스트 또는 null 입력 시 빈 리스트 반환 + } + + for (OwnerHistoryDto dto : dtoList) { + OwnerHistoryEntity entity = OwnerHistoryEntity.builder() + .CompanyStatus(safeGetString(dto.getCompanyStatus())) + .EffectiveDate(safeGetString(dto.getEffectiveDate())) + .LRNO(safeGetString(dto.getLRNO())) + .Owner(safeGetString(dto.getOwner())) + .OwnerCode(safeGetString(dto.getOwnerCode())) + .Sequence(safeGetString(dto.getSequence())) + .build(); + + ownerHistoryEntityList.add(entity); + } + + return ownerHistoryEntityList; + } + + + + /** + * 해시값을 비교하여 변경 여부를 판단합니다. + */ + private boolean isChanged(String previousHash, String currentHash) { + // DB 해시가 null인 경우 (첫 Insert)는 무조건 변경된 것으로 간주 + if (previousHash == null || previousHash.isEmpty()) { + return true; + } + + // 해시값이 다르면 변경된 것으로 간주 + return !Objects.equals(previousHash, currentHash); + } + + /** + * DTO 필드 값이 null 또는 빈 문자열(empty/blank)인 경우 null을 반환합니다. + * Entity의 String 필드가 null을 허용한다면 이 함수를 사용하세요. + */ + private String safeGetString(String value) { + if (value == null || value.trim().isEmpty()) { + return null; + } + // 값이 존재하면 트림된 문자열을 반환합니다. + return value.trim(); + } + + private Double safeGetDouble(String value) { + if (value == null || value.trim().isEmpty()) { + return null; + } + try { + return Double.parseDouble(value); + } catch (NumberFormatException e) { + return null; + } + } + } diff --git a/src/main/java/com/snp/batch/jobs/shipdetail/batch/reader/ShipDetailDataReader.java b/src/main/java/com/snp/batch/jobs/shipdetail/batch/reader/ShipDetailDataReader.java index b0401e2..3070467 100644 --- a/src/main/java/com/snp/batch/jobs/shipdetail/batch/reader/ShipDetailDataReader.java +++ b/src/main/java/com/snp/batch/jobs/shipdetail/batch/reader/ShipDetailDataReader.java @@ -1,8 +1,13 @@ package com.snp.batch.jobs.shipdetail.batch.reader; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; import com.snp.batch.common.batch.reader.BaseApiReader; +import com.snp.batch.common.util.JsonChangeDetector; import com.snp.batch.jobs.shipdetail.batch.dto.ShipDetailApiResponse; +import com.snp.batch.jobs.shipdetail.batch.dto.ShipDetailComparisonData; import com.snp.batch.jobs.shipdetail.batch.dto.ShipDetailDto; +import com.snp.batch.jobs.shipdetail.batch.dto.ShipResultDto; import lombok.extern.slf4j.Slf4j; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.web.reactive.function.client.WebClient; @@ -30,18 +35,22 @@ import java.util.*; * - 신규: 100건씩 로드 → Process → Write (Chunk 1,718회) */ @Slf4j -public class ShipDetailDataReader extends BaseApiReader { +public class ShipDetailDataReader extends BaseApiReader { private final JdbcTemplate jdbcTemplate; + private final ObjectMapper objectMapper; // 배치 처리 상태 private List allImoNumbers; + // DB 해시값을 저장할 맵 + private Map dbMasterHashes; private int currentBatchIndex = 0; - private final int batchSize = 100; + private final int batchSize = 50; - public ShipDetailDataReader(WebClient webClient, JdbcTemplate jdbcTemplate) { + public ShipDetailDataReader(WebClient webClient, JdbcTemplate jdbcTemplate, ObjectMapper objectMapper) { super(webClient); this.jdbcTemplate = jdbcTemplate; + this.objectMapper = objectMapper; enableChunkMode(); // ✨ Chunk 모드 활성화 } @@ -52,7 +61,7 @@ public class ShipDetailDataReader extends BaseApiReader { @Override protected String getApiPath() { - return "/MaritimeWCF/APSShipService.svc/RESTFul/GetShipsByIHSLRorIMONumbers"; + return "/MaritimeWCF/APSShipService.svc/RESTFul/GetShipsByIHSLRorIMONumbersAll"; } @Override @@ -60,22 +69,42 @@ public class ShipDetailDataReader extends BaseApiReader { return "https://shipsapi.maritime.spglobal.com"; } + private static final String GET_ALL_IMO_QUERY = + "SELECT imo_number FROM ship_data ORDER BY id"; + + private static final String FETCH_ALL_HASHES_QUERY = + "SELECT imo_number, ship_detail_hash FROM ship_detail_hash_json ORDER BY imo_number"; + /** * 최초 1회만 실행: ship_data 테이블에서 IMO 번호 전체 조회 */ @Override protected void beforeFetch() { + // 전처리 과정 + // Step 1. IMO 전체 번호 조회 log.info("[{}] ship_data 테이블에서 IMO 번호 조회 시작...", getReaderName()); - String sql = "SELECT imo_number FROM ship_data ORDER BY id"; - allImoNumbers = jdbcTemplate.queryForList(sql, String.class); - + allImoNumbers = jdbcTemplate.queryForList(GET_ALL_IMO_QUERY, String.class); int totalBatches = (int) Math.ceil((double) allImoNumbers.size() / batchSize); log.info("[{}] 총 {} 개의 IMO 번호 조회 완료", getReaderName(), allImoNumbers.size()); log.info("[{}] {}개씩 배치로 분할하여 API 호출 예정", getReaderName(), batchSize); log.info("[{}] 예상 배치 수: {} 개", getReaderName(), totalBatches); + // Step 2. 전 배치 결과 imo_number, ship_detail_json, ship_detail_hash 데이터 전체 조회 + log.info("[{}] DB Master Hash 전체 조회 시작...", getReaderName()); + + // 1-1. DB에서 모든 IMO와 Hash 조회 + dbMasterHashes = jdbcTemplate.query(FETCH_ALL_HASHES_QUERY, rs -> { + Map map = new HashMap<>(); + while (rs.next()) { + map.put(rs.getString("imo_number"), rs.getString("ship_detail_hash")); + } + return map; + }); + + log.info("[{}] DB Master Hash 조회 완료. 총 {}건.", getReaderName(), dbMasterHashes.size()); + // API 통계 초기화 updateApiCallStats(totalBatches, 0); } @@ -88,7 +117,8 @@ public class ShipDetailDataReader extends BaseApiReader { * @return 다음 배치 100건 (더 이상 없으면 null) */ @Override - protected List fetchNextBatch() throws Exception { + protected List fetchNextBatch() throws Exception { + // 모든 배치 처리 완료 확인 if (allImoNumbers == null || currentBatchIndex >= allImoNumbers.size()) { return null; // Job 종료 @@ -117,11 +147,50 @@ public class ShipDetailDataReader extends BaseApiReader { // 다음 배치로 인덱스 이동 currentBatchIndex = endIndex; + List comparisonList = new ArrayList<>(); + // 응답 처리 - if (response != null && response.getShips() != null) { - List ships = response.getShips(); + if (response != null && response.getShipResult() != null) { + // ✨ ShipDetailComparisonData 생성 + for (ShipResultDto shipResult : response.getShipResult()) { + JsonNode rawShipDetailNode = shipResult.getShipDetailNode(); + + if (rawShipDetailNode == null) continue; + + // 💡 1) DTO로 매핑하여 IMO와 구조화된 DTO 확보 + ShipDetailDto structuredDto = null; + try { + structuredDto = objectMapper.treeToValue(rawShipDetailNode, ShipDetailDto.class); + } catch (Exception e) { + log.error("ShipDetailDto 매핑 실패: {}", e.getMessage()); + continue; + } + + String imo = structuredDto.getIhslrorimoshipno(); + if (imo == null || imo.isEmpty()) continue; + + // 💡 2) 원본 JSON 문자열 생성 + String originalJsonString = rawShipDetailNode.toString(); + + // 💡 3) API response json을 Map 형태로 변환, 정렬 및 해시 생성 + Map currentMasterMap = JsonChangeDetector.jsonToSortedFilteredMap(originalJsonString); + String currentMasterHash = JsonChangeDetector.getSha256HashFromMap(currentMasterMap); + + // 💡 4) DB Master Hash 조회 (beforeFetch에서 로드된 맵 사용) + String previousMasterHash = dbMasterHashes.getOrDefault(imo, null); + + // 💡 5) ShipDetailComparisonData DTO 생성 + comparisonList.add(ShipDetailComparisonData.builder() + .imoNumber(imo) + .previousMasterHash(previousMasterHash) + .currentMasterMap(currentMasterMap) + .currentMasterHash(currentMasterHash) + .structuredDto(structuredDto) + .build()); + } + log.info("[{}] 배치 {}/{} 완료: {} 건 조회", - getReaderName(), currentBatchNumber, totalBatches, ships.size()); + getReaderName(), currentBatchNumber, totalBatches, comparisonList.size()); // API 호출 통계 업데이트 updateApiCallStats(totalBatches, currentBatchNumber); @@ -131,7 +200,8 @@ public class ShipDetailDataReader extends BaseApiReader { Thread.sleep(500); } - return ships; + return comparisonList; + } else { log.warn("[{}] 배치 {}/{} 응답 없음", getReaderName(), currentBatchNumber, totalBatches); @@ -161,7 +231,7 @@ public class ShipDetailDataReader extends BaseApiReader { * @return API 응답 */ private ShipDetailApiResponse callApiWithBatch(String imoNumbers) { - String url = getApiPath() + "?ihslrOrImoNumbers=" + imoNumbers; + String url = getApiPath() + "?IMONumbers=" + imoNumbers; log.debug("[{}] API 호출: {}", getReaderName(), url); @@ -173,7 +243,7 @@ public class ShipDetailDataReader extends BaseApiReader { } @Override - protected void afterFetch(List data) { + protected void afterFetch(List data) { if (data == null) { int totalBatches = (int) Math.ceil((double) allImoNumbers.size() / batchSize); log.info("[{}] 전체 {} 개 배치 처리 완료", getReaderName(), totalBatches); @@ -181,4 +251,5 @@ public class ShipDetailDataReader extends BaseApiReader { getReaderName(), allImoNumbers.size()); } } + } diff --git a/src/main/java/com/snp/batch/jobs/shipdetail/batch/repository/ShipDetailRepository.java b/src/main/java/com/snp/batch/jobs/shipdetail/batch/repository/ShipDetailRepository.java index 3c95985..9dd59e3 100644 --- a/src/main/java/com/snp/batch/jobs/shipdetail/batch/repository/ShipDetailRepository.java +++ b/src/main/java/com/snp/batch/jobs/shipdetail/batch/repository/ShipDetailRepository.java @@ -1,42 +1,21 @@ package com.snp.batch.jobs.shipdetail.batch.repository; +import com.snp.batch.jobs.shipdetail.batch.entity.OwnerHistoryEntity; import com.snp.batch.jobs.shipdetail.batch.entity.ShipDetailEntity; import java.util.List; -import java.util.Optional; /** * 선박 상세 정보 Repository 인터페이스 */ public interface ShipDetailRepository { - /** - * ID로 조회 - */ - Optional findById(Long id); - - /** - * IMO 번호로 조회 - */ - Optional findByImoNumber(String imoNumber); - - /** - * 전체 조회 - */ - List findAll(); - - /** - * 저장 (INSERT 또는 UPDATE) - */ - ShipDetailEntity save(ShipDetailEntity entity); - - /** - * 여러 건 저장 - */ void saveAll(List entities); - /** - * 삭제 - */ - void delete(Long id); + void saveAllCoreData(List entities); + + void saveAllOwnerHistoryData(List entities); + + void delete(String id); + } diff --git a/src/main/java/com/snp/batch/jobs/shipdetail/batch/repository/ShipDetailRepositoryImpl.java b/src/main/java/com/snp/batch/jobs/shipdetail/batch/repository/ShipDetailRepositoryImpl.java index fa54cdd..e4ecfa7 100644 --- a/src/main/java/com/snp/batch/jobs/shipdetail/batch/repository/ShipDetailRepositoryImpl.java +++ b/src/main/java/com/snp/batch/jobs/shipdetail/batch/repository/ShipDetailRepositoryImpl.java @@ -1,6 +1,7 @@ package com.snp.batch.jobs.shipdetail.batch.repository; import com.snp.batch.common.batch.repository.BaseJdbcRepository; +import com.snp.batch.jobs.shipdetail.batch.entity.OwnerHistoryEntity; import com.snp.batch.jobs.shipdetail.batch.entity.ShipDetailEntity; import lombok.extern.slf4j.Slf4j; import org.springframework.jdbc.core.JdbcTemplate; @@ -11,8 +12,7 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Timestamp; -import java.util.List; -import java.util.Optional; +import java.util.*; /** * 선박 상세 정보 Repository 구현체 @@ -20,7 +20,7 @@ import java.util.Optional; */ @Slf4j @Repository("shipDetailRepository") -public class ShipDetailRepositoryImpl extends BaseJdbcRepository +public class ShipDetailRepositoryImpl extends BaseJdbcRepository implements ShipDetailRepository { public ShipDetailRepositoryImpl(JdbcTemplate jdbcTemplate) { @@ -29,99 +29,165 @@ public class ShipDetailRepositoryImpl extends BaseJdbcRepository findByImoNumber(String imoNumber) { - String sql = "SELECT * FROM " + getTableName() + " WHERE imo_number = ?"; - List results = jdbcTemplate.query(sql, getRowMapper(), imoNumber); - return results.isEmpty() ? Optional.empty() : Optional.of(results.get(0)); + public void saveAllCoreData(List entities) { + if (entities == null || entities.isEmpty()) { + return; + } + + log.info("{} 전체 저장 시작: {} 건", getEntityName(), entities.size()); + + // INSERT와 UPDATE 분리 + List toInsert = entities.stream() + .filter(e -> extractId(e) == null || !existsByImo(extractId(e))) + .toList(); + + List toUpdate = entities.stream() + .filter(e -> extractId(e) != null && existsByImo(extractId(e))) + .toList(); + + if (!toInsert.isEmpty()) { + batchInsert(toInsert); + } + + if (!toUpdate.isEmpty()) { + batchUpdate(toUpdate); + } + + log.info("{} 전체 저장 완료: 삽입={} 건, 수정={} 건", getEntityName(), toInsert.size(), toUpdate.size()); + } @Override - public void delete(Long id) { - String sql = "DELETE FROM " + getTableName() + " WHERE id = ?"; + public void saveAllOwnerHistoryData(List entities) { + String ownerHistorySql = ShipDetailSql.getOwnerHistorySql(); + + if (entities == null || entities.isEmpty()) { + return; + } + + log.info("{} 배치 삽입 시작: {} 건", "OwnerHistoryEntity", entities.size()); + + jdbcTemplate.batchUpdate(ownerHistorySql, entities, entities.size(), + (ps, entity) -> { + try { + setOwnerHistoryInsertParameters(ps, (OwnerHistoryEntity) entity); + } catch (Exception e) { + log.error("배치 삽입 파라미터 설정 실패", e); + throw new RuntimeException(e); + } + }); + + log.info("{} 배치 삽입 완료: {} 건", getEntityName(), entities.size()); + } + + public boolean existsByImo(String imo) { + String sql = String.format("SELECT COUNT(*) FROM %s WHERE %s = ?", getTableName(), getIdColumnName("ihslrorimoshipno")); + Long count = jdbcTemplate.queryForObject(sql, Long.class, imo); + return count != null && count > 0; + } + + + + @Override + public void delete(String id) { + String sql = "DELETE FROM " + getTableName() + " WHERE ihslrorimoshipno = ?"; jdbcTemplate.update(sql, id); log.debug("[{}] 삭제 완료: id={}", getEntityName(), id); } + private void setOwnerHistoryInsertParameters(PreparedStatement ps, OwnerHistoryEntity entity)throws Exception{ + int idx = 1; + ps.setString(idx++, entity.getCompanyStatus()); + ps.setString(idx++, entity.getEffectiveDate()); + ps.setString(idx++, entity.getLRNO()); + ps.setString(idx++, entity.getOwner()); + ps.setString(idx++, entity.getOwnerCode()); + ps.setString(idx++, entity.getSequence()); + ps.setString(idx++, entity.getLRNO()); //vesselId + } + /** * ShipDetailEntity RowMapper */ @@ -151,21 +281,34 @@ public class ShipDetailRepositoryImpl extends BaseJdbcRepository entities); + +} diff --git a/src/main/java/com/snp/batch/jobs/shipdetail/batch/repository/ShipHashRepositoryImpl.java b/src/main/java/com/snp/batch/jobs/shipdetail/batch/repository/ShipHashRepositoryImpl.java new file mode 100644 index 0000000..64d881d --- /dev/null +++ b/src/main/java/com/snp/batch/jobs/shipdetail/batch/repository/ShipHashRepositoryImpl.java @@ -0,0 +1,129 @@ +package com.snp.batch.jobs.shipdetail.batch.repository; + +import com.snp.batch.common.batch.repository.BaseJdbcRepository; +import com.snp.batch.jobs.shipdetail.batch.entity.ShipHashEntity; +import lombok.extern.slf4j.Slf4j; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.core.RowMapper; +import org.springframework.stereotype.Repository; + +import java.sql.PreparedStatement; +import java.sql.Timestamp; +import java.util.List; + +@Slf4j +@Repository("ShipHashRepository") +public class ShipHashRepositoryImpl extends BaseJdbcRepository implements ShipHashRepository{ + + public ShipHashRepositoryImpl(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + protected String getTableName() { + return "public.ship_detail_hash_json"; + } + + @Override + protected RowMapper getRowMapper() { + return null; + } + + @Override + protected String extractId(ShipHashEntity entity) { + return entity.getImoNumber(); + } + + @Override + protected String getInsertSql() { + return """ + INSERT INTO public.ship_detail_hash_json( + id, imo_number, ship_detail_hash, created_at, created_by, updated_at, updated_by + )VALUES( + nextval('ship_imo_data_id_seq1'::regclass), ?, ?, ?, ?, ?, ? + ) + ON CONFLICT (imo_number) + DO UPDATE SET + ship_detail_hash = EXCLUDED.ship_detail_hash, + updated_at = ?, + updated_by = ? + """; + } + + @Override + protected String getUpdateSql() { + return """ + UPDATE public.ship_detail_hash_json + SET ship_detail_hash = ?, + updated_at = ?, + updated_by = ? + WHERE imo_number = ? + """; + } + + @Override + protected void setInsertParameters(PreparedStatement ps, ShipHashEntity entity) throws Exception { + int idx = 1; + ps.setString(idx++, entity.getImoNumber()); + ps.setString(idx++, entity.getShipDetailHash()); + // 감사 필드 + ps.setTimestamp(idx++, entity.getCreatedAt() != null ? + Timestamp.valueOf(entity.getCreatedAt()) : Timestamp.valueOf(now())); + ps.setString(idx++, entity.getCreatedBy() != null ? entity.getCreatedBy() : "SYSTEM"); + ps.setTimestamp(idx++, entity.getUpdatedAt() != null ? + Timestamp.valueOf(entity.getUpdatedAt()) : Timestamp.valueOf(now())); + ps.setString(idx++, entity.getUpdatedBy() != null ? entity.getUpdatedBy() : "SYSTEM");ps.setTimestamp(idx++, entity.getUpdatedAt() != null ? + Timestamp.valueOf(entity.getUpdatedAt()) : Timestamp.valueOf(now())); + ps.setString(idx++, entity.getUpdatedBy() != null ? entity.getUpdatedBy() : "SYSTEM"); + } + + @Override + protected void setUpdateParameters(PreparedStatement ps, ShipHashEntity entity) throws Exception { + int idx = 1; + ps.setString(idx++, entity.getShipDetailHash()); + // 감사 필드 + ps.setTimestamp(idx++, entity.getUpdatedAt() != null ? + Timestamp.valueOf(entity.getUpdatedAt()) : Timestamp.valueOf(now())); + ps.setString(idx++, entity.getUpdatedBy() != null ? entity.getUpdatedBy() : "SYSTEM"); + ps.setString(idx++, entity.getImoNumber()); + } + + @Override + protected String getEntityName() { + return "ShipHashEntity"; + } + + @Override + public void saveAllData(List entities) { + if (entities == null || entities.isEmpty()) { + return; + } + + log.info("{} 전체 저장 시작: {} 건", getEntityName(), entities.size()); + + // INSERT와 UPDATE 분리 + List toInsert = entities.stream() + .filter(e -> extractId(e) == null || !existsByImo(extractId(e))) + .toList(); + + List toUpdate = entities.stream() + .filter(e -> extractId(e) != null && existsByImo(extractId(e))) + .toList(); + + if (!toInsert.isEmpty()) { + batchInsert(toInsert); + } + + if (!toUpdate.isEmpty()) { + batchUpdate(toUpdate); + } + + log.info("{} 전체 저장 완료: 삽입={} 건, 수정={} 건", getEntityName(), toInsert.size(), toUpdate.size()); + } + + public boolean existsByImo(String imo) { + String sql = String.format("SELECT COUNT(*) FROM %s WHERE %s = ?", getTableName(), getIdColumnName("imo_number")); + Long count = jdbcTemplate.queryForObject(sql, Long.class, imo); + return count != null && count > 0; + } +} diff --git a/src/main/java/com/snp/batch/jobs/shipdetail/batch/writer/ShipDetailDataWriter.java b/src/main/java/com/snp/batch/jobs/shipdetail/batch/writer/ShipDetailDataWriter.java index 5eca87e..d990b49 100644 --- a/src/main/java/com/snp/batch/jobs/shipdetail/batch/writer/ShipDetailDataWriter.java +++ b/src/main/java/com/snp/batch/jobs/shipdetail/batch/writer/ShipDetailDataWriter.java @@ -1,33 +1,80 @@ package com.snp.batch.jobs.shipdetail.batch.writer; import com.snp.batch.common.batch.writer.BaseWriter; +import com.snp.batch.jobs.shipdetail.batch.dto.ShipDetailUpdate; +import com.snp.batch.jobs.shipdetail.batch.entity.OwnerHistoryEntity; import com.snp.batch.jobs.shipdetail.batch.entity.ShipDetailEntity; +import com.snp.batch.jobs.shipdetail.batch.entity.ShipHashEntity; import com.snp.batch.jobs.shipdetail.batch.repository.ShipDetailRepository; +import com.snp.batch.jobs.shipdetail.batch.repository.ShipHashRepository; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; /** * 선박 상세 정보 Writer */ @Slf4j @Component -public class ShipDetailDataWriter extends BaseWriter { +public class ShipDetailDataWriter extends BaseWriter { private final ShipDetailRepository shipDetailRepository; + private final ShipHashRepository shipHashRepository; - public ShipDetailDataWriter(ShipDetailRepository shipDetailRepository) { + public ShipDetailDataWriter(ShipDetailRepository shipDetailRepository, ShipHashRepository shipHashRepository) { super("ShipDetail"); this.shipDetailRepository = shipDetailRepository; + this.shipHashRepository = shipHashRepository; } @Override - protected void writeItems(List items) throws Exception { + protected void writeItems(List items) throws Exception { + + if (items.isEmpty()) { return; } + log.info("선박 상세 정보 데이터 저장: {} 건", items.size()); - shipDetailRepository.saveAll(items); + // 1. List -> 3가지 List 형태로 가공 + // 1-1. List (Core20 데이터 처리용) + List coreEntities = items.stream() + // ShipDetailUpdate DTO의 getShipDetailEntity() 메서드를 사용하여 바로 추출 + .map(ShipDetailUpdate::getShipDetailEntity) + .collect(Collectors.toList()); + + // 1-2. List> -> List (OwnerHistory 데이터 처리용) + // OwnerHistory는 Bulk 처리를 위해 단일 평탄화된 리스트로 만듭니다. + List ownerHistoriyListEntities = items.stream() + .flatMap(item -> { + // ⚠️ ShipDetailUpdate DTO에 List 필드가 존재해야 합니다. + List histories = item.getOwnerHistoryEntityList(); + return histories != null ? histories.stream() : new ArrayList().stream(); + }) + .collect(Collectors.toList()); + + // 1-3. List (Hash값 데이터 처리용) + List hashEntities = items.stream() + .map(item -> new ShipHashEntity(item.getImoNumber(), item.getNewMasterHash())) + .collect(Collectors.toList()); + + // 2. 각 Repository에 전달 + // ✅ 2-1. ShipDetailRepository (Core20 데이터) + log.debug("Core20 데이터 저장 시작: {} 건", coreEntities.size()); + shipDetailRepository.saveAllCoreData(coreEntities); + + // ✅ 2-2. OwnerHistory (OwnerHistory 데이터) + log.debug("OwnerHistory 데이터 저장 시작: {} 건", ownerHistoriyListEntities.size()); + shipDetailRepository.saveAllOwnerHistoryData(ownerHistoriyListEntities); + + // TODO : 추가적인 Array/List 데이터 저장 로직 추가 + + // ✅ 2-3. ShipHashRepository (Hash값 데이터) + log.debug("Ship Hash 데이터 저장 시작: {} 건", hashEntities.size()); + shipHashRepository.saveAllData(hashEntities); + + log.info("선박 상세 정보 및 해시 데이터 저장 완료: {} 건", items.size()); - log.info("선박 상세 정보 데이터 저장 완료: {} 건", items.size()); } + } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 0bd7833..194ea8f 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -4,7 +4,7 @@ spring: # PostgreSQL Database Configuration datasource: - url: jdbc:postgresql://61.101.55.59:5432/snpdb + url: jdbc:postgresql://211.208.115.83:5432/snpdb username: snp password: snp#8932 driver-class-name: org.postgresql.Driver diff --git a/src/main/resources/data/shipDetailSample.json b/src/main/resources/data/shipDetailSample.json new file mode 100644 index 0000000..2d4d7e4 --- /dev/null +++ b/src/main/resources/data/shipDetailSample.json @@ -0,0 +1,5616 @@ +{ + "shipCount": 5, + "ShipResult": [ + { + "shipCount": 1, + "APSShipDetail": { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "AuxiliaryGeneratorsDescriptiveNarrative": "2 x 211kW 220/380V 50Hz a.c., 1 x 100kW 220/380V 50Hz a.c.", + "BaleCapacity": "0", + "BollardPull": "0", + "BulbousBow": "N", + "BreadthExtreme": "8.800", + "BreadthMoulded": "0.000", + "BunkersDescriptiveNarrative": "Fuel: distillate fuel: 90 cu m", + "CargoCapacitiesNarrative": "", + "CargoGradesSegregations": "0", + "ClassNarrative": "", + "ClassificationSociety": "", + "ClassificationSocietyCode": "", + "CleanBallastCapacity": "0", + "ClearHeightOfROROLanes": "0.00", + "CompensatedGrossTonnageCGT": "0", + "ContractDate": "19590701", + "ConstructionDescriptiveNarrative": "Statcode5:X11A2YP; Hull Type:Single Hull; Hull Material:Steel; Hull Connections:Welded; Decks:1 dk", + "CoreShipInd": "1", + "CountryOfBuild": "United Kingdom", + "CountryOfBuildCode": "GBI", + "DateOfBuild": "196107", + "Deadweight": "164", + "DeliveryDate": "19610000", + "Depth": "4.080", + "DischargeDiameterOfCargoManifold": "0.00", + "Displacement": "0", + "DOCCompany": " Unknown", + "DocumentOfComplianceDOCCompanyCode": "9991001", + "Draught": "3.950", + "ExName": "Princess Tanya", + "FlagCode": "PAN", + "FlagEffectiveDate": "197104", + "FlagName": "Panama", + "FuelType1Capacity": "90.00", + "FuelType1Code": "DF", + "FuelType1First": "Distillate Fuel", + "FuelType2Capacity": "0.00", + "FuelType2Code": "NN", + "FuelType2Second": "Not Applicable", + "GasCapacity": "0", + "GrainCapacity": "0", + "GrossTonnage": "551", + "GroupBeneficialOwner": " Unknown", + "GroupBeneficialOwnerCompanyCode": "9991001", + "HeatingCoilsInCargoTanks": "No", + "HullMaterial": "Steel (Unspecified)", + "HullMaterialCode": "ST", + "HullShapeCode": "N1", + "HullType": "Single Hull", + "HullTypeCode": "SH", + "InsulatedCapacity": "0", + "KeelToMastHeight": "0.000", + "LanesDoorsRampsNarrative": "", + "LastUpdateDate": "2025-07-04T23:55:25.817", + "LegalOverall": "0", + "ShipOverallComplianceStatus": "0", + "ShipDarkActivityIndicator": "0", + "ShipFlagDisputed": "0", + "ShipFlagSanctionedCountry": "0", + "ShipHistoricalFlagSanctionedCountry": "0", + "ShipOwnerHistoricalOFACSanctionedCountry": "0", + "ShipOwnerFATFJurisdiction": "0", + "ShipOwnerOFACSanctionedCountry": "0", + "ShipOwnerBESSanctionList": "0", + "ShipOwnerEUSanctionList": "0", + "ShipOwnerOFACSanctionList": "0", + "ShipOwnerUNSanctionList": "0", + "ShipSanctionedCountryPortCallLast12m": "0", + "ShipSanctionedCountryPortCallLast3m": "0", + "ShipSanctionedCountryPortCallLast6m": "0", + "ShipEUSanctionList": "0", + "ShipOFACNonSDNSanctionList": "0", + "ShipOFACSanctionList": "0", + "ShipUNSanctionList": "0", + "ShipOFACSSIList": "0", + "ShipOwnerCanadianSanctionList": "0", + "ShipOwnerAustralianSanctionList": "0", + "ShipUSTreasuryOFACAdvisoryList": "0", + "ShipSwissSanctionList": "0", + "ShipOwnerSwissSanctionList": "0", + "ShipSTSPartnerNonComplianceLast12m": "0", + "ShipSecurityLegalDisputeEventLast12m": "0", + "ShipDetailsNoLongerMaintained": "0", + "ShipBESSanctionList": "0", + "ShipOwnerParentCompanyNonCompliance": "0", + "ShipOwnerUAESanctionList": "0", + "LengthBetweenPerpendicularsLBP": "51.800", + "LengthOfROROLanes": "0", + "LengthOverallLOA": "57.600", + "LengthRegistered": "0.000", + "LightDisplacementTonnage": "0", + "LiquidCapacity": "0", + "IHSLRorIMOShipNo": "1000019", + "MainEngineBore": "240", + "MainEngineBuilder": "Sulzer Bros Ltd - Switzerland", + "MainEngineBuilderCode": "SWZ501551", + "MainEngineDesigner": "Sulzer", + "MainEngineDesignerCode": "SUL", + "MainEngineDesignerGroup": "Wartsila", + "MainEngineDesignerGroupCode": "WAR", + "MainEngineModel": "8TAD24", + "MainEngineNumberOfCylinders": "8", + "MainEngineStrokeType": "2", + "MainEngineType": "Oil", + "NetTonnage": "165", + "NewbuildPriceUSD": "0", + "NewconstructionEntryDate": "195907", + "NumberOfAllEngines": "2", + "NumberOfCabins": "0", + "NumberOfDecks": "1", + "NumberOfMainEngines": "2", + "NumberOfPropulsionUnits": "2", + "NumberOfROROLanes": "0", + "Operator": "Rptd Sold Undisclosed Interest", + "OperatorCompanyCode": "9991942", + "PanamaCanalNetTonnagePCNT": "0", + "PandIClub": "Shipowners' Club", + "PandIClubCode": "6219108", + "PassengerCapacity": "0", + "PassengersBerthed": "0", + "PortOfRegistryCode": "1010", + "PortOfRegistry": "Panama", + "PortOfRegistryFullCode": "PAN1010", + "PowerBHPIHPSHPMax": "1680", + "PowerBHPIHPSHPService": "0", + "PowerKWMax": "1236", + "PowerKWService": "0", + "PrimeMoverDescriptiveNarrative": "2 oil engines with flexible couplings & reduction geared to screw shafts driving 2 FP propellers Total Power: Mcr 1,236kW (1,680hp)Max. Speed: 15.00kts, Service Speed: 13.50kts", + "PrimeMoverDescriptiveOverviewNarrative": "Design: Sulzer (Group: Wartsila), Engine Builder: Sulzer Bros Ltd - Switzerland 2 x 8TAD24, 2 Stroke, Single Acting, In-Line (Vertical) 8 Cy. 240 x 400, Mcr: 618 kW (840 hp) , Made 1961-00", + "PropellerType": "Fixed Pitch", + "PropulsionType": "Oil Engine(s), Direct Drive", + "PropulsionTypeCode": "DD", + "ReeferPoints": "0", + "RegisteredOwner": "Rptd Sold Undisclosed Interest", + "RegisteredOwnerCode": "9991942", + "SafetyManagementCertificateAuditor": "", + "SafetyManagementCertificateConventionOrVol": "", + "SafetyManagementCertificateDateIssued": "20051108", + "SafetyManagementCertificateDOCCompany": "Unknown", + "SafetyManagementCertificateFlag": "", + "SafetyManagementCertificateIssuer": "", + "SafetyManagementCertificateOtherDescription": "", + "SafetyManagementCertificateShipType": "", + "SafetyManagementCertificateSource": "LRF", + "SaleDate": "20040615", + "SegregatedBallastCapacity": "0", + "ShipManager": "Rptd Sold Undisclosed Interest", + "ShipManagerCompanyCode": "9991942", + "ShipName": "LADY K II", + "ShipStatus": "In Service/Commission", + "ShipStatusCode": "S", + "ShipStatusEffectiveDate": "19610000", + "Shipbuilder": "Austin & Pickersgll", + "ShipbuilderCompanyCode": "GBI004351", + "ShipbuilderFullStyle": "Austin & Pickersgill Ltd. - Sunderland", + "ShiptypeLevel2": "Non Merchant", + "ShiptypeLevel3": "Non Merchant", + "ShiptypeLevel4": "Yacht", + "ShiptypeLevel5": "Yacht", + "ShiptypeLevel5HullType": "Ship Shape Including Multi-Hulls", + "ShiptypeLevel5SubGroup": "Yacht", + "ShiptypeLevel5SubType": "Yacht, Private", + "SpeedMax": "15.00", + "SpeedService": "13.50", + "StatCode5": "X11A2YP", + "SuezCanalNetTonnageSCNT": "0", + "TechnicalManager": " Unknown", + "TechnicalManagerCode": "9991001", + "TEU": "0", + "TEUCapacity14THomogenous": "0", + "TonnageEffectiveDate": "196100", + "TonnageSystem69Convention": "I", + "TonnesPerCentimetreImmersionTPCI": "0.000", + "TotalHorsepowerOfAuxiliaryGenerators": "700", + "TotalHorsepowerOfMainEngines": "1680", + "TotalKilowattsOfMainEngines": "1236", + "TotalPowerOfAllEngines": "1236", + "YardNumber": "819", + "YearOfBuild": "1961", + "MainEngineTypeCode": "01", + "CargoOtherType": "Not Applicable", + "CargoOtherCapacity": "", + "NuclearPowerIndicator": "N", + "AuxPropulsionIndicator": "N", + "MainEngineReEngineIndicator": "N", + "MainEngineTypeOfInstallation": "O", + "MainEngineTypeOfInstallationDecode": "ORIGINAL", + "MainEngineStrokeCycle": "SINGLE-ACTING", + "AdditionalInformation": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "TweenDeckFixed": "N", + "TweenDeckPortable": "N", + "DrillBargeInd": "N", + "LRNO": "1000019", + "ProductionVesselInd": "N" + } + ], + "AuxGenerator": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "ACDC": "AC", + "Frequency": "50", + "KWEach": "100.00", + "LRNO": "1000019", + "MainEngineDriven": "N", + "Number": "1", + "SEQ": "02", + "Voltage1": "220", + "Voltage2": "380" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "ACDC": "AC", + "Frequency": "50", + "KWEach": "211.00", + "LRNO": "1000019", + "MainEngineDriven": "N", + "Number": "2", + "SEQ": "01", + "Voltage1": "220", + "Voltage2": "380" + } + ], + "BuilderAddress": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "BuilderCode": "GBI004351", + "CountryCode": "GBI", + "CountryName": "United Kingdom", + "ShipBuilder": "Austin & Pickersgll", + "ShipBuilderFullStyle": "Austin & Pickersgill Ltd. - Sunderland", + "Town": "Sunderland", + "TownCode": "6955", + "BuilderStatus": "Closed" + } + ], + "Capacities": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000019", + "Bale": "0", + "Horsepower": "1680", + "BollardPull": "0", + "GasCapacity": "0", + "GrainCapacity": "0", + "LiquidCapacity": "0", + "NumberOfPassengers": "0", + "NumberRefrigeratedContainers": "0", + "NumberOfTEU": "0" + } + ], + "CargoPump": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CubicMetersCapacity": "0", + "CubicTonsCapacity": "0", + "LRNO": "1000019", + "NumberOfPumps": "0", + "Sequence": "1" + } + ], + "ClassCurrent": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Class": "Not Applicable", + "ClassCode": "NN", + "ClassIndicator": "Not Applicable", + "EffectiveDate": "19610000", + "LRNO": "1000019" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Class": "Lloyd's Register", + "ClassCode": "LR", + "ClassIndicator": "Disclassed", + "EffectiveDate": "20100225", + "LRNO": "1000019" + } + ], + "ClassHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Class": "Not Applicable", + "ClassCode": "NN", + "ClassIndicator": "Not Applicable", + "CurrentIndicator": "Current", + "EffectiveDate": "19610000", + "LRNO": "1000019", + "Sequence": "00" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Class": "Lloyd's Register", + "ClassCode": "LR", + "ClassIndicator": "Disclassed", + "CurrentIndicator": "Current", + "EffectiveDate": "20100225", + "LRNO": "1000019", + "Sequence": "00" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Class": "Lloyd's Register", + "ClassCode": "LR", + "ClassIndicator": "Classed", + "CurrentIndicator": "Historical", + "EffectiveDate": "20050413", + "LRNO": "1000019", + "Sequence": "92" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Class": "Lloyd's Register", + "ClassCode": "LR", + "ClassIndicator": "Disclassed", + "CurrentIndicator": "Historical", + "EffectiveDate": "20041210", + "LRNO": "1000019", + "Sequence": "93" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Class": "Lloyd's Register", + "ClassCode": "LR", + "ClassIndicator": "Classed", + "CurrentIndicator": "Historical", + "EffectiveDate": "19610700", + "LRNO": "1000019", + "Sequence": "94" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Class": "Lloyd's Register", + "ClassCode": "LR", + "ClassIndicator": "Class contemplated", + "CurrentIndicator": "Historical", + "EffectiveDate": "19610600", + "LRNO": "1000019", + "Sequence": "95" + } + ], + "CompanyComplianceDetails": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "OwCode": "9991001", + "ShortCompanyName": "Unknown", + "CompanyOnOFACSanctionList": "0", + "CompanyOnUNSanctionList": "0", + "CompanyOnEUSanctionList": "0", + "CompanyOnBESSanctionList": "0", + "CompanyInOFACSanctionedCountry": "0", + "CompanyInFATFJurisdiction": "0", + "CompanyOverallComplianceStatus": "0", + "CompanyOnAustralianSanctionList": "0", + "CompanyOnCanadianSanctionList": "0", + "CompanyOnSwissSanctionList": "0", + "CompanyOnOFACSSIList": "0", + "CompanyOnOFACNonSDNSanctionList": "0", + "CompanyOnUAESanctionList": "0" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "OwCode": "9991942", + "ShortCompanyName": "Rptd Sold Undisclosed Interest", + "CompanyOnOFACSanctionList": "0", + "CompanyOnUNSanctionList": "0", + "CompanyOnEUSanctionList": "0", + "CompanyOnBESSanctionList": "0", + "CompanyInOFACSanctionedCountry": "0", + "CompanyInFATFJurisdiction": "0", + "CompanyOverallComplianceStatus": "0", + "CompanyOnAustralianSanctionList": "0", + "CompanyOnCanadianSanctionList": "0", + "CompanyOnSwissSanctionList": "0", + "CompanyOnOFACSSIList": "0", + "CompanyOnOFACNonSDNSanctionList": "0", + "CompanyOnUAESanctionList": "0" + } + ], + "CompanyDetailsComplexWithCodesAndParent": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "Active", + "CountryName": "Unknown", + "FoundedDate": "2018", + "FullAddress": "Unknown", + "FullName": "Unknown", + "LastChangeDate": "20251106", + "LocationCode": "UNK", + "NationalityofRegistration": "Unknown", + "NationalityofRegistrationCode": "UNK", + "OWCODE": "9991001", + "ParentCompany": "9991001", + "ShortCompanyName": "UNKNOWN" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "Active", + "CountryName": "Unknown", + "FoundedDate": "2011", + "FullAddress": "Unknown", + "FullName": "Rptd Sold Undisclosed Interest", + "LastChangeDate": "20251106", + "LocationCode": "UNK", + "NationalityofRegistration": "Unknown", + "NationalityofRegistrationCode": "UNK", + "OWCODE": "9991942", + "ParentCompany": "9991942", + "ShortCompanyName": "RPTD SOLD UNDISCLOSED INTEREST" + } + ], + "CompanyVesselRelationships": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "DOCCode": "9991001", + "DOCCompany": " Unknown", + "GroupBeneficialOwner": " Unknown", + "GroupBeneficialOwnerCode": "9991001", + "LRNO": "1000019", + "Operator": "Rptd Sold Undisclosed Interest", + "OperatorCode": "9991942", + "RegisteredOwner": "Rptd Sold Undisclosed Interest", + "RegisteredOwnerCode": "9991942", + "ShipManager": "Rptd Sold Undisclosed Interest", + "ShipManagerCode": "9991942", + "TechnicalManager": " Unknown", + "TechnicalManagerCode": "9991001" + } + ], + "EngineBuilder": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "EngineBuilderLargestCode": "SWZ501551", + "EngineBuilderShortName": "SULZER BROS LTD", + "EngineBuilderFullName": "Sulzer Bros Ltd -Switzerland ", + "CountryName": "Switzerland", + "CountryCode": "SWZ" + } + ], + "FlagHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "EffectiveDate": "197104", + "Flag": "Panama ", + "FlagCode": "PAN", + "LRNO": "1000019", + "Sequence": "00" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "EffectiveDate": "196100", + "Flag": "United Kingdom ", + "FlagCode": "GBI", + "LRNO": "1000019", + "Sequence": "95" + } + ], + "GrossTonnageHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "EffectiveDate": "200001", + "GT": "551", + "LRNO": "1000019", + "Sequence": "00" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "EffectiveDate": "196100", + "GT": "676", + "LRNO": "1000019", + "Sequence": "95" + } + ], + "GroupBeneficialOwnerHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20180405", + "GroupBeneficialOwner": "Unknown", + "GroupBeneficialOwnerCode": "9991001", + "LRNO": "1000019", + "Sequence": "00" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "Inactive", + "EffectiveDate": "20180405", + "GroupBeneficialOwner": "Monte Zoncolan Voornediep BV", + "GroupBeneficialOwnerCode": "5976406", + "LRNO": "1000019", + "Sequence": "94" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "19939999", + "GroupBeneficialOwner": "Unknown", + "GroupBeneficialOwnerCode": "9991001", + "LRNO": "1000019", + "Sequence": "95" + } + ], + "LiftingGear": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "GearType": "Unknown", + "LRNO": "1000019", + "MaxSWLOfGear": "0.00", + "NumberOfGears": "0", + "Sequence": "01" + } + ], + "MainEngine": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "BHPOfMainOilEngines": "1680", + "Bore": "240", + "CylinderArrangementCode": "L", + "CylinderArrangementDecode": "IN-LINE, VERTICAL", + "EngineBuilder": "Sulzer Bros Ltd - Switzerland", + "EngineBuilderCode": "SUL", + "EngineDesigner": "Sulzer", + "EngineMakerCode": "SWZ501551", + "EngineModel": "8TAD24", + "EngineType": "Oil", + "LRNO": "1000019", + "NumberOfCylinders": "8", + "Position": "PORT", + "PowerBHP": "840", + "PowerKW": "618", + "RPM": "0", + "Stroke": "400", + "StrokeType": "2" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "BHPOfMainOilEngines": "1680", + "Bore": "240", + "CylinderArrangementCode": "L", + "CylinderArrangementDecode": "IN-LINE, VERTICAL", + "EngineBuilder": "Sulzer Bros Ltd - Switzerland", + "EngineBuilderCode": "SUL", + "EngineDesigner": "Sulzer", + "EngineMakerCode": "SWZ501551", + "EngineModel": "8TAD24", + "EngineType": "Oil", + "LRNO": "1000019", + "NumberOfCylinders": "8", + "Position": "STARBOARD", + "PowerBHP": "840", + "PowerKW": "618", + "RPM": "0", + "Stroke": "400", + "StrokeType": "2" + } + ], + "NameHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Effective_Date": "200902", + "LRNO": "1000019", + "Sequence": "00", + "VesselName": "LADY K II" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Effective_Date": "000000", + "LRNO": "1000019", + "Sequence": "92", + "VesselName": "Princess Tanya" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Effective_Date": "000000", + "LRNO": "1000019", + "Sequence": "93", + "VesselName": "Lisboa II" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Effective_Date": "000000", + "LRNO": "1000019", + "Sequence": "94", + "VesselName": "Radiant I" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Effective_Date": "196100", + "LRNO": "1000019", + "Sequence": "95", + "VesselName": "Radiant II" + } + ], + "OperatorHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20250702", + "LRNO": "1000019", + "Operator": "Rptd Sold Undisclosed Interest", + "OperatorCode": "9991942", + "Sequence": "00" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "Inactive", + "EffectiveDate": "20180405", + "LRNO": "1000019", + "Operator": "Monte Zoncolan Voornediep BV", + "OperatorCode": "5976406", + "Sequence": "92" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20041210", + "LRNO": "1000019", + "Operator": "Azure Maritime Ltd", + "OperatorCode": "3025210", + "Sequence": "93" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20020201", + "LRNO": "1000019", + "Operator": "Liveras Yachts SARL", + "OperatorCode": "1960753", + "Sequence": "94" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20029999", + "LRNO": "1000019", + "Operator": "Royal Coast Maritime", + "OperatorCode": "1979237", + "Sequence": "95" + } + ], + "OwnerHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20250702", + "LRNO": "1000019", + "Owner": "Rptd Sold Undisclosed Interest", + "OwnerCode": "9991942", + "Sequence": "00" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "Inactive", + "EffectiveDate": "20180405", + "LRNO": "1000019", + "Owner": "Monte Zoncolan Voornediep BV", + "OwnerCode": "5976406", + "Sequence": "91" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20071210", + "LRNO": "1000019", + "Owner": "Tyvek Ltd", + "OwnerCode": "5357894", + "Sequence": "92" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20041210", + "LRNO": "1000019", + "Owner": "Azure Maritime Ltd", + "OwnerCode": "3025210", + "Sequence": "93" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20029999", + "LRNO": "1000019", + "Owner": "Royal Coast Maritime", + "OwnerCode": "1979237", + "Sequence": "94" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "19939999", + "LRNO": "1000019", + "Owner": "Orisdan Shipping", + "OwnerCode": "3013058", + "Sequence": "95" + } + ], + "PandIHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000019", + "Sequence": "00", + "PandIClubCode": "6219108", + "PandIClubDecode": "Shipowners' Club", + "EffectiveDate": "20070401" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000019", + "Sequence": "95", + "PandIClubCode": "9991001", + "PandIClubDecode": "Unknown", + "EffectiveDate": "20060220" + } + ], + "Propellers": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000019", + "NozzleType": "Not Applicable", + "PropellerPosition": "Port", + "PropellerType": "Fixed Pitch", + "PropellerTypeCode": "FP", + "RPMMaximum": "0", + "RPMService": "0", + "Sequence": "01" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000019", + "NozzleType": "Not Applicable", + "PropellerPosition": "Starboard", + "PropellerType": "Fixed Pitch", + "PropellerTypeCode": "FP", + "RPMMaximum": "0", + "RPMService": "0", + "Sequence": "02" + } + ], + "Sales": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000019", + "SaleDate": "20040615", + "Sequence": "00" + } + ], + "SafetyManagementCertificateHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000019", + "SafetyManagementCertificateAuditor": "", + "SafetyManagementCertificateConventionOrVol": "", + "SafetyManagementCertificateDateIssued": "20051108", + "SafetyManagementCertificateDOCCompany": "Unknown", + "SafetyManagementCertificateFlag": "", + "SafetyManagementCertificateIssuer": "", + "SafetyManagementCertificateOtherDescription": "", + "SafetyManagementCertificateShipType": "", + "SafetyManagementCertificateSource": "LRF", + "SafetyManagementCertificateCompanyCode": "9991001", + "Sequence": "00" + } + ], + "ShipBuilderDetail": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "BuilderCode": "GBI004351", + "BuilderStatus": "Closed", + "CountryCode": "GBI", + "CountryName": "United Kingdom", + "Shipbuilder": "Austin & Pickersgll", + "ShipbuilderFullStyle": "Austin & Pickersgill Ltd. - Sunderland", + "TownCode": "6955" + } + ], + "ShipBuilderAndSubContractor": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "BuilderCode": "GBI004351", + "LRNO": "1000019", + "Section": "Whole Ship", + "SequenceNumber": "01" + } + ], + "ShipBuilderHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "BuilderCode": "GBI004351", + "BuilderHistory": "(The Southwick and South Dock yards operated under the title of Austin & Pickersgill Ltd. until 1986. The company was formed by the successive amalgamations of S. P. Austin & Son Ltd., William Austin & Son and William Pickersgill & Sons Ltd. and incorporating the subsidiary company Bartram & Sons Ltd., which see.): (British Shipbuilders merged this yard with Sunderland Shipbuilders Ltd. under the new style of North East Shipbuilders Ltd. w.e.f. 1.4.86.", + "BuilderType": "Shipbuilder" + } + ], + "ShipManagerHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20250702", + "LRNO": "1000019", + "Sequence": "00", + "ShipManager": "Rptd Sold Undisclosed Interest", + "ShipManagerCode": "9991942" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "Inactive", + "EffectiveDate": "20180405", + "LRNO": "1000019", + "Sequence": "92", + "ShipManager": "Monte Zoncolan Voornediep BV", + "ShipManagerCode": "5976406" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20041210", + "LRNO": "1000019", + "Sequence": "93", + "ShipManager": "Azure Maritime Ltd", + "ShipManagerCode": "3025210" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20020200", + "LRNO": "1000019", + "Sequence": "94", + "ShipManager": "Liveras Yachts SARL", + "ShipManagerCode": "1960753" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20029999", + "LRNO": "1000019", + "Sequence": "95", + "ShipManager": "Royal Coast Maritime", + "ShipManagerCode": "1979237" + } + ], + "ShipTypeHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "EffDate": "196107", + "LRNO": "1000019", + "Sequence": "00", + "Shiptype": "Yacht", + "ShiptypeCode": "X11A2YP" + } + ], + "StatusHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000019", + "Sequence": "00", + "Status": "IN SERVICE/COMMISSION", + "StatusCode": "S", + "StatusDate": "19610000" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000019", + "Sequence": "95", + "Status": "ON ORDER/NOT COMMENCED", + "StatusCode": "O", + "StatusDate": "19590701" + } + ], + "SurveyDates": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "ClassSociety": "Lloyd's Register", + "ClassSocietyCode": "LR", + "DockingSurvey": "Not recorded", + "LRNO": "1000019", + "SpecialSurvey": "Not recorded", + "TailShaftSurvey": "Not recorded" + } + ], + "TechnicalManagerHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20051108", + "LRNO": "1000019", + "Sequence": "00", + "TechnicalManager": "Unknown", + "TechnicalManagerCode": "9991001" + } + ], + "Thrusters": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000019", + "Sequence": "01", + "ThrusterType": "None", + "ThrusterTypeCode": "NN", + "NumberOfThrusters": "0", + "ThrusterPosition": "Not Applicable", + "ThrusterBHP": "0", + "ThrusterKW": "0", + "TypeOfInstallation": "Not Applicable" + } + ], + "CallSignAndMmsiHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Lrno": "1000019", + "SeqNo": "00", + "EffectiveDate": "197104" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Lrno": "1000019", + "SeqNo": "95", + "EffectiveDate": "196100" + } + ] + }, + "APSStatus": { + "SystemVersion": "1.1.0", + "SystemDate": "2015-08-20T00:00:00", + "JobRunDate": "2025-11-07T02:03:12.9231553+00:00", + "CompletedOK": true, + "ErrorLevel": "None", + "ErrorMessage": "", + "RemedialAction": "", + "Guid": "0a2a113f-e436-4439-aee6-6bd6eb3628d8" + } + }, + { + "shipCount": 1, + "APSShipDetail": { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "AuxiliaryEnginesNarrative": "Design: Caterpillar, Engine Builder: Caterpillar 2 x 3306B, 4 Stroke 6Cy. 121 x 152, Mcr: 142 kW Design: Caterpillar, Engine Builder: Caterpillar 2 x 3406C-TA, 4 Stroke 6Cy. 137 x 165, Mcr: 218 kW Design: Hatz, Engine Builder: Hatz 1 x Unknown, 4 Stroke 2Cy. 102 x 105, Mcr: 30 kW", + "AuxiliaryGeneratorsDescriptiveNarrative": "2 x 200kW 400V 50Hz a.c., 2 x 125kW 400V 50Hz a.c.", + "BaleCapacity": "0", + "BollardPull": "0", + "BulbousBow": "N", + "BreadthExtreme": "12.920", + "BreadthMoulded": "12.900", + "CallSign": "ZCCB8", + "CargoCapacitiesNarrative": "", + "CargoGradesSegregations": "0", + "ClassNarrative": "Lloyd's Register (1995-07-24)LR Class: + 100 A1 Survey Type: Special Survey Date: 2015-07 Class Notation: Yacht LR Machinery Class: LR Maltese Cross LMC LR Hull Notes: 4BH to main dk, 3 to lower dk", + "ClassificationSociety": "Lloyd's Register 1995-07-24", + "ClassificationSocietyCode": "LR", + "CleanBallastCapacity": "0", + "ClearHeightOfROROLanes": "0.00", + "CompensatedGrossTonnageCGT": "0", + "ContractDate": "19930700", + "ConstructionDescriptiveNarrative": "Statcode5:X11A2YP; Hull Type:Single Hull; Hull Material:Steel; Hull Connections:Welded; Decks:1 dk plus 3 superstructure dks", + "CoreShipInd": "1", + "CountryOfBuild": "Netherlands", + "CountryOfBuildCode": "NTH", + "DateOfBuild": "199507", + "Deadweight": "484", + "DeliveryDate": "19951000", + "Depth": "6.200", + "DischargeDiameterOfCargoManifold": "0.00", + "Displacement": "0", + "DOCCompany": " Unknown", + "DocumentOfComplianceDOCCompanyCode": "9991001", + "Draught": "4.000", + "FlagCode": "CAY", + "FlagEffectiveDate": "199312", + "FlagName": "Cayman Islands", + "FormulaDWT": "2418.82", + "FuelType1Capacity": "0.00", + "FuelType1Code": "YY", + "FuelType1First": "Yes, But Type Not Known", + "FuelType2Capacity": "0.00", + "FuelType2Code": "NN", + "FuelType2Second": "Not Applicable", + "GasCapacity": "0", + "GrainCapacity": "0", + "GrossTonnage": "1980", + "GroupBeneficialOwner": " Unknown", + "GroupBeneficialOwnerCompanyCode": "9991001", + "HeatingCoilsInCargoTanks": "Unknown", + "HullMaterial": "Steel (Unspecified)", + "HullMaterialCode": "ST", + "HullShapeCode": "N1", + "HullType": "Single Hull", + "HullTypeCode": "SH", + "InmarsatNumberSatCommID": "1756670", + "InsulatedCapacity": "0", + "KeelLaidDate": "19931108", + "KeelToMastHeight": "0.000", + "LanesDoorsRampsNarrative": "", + "LastUpdateDate": "2024-10-23T21:42:55.38", + "LaunchDate": "19940430", + "LegalOverall": "0", + "ShipOverallComplianceStatus": "0", + "ShipDarkActivityIndicator": "0", + "ShipFlagDisputed": "0", + "ShipFlagSanctionedCountry": "0", + "ShipHistoricalFlagSanctionedCountry": "0", + "ShipOwnerHistoricalOFACSanctionedCountry": "0", + "ShipOwnerFATFJurisdiction": "0", + "ShipOwnerOFACSanctionedCountry": "0", + "ShipOwnerBESSanctionList": "0", + "ShipOwnerEUSanctionList": "0", + "ShipOwnerOFACSanctionList": "0", + "ShipOwnerUNSanctionList": "0", + "ShipSanctionedCountryPortCallLast12m": "0", + "ShipSanctionedCountryPortCallLast3m": "0", + "ShipSanctionedCountryPortCallLast6m": "0", + "ShipEUSanctionList": "0", + "ShipOFACNonSDNSanctionList": "0", + "ShipOFACSanctionList": "0", + "ShipUNSanctionList": "0", + "ShipOFACSSIList": "0", + "ShipOwnerCanadianSanctionList": "0", + "ShipOwnerAustralianSanctionList": "0", + "ShipUSTreasuryOFACAdvisoryList": "0", + "ShipSwissSanctionList": "0", + "ShipOwnerSwissSanctionList": "0", + "ShipSTSPartnerNonComplianceLast12m": "0", + "ShipSecurityLegalDisputeEventLast12m": "0", + "ShipDetailsNoLongerMaintained": "0", + "ShipBESSanctionList": "0", + "ShipOwnerParentCompanyNonCompliance": "0", + "ShipOwnerUAESanctionList": "0", + "LengthBetweenPerpendicularsLBP": "68.500", + "LengthOfROROLanes": "0", + "LengthOverallLOA": "78.000", + "LengthRegistered": "0.000", + "LightDisplacementTonnage": "0", + "LiquidCapacity": "0", + "IHSLRorIMOShipNo": "1000021", + "MainEngineBore": "170", + "MainEngineBuilder": "Caterpillar Inc - USA", + "MainEngineBuilderCode": "USA606572", + "MainEngineDesigner": "Caterpillar", + "MainEngineDesignerCode": "CAT", + "MainEngineDesignerGroup": "Caterpillar", + "MainEngineDesignerGroupCode": "CAT", + "MainEngineModel": "3516TA", + "MainEngineNumberOfCylinders": "16", + "MainEngineRPM": "1828", + "MainEngineStrokeType": "4", + "MainEngineType": "Oil", + "NetTonnage": "588", + "NewconstructionEntryDate": "199307", + "NumberOfAllEngines": "7", + "NumberOfAuxiliaryEngines": "5", + "NumberOfCabins": "0", + "NumberOfDecks": "1", + "NumberOfMainEngines": "2", + "NumberOfPropulsionUnits": "2", + "NumberOfROROLanes": "0", + "NumberOfThrusters": "1", + "OfficialNumber": "726658", + "Operator": "Montkaj Co", + "OperatorCompanyCode": "6012336", + "OperatorCountryOfDomicileCode": "CAY", + "OperatorCountryOfDomicileName": "Cayman Islands", + "OperatorCountryOfRegistration": "Cayman Islands", + "PanamaCanalNetTonnagePCNT": "0", + "PandIClub": "Steamship Mutual", + "PandIClubCode": "6206831", + "PassengerCapacity": "0", + "PassengersBerthed": "0", + "PortOfRegistryCode": "9072", + "PortOfRegistry": "George Town", + "PortOfRegistryFullCode": "CAY9072", + "PowerBHPIHPSHPMax": "5052", + "PowerBHPIHPSHPService": "0", + "PowerKWMax": "3716", + "PowerKWService": "0", + "PrimeMoverDescriptiveNarrative": "2 oil engines with clutches, flexible couplings & single reduction geared to screw shafts driving 2 CP propellers at 313 rpm Total Power: Mcr 3,716kW (5,052hp)Max. Speed: 18.00kts, Service Speed: 15.00kts", + "PrimeMoverDescriptiveOverviewNarrative": "Design: Caterpillar (Group: Caterpillar), Engine Builder: Caterpillar Inc - USA 2 x 3516TA, 4 Stroke, Single Acting, Vee 16 Cy. 170 x 190, Mcr: 1,858 kW (2,526 hp) at 1,828 rpm", + "PropellerType": "Controllable Pitch", + "PropulsionType": "Oil Engine(s), Geared Drive", + "PropulsionTypeCode": "DG", + "ReeferPoints": "0", + "RegisteredOwner": "Montkaj Co", + "RegisteredOwnerCode": "6012336", + "RegisteredOwnerCountryOfDomicile": "Cayman Islands", + "RegisteredOwnerCountryOfDomicileCode": "CAY", + "RegisteredOwnerCountryOfRegistration": "Cayman Islands", + "SafetyManagementCertificateDateIssued": "20130716", + "SafetyManagementCertificateDOCCompany": "Unknown", + "SafetyManagementCertificateSource": "LRF", + "SegregatedBallastCapacity": "0", + "ShipManager": "Montkaj Co", + "ShipManagerCompanyCode": "6012336", + "ShipManagerCountryOfDomicileName": "Cayman Islands", + "ShipManagerCountryOfDomicileCode": "CAY", + "ShipManagerCountryOfRegistration": "Cayman Islands", + "ShipName": "MONTKAJ", + "ShipStatus": "In Service/Commission", + "ShipStatusCode": "S", + "ShipStatusEffectiveDate": "19951000", + "Shipbuilder": "Slob Scheepswerf Papendre", + "ShipbuilderCompanyCode": "NTH263072", + "ShipbuilderFullStyle": "Scheepswerf Slob B.V. - Papendrecht", + "ShipbuilderSubContractor": "AMELS HOLLAND BV", + "ShipbuilderSubContractorCode": "NTH001062", + "ShipbuilderSubContractorShipyardYardHullNo": "429", + "ShiptypeLevel2": "Non Merchant", + "ShiptypeLevel3": "Non Merchant", + "ShiptypeLevel4": "Yacht", + "ShiptypeLevel5": "Yacht", + "ShiptypeLevel5HullType": "Ship Shape Including Multi-Hulls", + "ShiptypeLevel5SubGroup": "Yacht", + "ShiptypeLevel5SubType": "Yacht, Private", + "SpeedMax": "18.00", + "SpeedService": "15.00", + "StatCode5": "X11A2YP", + "SuezCanalNetTonnageSCNT": "0", + "TechnicalManager": " Unknown", + "TechnicalManagerCode": "9991001", + "TEU": "0", + "TEUCapacity14THomogenous": "0", + "ThrustersDescriptiveNarrative": "1 Thwart. FP thruster (f)", + "TonnageEffectiveDate": "199312", + "TonnageSystem69Convention": "I", + "TonnesPerCentimetreImmersionTPCI": "0.000", + "TotalHorsepowerOfAuxiliaryGenerators": "872", + "TotalHorsepowerOfMainEngines": "5052", + "TotalKilowattsOfMainEngines": "3716", + "TotalPowerOfAllEngines": "4466", + "TotalPowerOfAuxiliaryEngines": "750", + "YardNumber": "398", + "YearOfBuild": "1995", + "MainEngineTypeCode": "01", + "CargoOtherType": "Not Applicable", + "CargoOtherCapacity": "", + "NuclearPowerIndicator": "N", + "AuxPropulsionIndicator": "N", + "MainEngineReEngineIndicator": "N", + "MainEngineTypeOfInstallation": "O", + "MainEngineTypeOfInstallationDecode": "ORIGINAL", + "MainEngineStrokeCycle": "SINGLE-ACTING", + "AdditionalInformation": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "TweenDeckFixed": "N", + "TweenDeckPortable": "N", + "DrillBargeInd": "N", + "LRNO": "1000021", + "ProductionVesselInd": "N", + "SatComID": "1756670", + "SatComAnsBack": "MONT" + } + ], + "AuxEngine": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Bore": "102", + "EngineDesigner": "Hatz", + "EngineBuilder": "Hatz", + "EngineSequence": "1", + "LRNO": "1000021", + "MaxPower": "30", + "NumberOfCylinders": "2", + "Stroke": "105", + "StrokeType": "4" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Bore": "137", + "EngineDesigner": "Caterpillar", + "EngineModel": "3406C-TA", + "EngineBuilder": "Caterpillar", + "EngineSequence": "2", + "LRNO": "1000021", + "MaxPower": "218", + "NumberOfCylinders": "6", + "Stroke": "165", + "StrokeType": "4" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Bore": "137", + "EngineDesigner": "Caterpillar", + "EngineModel": "3406C-TA", + "EngineBuilder": "Caterpillar", + "EngineSequence": "3", + "LRNO": "1000021", + "MaxPower": "218", + "NumberOfCylinders": "6", + "Stroke": "165", + "StrokeType": "4" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Bore": "121", + "EngineDesigner": "Caterpillar", + "EngineModel": "3306B", + "EngineBuilder": "Caterpillar", + "EngineSequence": "4", + "LRNO": "1000021", + "MaxPower": "142", + "NumberOfCylinders": "6", + "Stroke": "152", + "StrokeType": "4" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Bore": "121", + "EngineDesigner": "Caterpillar", + "EngineModel": "3306B", + "EngineBuilder": "Caterpillar", + "EngineSequence": "5", + "LRNO": "1000021", + "MaxPower": "142", + "NumberOfCylinders": "6", + "Stroke": "152", + "StrokeType": "4" + } + ], + "AuxGenerator": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "ACDC": "AC", + "Frequency": "50", + "KWEach": "125.00", + "LRNO": "1000021", + "MainEngineDriven": "N", + "Number": "2", + "SEQ": "02", + "Voltage1": "400", + "Voltage2": "0" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "ACDC": "AC", + "Frequency": "50", + "KWEach": "200.00", + "LRNO": "1000021", + "MainEngineDriven": "N", + "Number": "2", + "SEQ": "01", + "Voltage1": "400", + "Voltage2": "0" + } + ], + "BuilderAddress": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "BuilderCode": "NTH263072", + "CountryCode": "NTH", + "CountryName": "Netherlands", + "Facsimile": "+31 78 6411199", + "FullAddress": "Scheepvaartweg 11, 3356 LL Papendrecht. Postbus 1146, 3350 CC Papendrecht ", + "ShipBuilder": "Slob Scheepswerf Papendre", + "ShipBuilderFullStyle": "Scheepswerf Slob B.V. - Papendrecht", + "Telephone": "+31 78 6150266", + "Town": "Papendrecht", + "TownCode": "0998", + "BuilderStatus": "Current" + } + ], + "Capacities": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000021", + "Bale": "0", + "Horsepower": "5052", + "BollardPull": "0", + "GasCapacity": "0", + "GrainCapacity": "0", + "LiquidCapacity": "0", + "NumberOfPassengers": "0", + "NumberRefrigeratedContainers": "0", + "NumberOfTEU": "0" + } + ], + "CargoPump": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CubicMetersCapacity": "0", + "CubicTonsCapacity": "0", + "LRNO": "1000021", + "NumberOfPumps": "0", + "Sequence": "1" + } + ], + "ClassCurrent": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Class": "Not Applicable", + "ClassCode": "NN", + "ClassIndicator": "Not Applicable", + "EffectiveDate": "19931200", + "LRNO": "1000021" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Class": "Lloyd's Register", + "ClassCode": "LR", + "ClassIndicator": "Classed", + "EffectiveDate": "19950724", + "LRNO": "1000021" + } + ], + "ClassHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Class": "Not Applicable", + "ClassCode": "NN", + "ClassIndicator": "Not Applicable", + "CurrentIndicator": "Current", + "EffectiveDate": "19931200", + "LRNO": "1000021", + "Sequence": "00" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Class": "Lloyd's Register", + "ClassCode": "LR", + "ClassIndicator": "Classed", + "CurrentIndicator": "Current", + "EffectiveDate": "19950724", + "LRNO": "1000021", + "Sequence": "00" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Class": "Lloyd's Register", + "ClassCode": "LR", + "ClassIndicator": "Class contemplated", + "CurrentIndicator": "Historical", + "EffectiveDate": "19931108", + "LRNO": "1000021", + "Sequence": "95" + } + ], + "CompanyComplianceDetails": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "OwCode": "6012336", + "ShortCompanyName": "Montkaj Co", + "CompanyOnOFACSanctionList": "0", + "CompanyOnUNSanctionList": "0", + "CompanyOnEUSanctionList": "0", + "CompanyOnBESSanctionList": "0", + "CompanyInOFACSanctionedCountry": "0", + "CompanyInFATFJurisdiction": "0", + "CompanyOverallComplianceStatus": "0", + "CompanyOnAustralianSanctionList": "0", + "CompanyOnCanadianSanctionList": "0", + "CompanyOnSwissSanctionList": "0", + "CompanyOnOFACSSIList": "0", + "CompanyOnOFACNonSDNSanctionList": "0", + "CompanyOnUAESanctionList": "0" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "OwCode": "9991001", + "ShortCompanyName": "Unknown", + "CompanyOnOFACSanctionList": "0", + "CompanyOnUNSanctionList": "0", + "CompanyOnEUSanctionList": "0", + "CompanyOnBESSanctionList": "0", + "CompanyInOFACSanctionedCountry": "0", + "CompanyInFATFJurisdiction": "0", + "CompanyOverallComplianceStatus": "0", + "CompanyOnAustralianSanctionList": "0", + "CompanyOnCanadianSanctionList": "0", + "CompanyOnSwissSanctionList": "0", + "CompanyOnOFACSSIList": "0", + "CompanyOnOFACNonSDNSanctionList": "0", + "CompanyOnUAESanctionList": "0" + } + ], + "CompanyDetailsComplexWithCodesAndParent": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "Active", + "CountryName": "Cayman Islands", + "FoundedDate": "2017", + "FullAddress": "PO Box 309, George Town, Grand Cayman, KY1-1104, Cayman Islands.", + "FullName": "The Montkaj Co", + "LastChangeDate": "20241009", + "LocationCode": "CAY", + "NationalityofRegistration": "Cayman Islands", + "NationalityofRegistrationCode": "CAY", + "OWCODE": "6012336", + "ParentCompany": "6012336", + "POBox": "309,", + "PostPostcode": "KY1-1104,", + "ShortCompanyName": "MONTKAJ CO", + "TownName": "George Town" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "Active", + "CountryName": "Unknown", + "FoundedDate": "2018", + "FullAddress": "Unknown", + "FullName": "Unknown", + "LastChangeDate": "20251106", + "LocationCode": "UNK", + "NationalityofRegistration": "Unknown", + "NationalityofRegistrationCode": "UNK", + "OWCODE": "9991001", + "ParentCompany": "9991001", + "ShortCompanyName": "UNKNOWN" + } + ], + "CompanyFleetCounts": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "DOCCount": "0", + "FleetSize": "1", + "GroupOwnerCount": "0", + "InServiceCount": "1", + "OperatorCount": "1", + "OWCODE": "6012336", + "RegisteredOwnerCount": "1", + "ShipManagerCount": "1", + "ShortCompanyName": "Montkaj Co", + "TechnicalManagerCount": "0" + } + ], + "CompanyOrderBookCounts": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "DOCOrderbookCount": "0", + "GroupOwnerOrderbookCount": "0", + "OperatorOrderbookCount": "0", + "OWCODE": "6012336", + "RegisteredOrderbookOwnerCount": "0", + "ShipManagerOrderbookCount": "0" + } + ], + "CompanyVesselRelationships": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "DOCCode": "9991001", + "DOCCompany": " Unknown", + "GroupBeneficialOwner": " Unknown", + "GroupBeneficialOwnerCode": "9991001", + "LRNO": "1000021", + "Operator": "Montkaj Co", + "OperatorCode": "6012336", + "RegisteredOwner": "Montkaj Co", + "RegisteredOwnerCode": "6012336", + "ShipManager": "Montkaj Co", + "ShipManagerCode": "6012336", + "TechnicalManager": " Unknown", + "TechnicalManagerCode": "9991001" + } + ], + "EngineBuilder": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "EngineBuilderLargestCode": "USA606572", + "EngineBuilderShortName": "CATERPILLAR INC", + "EngineBuilderFullName": "Caterpillar Inc -USA ", + "FullAddress": "100, NE Adams Street, Peoria IL 61629-0001 ", + "TownName": "Peoria, IL", + "CountryName": "United States of America", + "Telephone": "+1 309 675 1000", + "Facsimile": "+1 309 675 4332", + "Website": "www.caterpillar.com", + "CountryCode": "USA", + "TownCode": "9069" + } + ], + "FlagHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "EffectiveDate": "199312", + "Flag": "Cayman Islands (British)", + "FlagCode": "CAY", + "LRNO": "1000021", + "Sequence": "00" + } + ], + "GrossTonnageHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "EffectiveDate": "199312", + "GT": "1980", + "LRNO": "1000021", + "Sequence": "00" + } + ], + "GroupBeneficialOwnerHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "19951123", + "GroupBeneficialOwner": "Unknown", + "GroupBeneficialOwnerCode": "9991001", + "LRNO": "1000021", + "Sequence": "00" + } + ], + "LiftingGear": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "GearType": "Unknown", + "LRNO": "1000021", + "MaxSWLOfGear": "0.00", + "NumberOfGears": "0", + "Sequence": "01" + } + ], + "MainEngine": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "BHPOfMainOilEngines": "5052", + "Bore": "170", + "CylinderArrangementCode": "V", + "CylinderArrangementDecode": "VEE", + "EngineBuilder": "Caterpillar Inc - USA", + "EngineBuilderCode": "CAT", + "EngineDesigner": "Caterpillar", + "EngineMakerCode": "USA606572", + "EngineModel": "3516TA", + "EngineType": "Oil", + "LRNO": "1000021", + "NumberOfCylinders": "16", + "Position": "PORT", + "PowerBHP": "2526", + "PowerKW": "1858", + "RPM": "1828", + "Stroke": "190", + "StrokeType": "4" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "BHPOfMainOilEngines": "5052", + "Bore": "170", + "CylinderArrangementCode": "V", + "CylinderArrangementDecode": "VEE", + "EngineBuilder": "Caterpillar Inc - USA", + "EngineBuilderCode": "CAT", + "EngineDesigner": "Caterpillar", + "EngineMakerCode": "USA606572", + "EngineModel": "3516TA", + "EngineType": "Oil", + "LRNO": "1000021", + "NumberOfCylinders": "16", + "Position": "STARBOARD", + "PowerBHP": "2526", + "PowerKW": "1858", + "RPM": "1828", + "Stroke": "190", + "StrokeType": "4" + } + ], + "NameHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Effective_Date": "199507", + "LRNO": "1000021", + "Sequence": "00", + "VesselName": "MONTKAJ" + } + ], + "OperatorHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20170899", + "LRNO": "1000021", + "Operator": "Montkaj Co", + "OperatorCode": "6012336", + "Sequence": "00" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20080109", + "LRNO": "1000021", + "Operator": "Al Bilad Establishment", + "OperatorCode": "5355442", + "Sequence": "94" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20000701", + "LRNO": "1000021", + "Operator": "Sete Yacht Management SA", + "OperatorCode": "3026819", + "Sequence": "95" + } + ], + "OwnerHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20170899", + "LRNO": "1000021", + "Owner": "Montkaj Co", + "OwnerCode": "6012336", + "Sequence": "00" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20080109", + "LRNO": "1000021", + "Owner": "Al Bilad Establishment", + "OwnerCode": "5355442", + "Sequence": "93" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20000701", + "LRNO": "1000021", + "Owner": "Mont Shipping Ltd", + "OwnerCode": "3032888", + "Sequence": "94" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "19951123", + "LRNO": "1000021", + "Owner": "Guevar Investments Corp", + "OwnerCode": "3019251", + "Sequence": "95" + } + ], + "PandIHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000021", + "Sequence": "00", + "PandIClubCode": "6206831", + "PandIClubDecode": "Steamship Mutual", + "EffectiveDate": "20220225", + "Source": "P&I_SSM_20220225" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000021", + "Sequence": "90", + "PandIClubCode": "9991001", + "PandIClubDecode": "Unknown", + "EffectiveDate": "20210311", + "Source": "P&I_SSM_20220225" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000021", + "Sequence": "91", + "PandIClubCode": "6206831", + "PandIClubDecode": "Steamship Mutual", + "EffectiveDate": "20140702", + "Source": "P&I_GO_LIVE_20211110" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000021", + "Sequence": "92", + "PandIClubCode": "6206831", + "PandIClubDecode": "Steamship Mutual", + "EffectiveDate": "20130114", + "Source": "P&I_GO_LIVE_20211110" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000021", + "Sequence": "93", + "PandIClubCode": "6206831", + "PandIClubDecode": "Steamship Mutual", + "EffectiveDate": "20120503", + "Source": "P&I_GO_LIVE_20211110" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000021", + "Sequence": "94", + "PandIClubCode": "6219108", + "PandIClubDecode": "Shipowners' Club", + "EffectiveDate": "20070401", + "Source": "P&I_GO_LIVE_20211110" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000021", + "Sequence": "95", + "PandIClubCode": "9991001", + "PandIClubDecode": "Unknown", + "EffectiveDate": "20060220", + "Source": "P&I_GO_LIVE_20211110" + } + ], + "Propellers": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000021", + "NozzleType": "Unknown", + "PropellerPosition": "Port", + "PropellerType": "Controllable Pitch", + "PropellerTypeCode": "CP", + "RPMMaximum": "313", + "RPMService": "0", + "Sequence": "01" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000021", + "NozzleType": "Unknown", + "PropellerPosition": "Starboard", + "PropellerType": "Controllable Pitch", + "PropellerTypeCode": "CP", + "RPMMaximum": "313", + "RPMService": "0", + "Sequence": "02" + } + ], + "SafetyManagementCertificateHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000021", + "SafetyManagementCertificateDateIssued": "20130716", + "SafetyManagementCertificateDOCCompany": "Unknown", + "SafetyManagementCertificateSource": "LRF", + "SafetyManagementCertificateCompanyCode": "9991001", + "Sequence": "00" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000021", + "SafetyManagementCertificateAuditor": "LR", + "SafetyManagementCertificateConventionOrVol": "C", + "SafetyManagementCertificateDateExpires": "20150211", + "SafetyManagementCertificateDateIssued": "20100212", + "SafetyManagementCertificateDOCCompany": "Knight Caledonian Ltd", + "SafetyManagementCertificateFlag": "United Kingdom", + "SafetyManagementCertificateIssuer": "Lloyd's Register", + "SafetyManagementCertificateShipName": "", + "SafetyManagementCertificateSource": "LR\\102011", + "SafetyManagementCertificateCompanyCode": "0003243", + "Sequence": "94" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000021", + "SafetyManagementCertificateAuditor": "", + "SafetyManagementCertificateConventionOrVol": "", + "SafetyManagementCertificateDateIssued": "19971101", + "SafetyManagementCertificateDOCCompany": "Unknown", + "SafetyManagementCertificateFlag": "", + "SafetyManagementCertificateIssuer": "", + "SafetyManagementCertificateOtherDescription": "", + "SafetyManagementCertificateShipName": "", + "SafetyManagementCertificateShipType": "", + "SafetyManagementCertificateSource": "LRF", + "SafetyManagementCertificateCompanyCode": "9991001", + "Sequence": "95" + } + ], + "ShipBuilderDetail": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "BuilderCode": "NTH001062", + "BuilderStatus": "Closed", + "CountryCode": "NTH", + "CountryName": "Netherlands", + "Facsimile": "+31 515 232719", + "FullAddress": "Stranwei 6, 8754 HA Makkum. Postbus 1, 8754 ZN Makkum ", + "Shipbuilder": "Amels Holland BV", + "ShipbuilderFullStyle": "Amels Holland BV - Makkum", + "Telephone": "+31 515 232525", + "Telex": "46183", + "TownCode": "0220" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "BuilderCode": "NTH263072", + "BuilderStatus": "Current", + "CountryCode": "NTH", + "CountryName": "Netherlands", + "Facsimile": "+31 78 6411199", + "FullAddress": "Scheepvaartweg 11, 3356 LL Papendrecht. Postbus 1146, 3350 CC Papendrecht ", + "Shipbuilder": "Slob Scheepswerf Papendre", + "ShipbuilderFullStyle": "Scheepswerf Slob B.V. - Papendrecht", + "Telephone": "+31 78 6150266", + "TownCode": "0998" + } + ], + "ShipBuilderAndSubContractor": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "BuilderCode": "NTH263072", + "LRNO": "1000021", + "Section": "Sub-Contractor (Hull)", + "SequenceNumber": "01" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "BuilderCode": "NTH001062", + "LRNO": "1000021", + "Section": "Main Contractor", + "SequenceNumber": "02" + } + ], + "ShipBuilderHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "BuilderCode": "NTH263072", + "BuilderHistory": "(Formerly Scheepsbouwwerf Slob B.V., SLOB previously N.V. Scheepsbouwwerf en Lasbedrijf v/h J.C. Slob.) SLO", + "BuilderType": "Shipbuilder" + } + ], + "ShipManagerHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20170899", + "LRNO": "1000021", + "Sequence": "00", + "ShipManager": "Montkaj Co", + "ShipManagerCode": "6012336" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20080109", + "LRNO": "1000021", + "Sequence": "94", + "ShipManager": "Al Bilad Establishment", + "ShipManagerCode": "5355442" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20000701", + "LRNO": "1000021", + "Sequence": "95", + "ShipManager": "Sete Yacht Management SA", + "ShipManagerCode": "3026819" + } + ], + "ShipTypeHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "EffDate": "199312", + "LRNO": "1000021", + "Sequence": "00", + "Shiptype": "Yacht", + "ShiptypeCode": "X11A2YP" + } + ], + "SpecialFeature": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000021", + "Sequence": "001", + "SpecialFeature": "7 Bulkheads", + "SpecialFeatureCode": "0507" + } + ], + "StatusHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000021", + "Sequence": "00", + "Status": "IN SERVICE/COMMISSION", + "StatusCode": "S", + "StatusDate": "19951000" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000021", + "Sequence": "94", + "Status": "KEEL LAID", + "StatusCode": "E", + "StatusDate": "19931108" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000021", + "Sequence": "93", + "Status": "LAUNCHED", + "StatusCode": "F", + "StatusDate": "19940430" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000021", + "Sequence": "95", + "Status": "ON ORDER/NOT COMMENCED", + "StatusCode": "O", + "StatusDate": "19930700" + } + ], + "SurveyDates": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "ClassSociety": "Lloyd's Register", + "ClassSocietyCode": "LR", + "ContinuousMachinerySurvey": "2005-07-31", + "DockingSurvey": "2024-08-09", + "LRNO": "1000021", + "SpecialSurvey": "2025-07-24", + "TailShaftSurvey": "2024-12-01" + } + ], + "TechnicalManagerHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20130716", + "LRNO": "1000021", + "Sequence": "00", + "TechnicalManager": "Unknown", + "TechnicalManagerCode": "9991001" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20100212", + "LRNO": "1000021", + "Sequence": "95", + "TechnicalManager": "Knight Caledonian Ltd", + "TechnicalManagerCode": "0003243" + } + ], + "Thrusters": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000021", + "Sequence": "01", + "ThrusterType": "Thwart. FP thruster", + "ThrusterTypeCode": "FP", + "NumberOfThrusters": "1", + "ThrusterPosition": "Forward", + "ThrusterBHP": "0", + "ThrusterKW": "0", + "TypeOfInstallation": "Not Applicable" + } + ], + "TurboCharger": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Builder": "ABBTURBOSWZ", + "CountryOfBuild": "SWZ", + "Design": "BROWNBOVERI", + "LRNO": "1000021", + "Main_AuxEng": "MN", + "SequenceNumber": "1" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Builder": "ABBTURBOSWZ", + "CountryOfBuild": "SWZ", + "Design": "BROWNBOVERI", + "LRNO": "1000021", + "Main_AuxEng": "MN", + "SequenceNumber": "2" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Builder": "ABBTURBOSWZ", + "CountryOfBuild": "SWZ", + "Design": "BROWNBOVERI", + "LRNO": "1000021", + "Main_AuxEng": "MN", + "SequenceNumber": "3" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Builder": "ABBTURBOSWZ", + "CountryOfBuild": "SWZ", + "Design": "BROWNBOVERI", + "LRNO": "1000021", + "Main_AuxEng": "MN", + "SequenceNumber": "4" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Builder": "CATERPILLARUSA", + "CountryOfBuild": "USA", + "Design": "CATERPILLAR", + "LRNO": "1000021", + "Main_AuxEng": "AUX", + "SequenceNumber": "5" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Builder": "CATERPILLARUSA", + "CountryOfBuild": "USA", + "Design": "CATERPILLAR", + "LRNO": "1000021", + "Main_AuxEng": "AUX", + "SequenceNumber": "6" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000021", + "Main_AuxEng": "AUX", + "SequenceNumber": "7" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000021", + "Main_AuxEng": "AUX", + "SequenceNumber": "8" + } + ], + "CallSignAndMmsiHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Lrno": "1000021", + "SeqNo": "00", + "CallSign": "ZCCB8", + "EffectiveDate": "199312" + } + ], + "SurveyDatesHistoryUnique": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000021", + "ClassSocietyCode": "LR", + "SurveyDate": "2019-12-02", + "SurveyType": "TailshaftSurvey", + "ClassSociety": "Lloyd's Register" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000021", + "ClassSocietyCode": "LR", + "SurveyDate": "2020-07-25", + "SurveyType": "SpecialSurvey", + "ClassSociety": "Lloyd's Register" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000021", + "ClassSocietyCode": "LR", + "SurveyDate": "2021-08-10", + "SurveyType": "DockingSurvey", + "ClassSociety": "Lloyd's Register" + } + ] + }, + "APSStatus": { + "SystemVersion": "1.1.0", + "SystemDate": "2015-08-20T00:00:00", + "JobRunDate": "2025-11-07T02:03:16.9577773+00:00", + "CompletedOK": true, + "ErrorLevel": "None", + "ErrorMessage": "", + "RemedialAction": "", + "Guid": "0238ec39-c5f2-4fc4-93c8-5444b1761eaa" + } + }, + { + "shipCount": 1, + "APSShipDetail": { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "AuxiliaryEnginesNarrative": "Design: John Deere, Engine Builder: John Deere 2 x 4039DFM, 4 Stroke 4Cy. 106 x 110, Mcr: 45 kW", + "AuxiliaryGeneratorsDescriptiveNarrative": "2 x 45kW 380V 50Hz a.c.", + "BaleCapacity": "0", + "BollardPull": "0", + "BreadthExtreme": "7.500", + "BreadthMoulded": "7.200", + "CallSign": "MVWV7", + "CargoCapacitiesNarrative": "", + "CargoGradesSegregations": "0", + "ClassNarrative": "Lloyd's Register (1995-04-21)LR Class: + 100 A1 Survey Type: Special Survey Date: 2015-04 Class Notation: Yacht LR Machinery Class: LR Maltese Cross LMC LR Hull Notes: 3BH WBnil", + "ClassificationSociety": "Lloyd's Register 1995-04-21", + "ClassificationSocietyCode": "LR", + "CleanBallastCapacity": "0", + "ClearHeightOfROROLanes": "0.00", + "CompensatedGrossTonnageCGT": "0", + "ContractDate": "19930421", + "ConstructionDescriptiveNarrative": "Statcode5:X11A2YP; Hull Type:Single Hull; Hull Material:Steel; Hull Connections:Welded; Decks:1 dk", + "CoreShipInd": "1", + "CountryOfBuild": "Netherlands", + "CountryOfBuildCode": "NTH", + "DateOfBuild": "199504", + "Deadweight": "0", + "DeliveryDate": "19950512", + "Depth": "3.630", + "DischargeDiameterOfCargoManifold": "0.00", + "Displacement": "0", + "DOCCompany": " Unknown", + "DocumentOfComplianceDOCCompanyCode": "9991001", + "Draught": "0.000", + "FlagCode": "GBI", + "FlagEffectiveDate": "199612", + "FlagName": "United Kingdom", + "FormulaDWT": "312.71", + "FuelType1Capacity": "0.00", + "FuelType1Code": "YY", + "FuelType1First": "Yes, But Type Not Known", + "FuelType2Capacity": "0.00", + "FuelType2Code": "NN", + "FuelType2Second": "Not Applicable", + "GasCapacity": "0", + "GrainCapacity": "0", + "GrossTonnage": "178", + "GroupBeneficialOwner": "Manx Commercial Yacht", + "GroupBeneficialOwnerCompanyCode": "3020695", + "GroupBeneficialOwnerCountryOfControl": "United Kingdom", + "GroupBeneficialOwnerCountryOfDomicile": "United Kingdom", + "GroupBeneficialOwnerCountryOfDomicileCode": "GBI", + "GroupBeneficialOwnerCountryOfRegistration": "Isle Of Man", + "HeatingCoilsInCargoTanks": "Unknown", + "HullMaterial": "Steel (Unspecified)", + "HullMaterialCode": "ST", + "HullShapeCode": "N1", + "HullType": "Single Hull", + "HullTypeCode": "SH", + "InsulatedCapacity": "0", + "KeelLaidDate": "19931200", + "KeelToMastHeight": "0.000", + "LanesDoorsRampsNarrative": "", + "LastUpdateDate": "2024-10-23T08:44:27.47", + "LaunchDate": "19940600", + "LegalOverall": "0", + "ShipOverallComplianceStatus": "0", + "ShipDarkActivityIndicator": "0", + "ShipFlagDisputed": "0", + "ShipFlagSanctionedCountry": "0", + "ShipHistoricalFlagSanctionedCountry": "0", + "ShipOwnerHistoricalOFACSanctionedCountry": "0", + "ShipOwnerFATFJurisdiction": "0", + "ShipOwnerOFACSanctionedCountry": "0", + "ShipOwnerBESSanctionList": "0", + "ShipOwnerEUSanctionList": "0", + "ShipOwnerOFACSanctionList": "0", + "ShipOwnerUNSanctionList": "0", + "ShipOwnerParentFATFJurisdiction": "0", + "ShipOwnerParentOFACSanctionedCountry": "0", + "ShipSanctionedCountryPortCallLast12m": "0", + "ShipSanctionedCountryPortCallLast3m": "0", + "ShipSanctionedCountryPortCallLast6m": "0", + "ShipEUSanctionList": "0", + "ShipOFACNonSDNSanctionList": "0", + "ShipOFACSanctionList": "0", + "ShipUNSanctionList": "0", + "ShipOFACSSIList": "0", + "ShipOwnerCanadianSanctionList": "0", + "ShipOwnerAustralianSanctionList": "0", + "ShipUSTreasuryOFACAdvisoryList": "0", + "ShipSwissSanctionList": "0", + "ShipOwnerSwissSanctionList": "0", + "ShipSTSPartnerNonComplianceLast12m": "0", + "ShipSecurityLegalDisputeEventLast12m": "0", + "ShipDetailsNoLongerMaintained": "0", + "ShipBESSanctionList": "0", + "ShipOwnerParentCompanyNonCompliance": "0", + "ShipOwnerUAESanctionList": "0", + "LengthBetweenPerpendicularsLBP": "27.100", + "LengthOfROROLanes": "0", + "LengthOverallLOA": "31.500", + "LengthRegistered": "0.000", + "LightDisplacementTonnage": "0", + "LiquidCapacity": "0", + "IHSLRorIMOShipNo": "1000033", + "MainEngineBore": "137", + "MainEngineBuilder": "Caterpillar Inc - USA", + "MainEngineBuilderCode": "USA606572", + "MainEngineDesigner": "Caterpillar", + "MainEngineDesignerCode": "CAT", + "MainEngineDesignerGroup": "Caterpillar", + "MainEngineDesignerGroupCode": "CAT", + "MainEngineModel": "3408TA", + "MainEngineNumberOfCylinders": "8", + "MainEngineRPM": "1800", + "MainEngineStrokeType": "4", + "MainEngineType": "Oil", + "MaritimeMobileServiceIdentityMMSINumber": "234028000", + "NetTonnage": "53", + "NewconstructionEntryDate": "199304", + "NumberOfAllEngines": "4", + "NumberOfAuxiliaryEngines": "2", + "NumberOfCabins": "0", + "NumberOfDecks": "1", + "NumberOfMainEngines": "2", + "NumberOfPropulsionUnits": "2", + "NumberOfROROLanes": "0", + "NumberOfThrusters": "1", + "OfficialNumber": "728711", + "Operator": "Hill Robinson Yacht Mgmt-FRA", + "OperatorCompanyCode": "5039982", + "OperatorCountryOfControl": "France", + "OperatorCountryOfDomicileCode": "FRA", + "OperatorCountryOfDomicileName": "France", + "OperatorCountryOfRegistration": "France", + "PanamaCanalNetTonnagePCNT": "0", + "PandIClub": "Unknown", + "PandIClubCode": "9991001", + "PassengerCapacity": "0", + "PassengersBerthed": "0", + "PortOfRegistryCode": "0819", + "PortOfRegistry": "Southampton", + "PortOfRegistryFullCode": "GBI0819", + "PowerBHPIHPSHPMax": "1034", + "PowerBHPIHPSHPService": "0", + "PowerKWMax": "760", + "PowerKWService": "0", + "PrimeMoverDescriptiveNarrative": " 2 oil engines reverse reduction geared to screw shafts driving 2 FP propellers Total Power: Mcr 760kW (1,034hp)", + "PrimeMoverDescriptiveOverviewNarrative": "Design: Caterpillar (Group: Caterpillar), Engine Builder: Caterpillar Inc - USA 2 x 3408TA, 4 Stroke, Single Acting, Vee 8 Cy. 137 x 152, Mcr: 380 kW (517 hp) at 1,800 rpm", + "PropellerType": "Fixed Pitch", + "PropulsionType": "Oil Engine(s), Geared Drive", + "PropulsionTypeCode": "DG", + "ReeferPoints": "0", + "RegisteredOwner": "Jolly Maritime Sailing Ltd", + "RegisteredOwnerCode": "3019278", + "RegisteredOwnerCountryOfControl": "United Kingdom", + "RegisteredOwnerCountryOfDomicile": "Jersey", + "RegisteredOwnerCountryOfDomicileCode": "JER", + "RegisteredOwnerCountryOfRegistration": "Jersey", + "SafetyManagementCertificateAuditor": "", + "SafetyManagementCertificateConventionOrVol": "", + "SafetyManagementCertificateDateIssued": "19971101", + "SafetyManagementCertificateDOCCompany": "Unknown", + "SafetyManagementCertificateFlag": "", + "SafetyManagementCertificateIssuer": "", + "SafetyManagementCertificateOtherDescription": "", + "SafetyManagementCertificateShipName": "", + "SafetyManagementCertificateShipType": "", + "SafetyManagementCertificateSource": "LRF", + "SegregatedBallastCapacity": "0", + "ShipManager": "Hill Robinson Yacht Mgmt-FRA", + "ShipManagerCompanyCode": "5039982", + "ShipManagerCountryOfControl": "France", + "ShipManagerCountryOfDomicileName": "France", + "ShipManagerCountryOfDomicileCode": "FRA", + "ShipManagerCountryOfRegistration": "France", + "ShipName": "ASTRALIUM", + "ShipStatus": "In Service/Commission", + "ShipStatusCode": "S", + "ShipStatusEffectiveDate": "19950512", + "Shipbuilder": "Werff & Visser Irnsum", + "ShipbuilderCompanyCode": "NTH451070", + "ShipbuilderFullStyle": "Scheepswerf van der Werff en Visser - Irnsum", + "ShipbuilderSubContractor": "LOWLAND", + "ShipbuilderSubContractorCode": "NTHA70052", + "ShiptypeLevel2": "Non Merchant", + "ShiptypeLevel3": "Non Merchant", + "ShiptypeLevel4": "Yacht", + "ShiptypeLevel5": "Yacht", + "ShiptypeLevel5HullType": "Ship Shape Including Multi-Hulls", + "ShiptypeLevel5SubGroup": "Yacht", + "ShiptypeLevel5SubType": "Yacht, Private", + "SpeedMax": "0.00", + "SpeedService": "0.00", + "StatCode5": "X11A2YP", + "SuezCanalNetTonnageSCNT": "0", + "TechnicalManager": "Hill Robinson Yacht Mgmt-FRA", + "TechnicalManagerCode": "5039982", + "TechnicalManagerCountryOfControl": "France", + "TechnicalManagerCountryOfDomicile": "France", + "TechnicalManagerCountryOfDomicileCode": "FRA", + "TechnicalManagerCountryOfRegistration": "France", + "TEU": "0", + "TEUCapacity14THomogenous": "0", + "ThrustersDescriptiveNarrative": "1 Thwart. FP thruster (f)", + "TonnageEffectiveDate": "199504", + "TonnageSystem69Convention": "I", + "TonnesPerCentimetreImmersionTPCI": "0.000", + "TotalHorsepowerOfAuxiliaryGenerators": "120", + "TotalHorsepowerOfMainEngines": "1034", + "TotalKilowattsOfMainEngines": "760", + "TotalPowerOfAllEngines": "850", + "TotalPowerOfAuxiliaryEngines": "90", + "YardNumber": "433", + "YearOfBuild": "1995", + "MainEngineTypeCode": "01", + "CargoOtherType": "Not Applicable", + "CargoOtherCapacity": "", + "NuclearPowerIndicator": "N", + "AuxPropulsionIndicator": "N", + "MainEngineReEngineIndicator": "N", + "MainEngineTypeOfInstallation": "O", + "MainEngineTypeOfInstallationDecode": "ORIGINAL", + "MainEngineStrokeCycle": "SINGLE-ACTING", + "AdditionalInformation": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "TweenDeckFixed": "N", + "TweenDeckPortable": "N", + "DrillBargeInd": "N", + "LRNO": "1000033", + "ProductionVesselInd": "N" + } + ], + "AuxEngine": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Bore": "106", + "EngineDesigner": "John Deere", + "EngineModel": "4039DFM", + "EngineBuilder": "John Deere", + "EngineSequence": "1", + "LRNO": "1000033", + "MaxPower": "45", + "NumberOfCylinders": "4", + "Stroke": "110", + "StrokeType": "4" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Bore": "106", + "EngineDesigner": "John Deere", + "EngineModel": "4039DFM", + "EngineBuilder": "John Deere", + "EngineSequence": "2", + "LRNO": "1000033", + "MaxPower": "45", + "NumberOfCylinders": "4", + "Stroke": "110", + "StrokeType": "4" + } + ], + "AuxGenerator": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "ACDC": "AC", + "Frequency": "50", + "KWEach": "45.00", + "LRNO": "1000033", + "MainEngineDriven": "N", + "Number": "2", + "SEQ": "01", + "Voltage1": "380", + "Voltage2": "0" + } + ], + "BuilderAddress": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "BuilderCode": "NTH451070", + "CountryCode": "NTH", + "CountryName": "Netherlands", + "ShipBuilder": "Werff & Visser Irnsum", + "ShipBuilderFullStyle": "Scheepswerf van der Werff en Visser - Irnsum", + "Town": "Irnsum", + "TownCode": "0234", + "BuilderStatus": "Closed" + } + ], + "Capacities": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000033", + "Bale": "0", + "Horsepower": "1034", + "BollardPull": "0", + "GasCapacity": "0", + "GrainCapacity": "0", + "LiquidCapacity": "0", + "NumberOfPassengers": "0", + "NumberRefrigeratedContainers": "0", + "NumberOfTEU": "0" + } + ], + "CargoPump": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CubicMetersCapacity": "0", + "CubicTonsCapacity": "0", + "LRNO": "1000033", + "NumberOfPumps": "0", + "Sequence": "1" + } + ], + "ClassCurrent": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Class": "Not Applicable", + "ClassCode": "NN", + "ClassIndicator": "Not Applicable", + "EffectiveDate": "19950300", + "LRNO": "1000033" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Class": "Lloyd's Register", + "ClassCode": "LR", + "ClassIndicator": "Classed", + "EffectiveDate": "19950421", + "LRNO": "1000033" + } + ], + "ClassHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Class": "Not Applicable", + "ClassCode": "NN", + "ClassIndicator": "Not Applicable", + "CurrentIndicator": "Current", + "EffectiveDate": "19950300", + "LRNO": "1000033", + "Sequence": "00" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Class": "Lloyd's Register", + "ClassCode": "LR", + "ClassIndicator": "Classed", + "CurrentIndicator": "Current", + "EffectiveDate": "19950421", + "LRNO": "1000033", + "Sequence": "00" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Class": "Lloyd's Register", + "ClassCode": "LR", + "ClassIndicator": "Class contemplated", + "CurrentIndicator": "Historical", + "EffectiveDate": "19931231", + "LRNO": "1000033", + "Sequence": "95" + } + ], + "CompanyComplianceDetails": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "OwCode": "3019278", + "ShortCompanyName": "Jolly Maritime Sailing Ltd", + "CompanyOnOFACSanctionList": "0", + "CompanyOnUNSanctionList": "0", + "CompanyOnEUSanctionList": "0", + "CompanyOnBESSanctionList": "0", + "CompanyInOFACSanctionedCountry": "0", + "CompanyInFATFJurisdiction": "0", + "ParentCompanyComplianceRisk": "0", + "CompanyOverallComplianceStatus": "0", + "CompanyOnAustralianSanctionList": "0", + "CompanyOnCanadianSanctionList": "0", + "CompanyOnSwissSanctionList": "0", + "CompanyOnOFACSSIList": "0", + "CompanyOnOFACNonSDNSanctionList": "0", + "CompanyOnUAESanctionList": "0" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "OwCode": "3020695", + "ShortCompanyName": "Manx Commercial Yacht", + "CompanyOnOFACSanctionList": "0", + "CompanyOnUNSanctionList": "0", + "CompanyOnEUSanctionList": "0", + "CompanyOnBESSanctionList": "0", + "CompanyInOFACSanctionedCountry": "0", + "CompanyInFATFJurisdiction": "0", + "CompanyOverallComplianceStatus": "0", + "CompanyOnAustralianSanctionList": "0", + "CompanyOnCanadianSanctionList": "0", + "CompanyOnSwissSanctionList": "0", + "CompanyOnOFACSSIList": "0", + "CompanyOnOFACNonSDNSanctionList": "0", + "CompanyOnUAESanctionList": "0" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "OwCode": "5039982", + "ShortCompanyName": "Hill Robinson Yacht Mgmt-FRA", + "CompanyOnOFACSanctionList": "0", + "CompanyOnUNSanctionList": "0", + "CompanyOnEUSanctionList": "0", + "CompanyOnBESSanctionList": "0", + "CompanyInOFACSanctionedCountry": "0", + "CompanyInFATFJurisdiction": "0", + "CompanyOverallComplianceStatus": "0", + "CompanyOnAustralianSanctionList": "0", + "CompanyOnCanadianSanctionList": "0", + "CompanyOnSwissSanctionList": "0", + "CompanyOnOFACSSIList": "0", + "CompanyOnOFACNonSDNSanctionList": "0", + "CompanyOnUAESanctionList": "0" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "OwCode": "9991001", + "ShortCompanyName": "Unknown", + "CompanyOnOFACSanctionList": "0", + "CompanyOnUNSanctionList": "0", + "CompanyOnEUSanctionList": "0", + "CompanyOnBESSanctionList": "0", + "CompanyInOFACSanctionedCountry": "0", + "CompanyInFATFJurisdiction": "0", + "CompanyOverallComplianceStatus": "0", + "CompanyOnAustralianSanctionList": "0", + "CompanyOnCanadianSanctionList": "0", + "CompanyOnSwissSanctionList": "0", + "CompanyOnOFACSSIList": "0", + "CompanyOnOFACNonSDNSanctionList": "0", + "CompanyOnUAESanctionList": "0" + } + ], + "CompanyDetailsComplexWithCodesAndParent": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CareOfCode": "5039982", + "CompanyStatus": "Active", + "CountryName": "France", + "Emailaddress": "info@hillrobinson.com", + "FoundedDate": "1995", + "FullAddress": "C/O: Yacht Management Consultants Sarl (Hill Robinson Yacht Management Consultants) Residence du Port Vauban, 17, avenue du 11 Novembre, 06600, Antibes, France.", + "FullName": "Jolly Maritime Sailing Ltd", + "LastChangeDate": "20251008", + "LocationCode": "FRA", + "NationalityofControl": "United Kingdom", + "NationalityofControlCode": "GBI", + "NationalityofRegistration": "Jersey", + "NationalityofRegistrationCode": "JER", + "OWCODE": "3019278", + "ParentCompany": "3020695", + "PrePostcode": "06600", + "RoomFloorBuilding1": "Residence du Port Vauban,", + "ShortCompanyName": "JOLLY MARITIME SAILING LTD", + "Street": "avenue du 11 Novembre", + "StreetNumber": "17,", + "Telephone": "+33 4 92 90 59 59", + "TownName": "Antibes", + "Website": "https://www.hillrobinson.com" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "Active", + "CountryName": "United Kingdom", + "Emailaddress": "max@manxcom.com", + "FoundedDate": "1995", + "FullAddress": "47, Newtown Road, Warsash, Southampton, SO31 9FY, United Kingdom.", + "FullName": "Manx Commercial Yacht Management Ltd", + "LastChangeDate": "20240902", + "LocationCode": "GBI", + "NationalityofControl": "United Kingdom", + "NationalityofControlCode": "GBI", + "NationalityofRegistration": "Isle of Man", + "NationalityofRegistrationCode": "IOM", + "OWCODE": "3020695", + "ParentCompany": "3020695", + "PostPostcode": "SO31 9FY,", + "ShortCompanyName": "MANX COMMERCIAL YACHT", + "Street": "Newtown Road, Warsash", + "StreetNumber": "47,", + "Telephone": "+44 1489 570057", + "TownName": "Southampton" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "Active", + "CountryName": "France", + "Emailaddress": "info@hillrobinson.com", + "FoundedDate": "2001", + "FullAddress": "Residence du Port Vauban, 17, avenue du 11 Novembre, 06600, Antibes, France.", + "FullName": "Yacht Management Consultants Sarl (Hill Robinson Yacht Management Consultants)", + "LastChangeDate": "20251103", + "LocationCode": "FRA", + "NationalityofControl": "France", + "NationalityofControlCode": "FRA", + "NationalityofRegistration": "France", + "NationalityofRegistrationCode": "FRA", + "OWCODE": "5039982", + "ParentCompany": "5039982", + "PrePostcode": "06600", + "RoomFloorBuilding1": "Residence du Port Vauban,", + "ShortCompanyName": "HILL ROBINSON YACHT MGMT-FRA", + "Street": "avenue du 11 Novembre", + "StreetNumber": "17,", + "Telephone": "+33 4 92 90 59 59", + "TownName": "Antibes", + "Website": "https://www.hillrobinson.com" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "Active", + "CountryName": "Unknown", + "FoundedDate": "2018", + "FullAddress": "Unknown", + "FullName": "Unknown", + "LastChangeDate": "20251106", + "LocationCode": "UNK", + "NationalityofRegistration": "Unknown", + "NationalityofRegistrationCode": "UNK", + "OWCODE": "9991001", + "ParentCompany": "9991001", + "ShortCompanyName": "UNKNOWN" + } + ], + "CompanyFleetCounts": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "DOCCount": "0", + "FleetSize": "2", + "GroupOwnerCount": "0", + "InServiceCount": "2", + "OperatorCount": "0", + "OWCODE": "3019278", + "RegisteredOwnerCount": "2", + "ShipManagerCount": "0", + "ShortCompanyName": "Jolly Maritime Sailing Ltd", + "TechnicalManagerCount": "0" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "DOCCount": "0", + "FleetSize": "2", + "GroupOwnerCount": "2", + "InServiceCount": "2", + "OperatorCount": "1", + "OWCODE": "3020695", + "RegisteredOwnerCount": "0", + "ShipManagerCount": "0", + "ShortCompanyName": "Manx Commercial Yacht", + "TechnicalManagerCount": "0" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "DOCCount": "8", + "FleetSize": "25", + "GroupOwnerCount": "1", + "InServiceCount": "25", + "OperatorCount": "21", + "OWCODE": "5039982", + "RegisteredOwnerCount": "0", + "ShipManagerCount": "21", + "ShortCompanyName": "Hill Robinson Yacht Mgmt-FRA", + "TechnicalManagerCount": "18" + } + ], + "CompanyOrderBookCounts": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "DOCOrderbookCount": "0", + "GroupOwnerOrderbookCount": "0", + "OperatorOrderbookCount": "0", + "OWCODE": "3019278", + "RegisteredOrderbookOwnerCount": "0", + "ShipManagerOrderbookCount": "0" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "DOCOrderbookCount": "0", + "GroupOwnerOrderbookCount": "0", + "OperatorOrderbookCount": "0", + "OWCODE": "3020695", + "RegisteredOrderbookOwnerCount": "0", + "ShipManagerOrderbookCount": "0" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "DOCOrderbookCount": "0", + "GroupOwnerOrderbookCount": "0", + "OperatorOrderbookCount": "0", + "OWCODE": "5039982", + "RegisteredOrderbookOwnerCount": "0", + "ShipManagerOrderbookCount": "0" + } + ], + "CompanyVesselRelationships": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "DOCCode": "9991001", + "DOCCompany": " Unknown", + "GroupBeneficialOwner": "Manx Commercial Yacht", + "GroupBeneficialOwnerCode": "3020695", + "LRNO": "1000033", + "Operator": "Hill Robinson Yacht Mgmt-FRA", + "OperatorCode": "5039982", + "RegisteredOwner": "Jolly Maritime Sailing Ltd", + "RegisteredOwnerCode": "3019278", + "ShipManager": "Hill Robinson Yacht Mgmt-FRA", + "ShipManagerCode": "5039982", + "TechnicalManager": "Hill Robinson Yacht Mgmt-FRA", + "TechnicalManagerCode": "5039982" + } + ], + "EngineBuilder": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "EngineBuilderLargestCode": "USA606572", + "EngineBuilderShortName": "CATERPILLAR INC", + "EngineBuilderFullName": "Caterpillar Inc -USA ", + "FullAddress": "100, NE Adams Street, Peoria IL 61629-0001 ", + "TownName": "Peoria, IL", + "CountryName": "United States of America", + "Telephone": "+1 309 675 1000", + "Facsimile": "+1 309 675 4332", + "Website": "www.caterpillar.com", + "CountryCode": "USA", + "TownCode": "9069" + } + ], + "FlagHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "EffectiveDate": "199612", + "Flag": "United Kingdom ", + "FlagCode": "GBI", + "LRNO": "1000033", + "Sequence": "00" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "EffectiveDate": "199504", + "Flag": "Luxembourg ", + "FlagCode": "LUX", + "LRNO": "1000033", + "Sequence": "95" + } + ], + "GrossTonnageHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "EffectiveDate": "199504", + "GT": "178", + "LRNO": "1000033", + "Sequence": "00" + } + ], + "GroupBeneficialOwnerHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "19960612", + "GroupBeneficialOwner": "Manx Commercial Yacht", + "GroupBeneficialOwnerCode": "3020695", + "LRNO": "1000033", + "Sequence": "00" + } + ], + "LiftingGear": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "GearType": "Unknown", + "LRNO": "1000033", + "MaxSWLOfGear": "0.00", + "NumberOfGears": "0", + "Sequence": "01" + } + ], + "MainEngine": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "BHPOfMainOilEngines": "1034", + "Bore": "137", + "CylinderArrangementCode": "V", + "CylinderArrangementDecode": "VEE", + "EngineBuilder": "Caterpillar Inc - USA", + "EngineBuilderCode": "CAT", + "EngineDesigner": "Caterpillar", + "EngineMakerCode": "USA606572", + "EngineModel": "3408TA", + "EngineType": "Oil", + "LRNO": "1000033", + "NumberOfCylinders": "8", + "Position": "PORT", + "PowerBHP": "517", + "PowerKW": "380", + "RPM": "1800", + "Stroke": "152", + "StrokeType": "4" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "BHPOfMainOilEngines": "1034", + "Bore": "137", + "CylinderArrangementCode": "V", + "CylinderArrangementDecode": "VEE", + "EngineBuilder": "Caterpillar Inc - USA", + "EngineBuilderCode": "CAT", + "EngineDesigner": "Caterpillar", + "EngineMakerCode": "USA606572", + "EngineModel": "3408TA", + "EngineType": "Oil", + "LRNO": "1000033", + "NumberOfCylinders": "8", + "Position": "STARBOARD", + "PowerBHP": "517", + "PowerKW": "380", + "RPM": "1800", + "Stroke": "152", + "StrokeType": "4" + } + ], + "NameHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Effective_Date": "199504", + "LRNO": "1000033", + "Sequence": "00", + "VesselName": "ASTRALIUM" + } + ], + "OperatorHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20090720", + "LRNO": "1000033", + "Operator": "Hill Robinson Yacht Mgmt-FRA", + "OperatorCode": "5039982", + "Sequence": "00" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20080129", + "LRNO": "1000033", + "Operator": "Yachting Partners Intl Ltd", + "OperatorCode": "1593175", + "Sequence": "93" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20020000", + "LRNO": "1000033", + "Operator": "Manx Commercial Yacht", + "OperatorCode": "3020695", + "Sequence": "94" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "19960600", + "LRNO": "1000033", + "Operator": "Maxwell International", + "OperatorCode": "3019264", + "Sequence": "95" + } + ], + "OwnerHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "19960612", + "LRNO": "1000033", + "Owner": "Jolly Maritime Sailing Ltd", + "OwnerCode": "3019278", + "Sequence": "00" + } + ], + "PandIHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000033", + "Sequence": "00", + "PandIClubCode": "9991001", + "PandIClubDecode": "Unknown", + "EffectiveDate": "20060220" + } + ], + "Propellers": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000033", + "NozzleType": "Unknown", + "PropellerPosition": "Port", + "PropellerType": "Fixed Pitch", + "PropellerTypeCode": "FP", + "RPMMaximum": "0", + "RPMService": "0", + "Sequence": "01" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000033", + "NozzleType": "Unknown", + "PropellerPosition": "Starboard", + "PropellerType": "Fixed Pitch", + "PropellerTypeCode": "FP", + "RPMMaximum": "0", + "RPMService": "0", + "Sequence": "02" + } + ], + "SafetyManagementCertificateHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000033", + "SafetyManagementCertificateAuditor": "", + "SafetyManagementCertificateConventionOrVol": "", + "SafetyManagementCertificateDateIssued": "19971101", + "SafetyManagementCertificateDOCCompany": "Unknown", + "SafetyManagementCertificateFlag": "", + "SafetyManagementCertificateIssuer": "", + "SafetyManagementCertificateOtherDescription": "", + "SafetyManagementCertificateShipName": "", + "SafetyManagementCertificateShipType": "", + "SafetyManagementCertificateSource": "LRF", + "SafetyManagementCertificateCompanyCode": "9991001", + "Sequence": "00" + } + ], + "ShipBuilderDetail": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "BuilderCode": "NTH451070", + "BuilderStatus": "Closed", + "CountryCode": "NTH", + "CountryName": "Netherlands", + "Shipbuilder": "Werff & Visser Irnsum", + "ShipbuilderFullStyle": "Scheepswerf van der Werff en Visser - Irnsum", + "TownCode": "0234" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "BuilderCode": "NTHA70052", + "BuilderStatus": "Current", + "CountryCode": "NTH", + "CountryName": "Netherlands", + "Facsimile": "+31 71 5413897", + "FullAddress": "Hoge Rijndijk 211, 2382 AL Zoeterwoude ", + "Shipbuilder": "Lowland", + "ShipbuilderFullStyle": "Lowland Yachts B.V. - Zoeterwoude", + "Telephone": "+31 71 5410503", + "TownCode": "0588" + } + ], + "ShipBuilderAndSubContractor": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "BuilderCode": "NTH451070", + "LRNO": "1000033", + "Section": "Sub-Contractor (Hull)", + "SequenceNumber": "01" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "BuilderCode": "NTHA70052", + "LRNO": "1000033", + "Section": "Main Contractor", + "SequenceNumber": "02" + } + ], + "ShipManagerHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20090720", + "LRNO": "1000033", + "Sequence": "00", + "ShipManager": "Hill Robinson Yacht Mgmt-FRA", + "ShipManagerCode": "5039982" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20080129", + "LRNO": "1000033", + "Sequence": "93", + "ShipManager": "Yachting Partners Intl Ltd", + "ShipManagerCode": "1593175" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20020000", + "LRNO": "1000033", + "Sequence": "94", + "ShipManager": "Manx Commercial Yacht", + "ShipManagerCode": "3020695" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "19960600", + "LRNO": "1000033", + "Sequence": "95", + "ShipManager": "Maxwell International", + "ShipManagerCode": "3019264" + } + ], + "ShipTypeHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "EffDate": "199504", + "LRNO": "1000033", + "Sequence": "00", + "Shiptype": "Yacht", + "ShiptypeCode": "X11A2YP" + } + ], + "SpecialFeature": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000033", + "Sequence": "001", + "SpecialFeature": "3 Bulkheads", + "SpecialFeatureCode": "0503" + } + ], + "StatusHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000033", + "Sequence": "00", + "Status": "IN SERVICE/COMMISSION", + "StatusCode": "S", + "StatusDate": "19950512" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000033", + "Sequence": "94", + "Status": "KEEL LAID", + "StatusCode": "E", + "StatusDate": "19931200" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000033", + "Sequence": "93", + "Status": "LAUNCHED", + "StatusCode": "F", + "StatusDate": "19940600" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000033", + "Sequence": "95", + "Status": "ON ORDER/NOT COMMENCED", + "StatusCode": "O", + "StatusDate": "19930421" + } + ], + "SurveyDates": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "ClassSociety": "Lloyd's Register", + "ClassSocietyCode": "LR", + "DockingSurvey": "2027-03-24", + "LRNO": "1000033", + "SpecialSurvey": "2030-04-20", + "TailShaftSurvey": "2027-11-30" + } + ], + "TechnicalManagerHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20090720", + "LRNO": "1000033", + "Sequence": "00", + "TechnicalManager": "Hill Robinson Yacht Mgmt-FRA", + "TechnicalManagerCode": "5039982" + } + ], + "Thrusters": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000033", + "Sequence": "01", + "ThrusterType": "Thwart. FP thruster", + "ThrusterTypeCode": "FP", + "NumberOfThrusters": "1", + "ThrusterPosition": "Forward", + "ThrusterBHP": "0", + "ThrusterKW": "0", + "TypeOfInstallation": "Not Applicable" + } + ], + "TurboCharger": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Builder": "CATERPILLARUSA", + "CountryOfBuild": "USA", + "Design": "CATERPILLAR", + "LRNO": "1000033", + "Main_AuxEng": "MN", + "SequenceNumber": "1" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Builder": "CATERPILLARUSA", + "CountryOfBuild": "USA", + "Design": "CATERPILLAR", + "LRNO": "1000033", + "Main_AuxEng": "MN", + "SequenceNumber": "2" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Builder": "CATERPILLARUSA", + "CountryOfBuild": "USA", + "Design": "CATERPILLAR", + "LRNO": "1000033", + "Main_AuxEng": "MN", + "SequenceNumber": "3" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Builder": "CATERPILLARUSA", + "CountryOfBuild": "USA", + "Design": "CATERPILLAR", + "LRNO": "1000033", + "Main_AuxEng": "MN", + "SequenceNumber": "4" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000033", + "Main_AuxEng": "AUX", + "SequenceNumber": "5" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000033", + "Main_AuxEng": "AUX", + "SequenceNumber": "6" + } + ], + "CallSignAndMmsiHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Lrno": "1000033", + "SeqNo": "00", + "CallSign": "MVWV7", + "Mmsi": "234028000", + "EffectiveDate": "199612" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Lrno": "1000033", + "SeqNo": "95", + "EffectiveDate": "199504" + } + ], + "SurveyDatesHistoryUnique": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000033", + "ClassSocietyCode": "LR", + "SurveyDate": "2022-12-01", + "SurveyType": "TailshaftSurvey", + "ClassSociety": "Lloyd's Register" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000033", + "ClassSocietyCode": "LR", + "SurveyDate": "2024-03-25", + "SurveyType": "DockingSurvey", + "ClassSociety": "Lloyd's Register" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000033", + "ClassSocietyCode": "LR", + "SurveyDate": "2025-04-21", + "SurveyType": "SpecialSurvey", + "ClassSociety": "Lloyd's Register" + } + ] + }, + "APSStatus": { + "SystemVersion": "1.1.0", + "SystemDate": "2015-08-20T00:00:00", + "JobRunDate": "2025-11-07T02:03:20.5107134+00:00", + "CompletedOK": true, + "ErrorLevel": "None", + "ErrorMessage": "", + "RemedialAction": "", + "Guid": "6d87ff9e-3f7b-4d82-bae5-16436740a062" + } + }, + { + "shipCount": 1, + "APSShipDetail": { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "AuxiliaryEnginesNarrative": "Design: Mwm, Engine Builder: Deutz Mwm 2 x TD226B-6CD, 4 Stroke 6Cy. 105 x 120, Mcr: 75 kW", + "AuxiliaryGeneratorsDescriptiveNarrative": "2 x 70kW 380V 50Hz a.c.", + "BaleCapacity": "0", + "BollardPull": "0", + "BulbousBow": "N", + "BreadthExtreme": "7.480", + "BreadthMoulded": "7.480", + "CallSign": "SX5322", + "CargoCapacitiesNarrative": "", + "CargoGradesSegregations": "0", + "ClassNarrative": "Registro Italiano Navale (Contemplated) (2022-07-00)", + "ClassificationSociety": "Registro Italiano Navale (Contemplated) 2022-07", + "ClassificationSocietyCode": "RI", + "CleanBallastCapacity": "0", + "ClearHeightOfROROLanes": "0.00", + "CompensatedGrossTonnageCGT": "0", + "ContractDate": "19930429", + "ConstructionDescriptiveNarrative": "Statcode5:X11A2YP; Hull Type:Single Hull; Hull Material:Steel; Hull Connections:Welded; Decks:1 dk", + "CoreShipInd": "1", + "CountryOfBuild": "Italy", + "CountryOfBuildCode": "ITL", + "DateOfBuild": "199504", + "Deadweight": "0", + "DeliveryDate": "19950429", + "Depth": "4.250", + "DischargeDiameterOfCargoManifold": "0.00", + "Displacement": "0", + "DOCCompany": " Unknown", + "DocumentOfComplianceDOCCompanyCode": "9991001", + "Draught": "2.000", + "FlagCode": "GRC", + "FlagEffectiveDate": "199702", + "FlagName": "Greece", + "FormulaDWT": "456.71", + "FuelType1Code": "YY", + "FuelType1First": "Yes, But Type Not Known", + "FuelType2Capacity": "0.00", + "FuelType2Code": "NN", + "FuelType2Second": "Not Applicable", + "GasCapacity": "0", + "GrainCapacity": "0", + "GrossTonnage": "264", + "GroupBeneficialOwner": " Unknown", + "GroupBeneficialOwnerCompanyCode": "9991001", + "HeatingCoilsInCargoTanks": "Unknown", + "HullMaterial": "Steel (Unspecified)", + "HullMaterialCode": "ST", + "HullShapeCode": "N1", + "HullType": "Single Hull", + "HullTypeCode": "SH", + "InmarsatNumberSatCommID": "623948810", + "InsulatedCapacity": "0", + "KeelLaidDate": "19940419", + "KeelToMastHeight": "0.000", + "LanesDoorsRampsNarrative": "", + "LastUpdateDate": "2022-08-05T21:35:04.62", + "LaunchDate": "19950400", + "LegalOverall": "0", + "ShipOverallComplianceStatus": "0", + "ShipDarkActivityIndicator": "0", + "ShipFlagDisputed": "0", + "ShipFlagSanctionedCountry": "0", + "ShipHistoricalFlagSanctionedCountry": "0", + "ShipOwnerHistoricalOFACSanctionedCountry": "0", + "ShipOwnerFATFJurisdiction": "0", + "ShipOwnerOFACSanctionedCountry": "0", + "ShipOwnerBESSanctionList": "0", + "ShipOwnerEUSanctionList": "0", + "ShipOwnerOFACSanctionList": "0", + "ShipOwnerUNSanctionList": "0", + "ShipSanctionedCountryPortCallLast12m": "0", + "ShipSanctionedCountryPortCallLast3m": "0", + "ShipSanctionedCountryPortCallLast6m": "0", + "ShipEUSanctionList": "0", + "ShipOFACNonSDNSanctionList": "0", + "ShipOFACSanctionList": "0", + "ShipUNSanctionList": "0", + "ShipOFACSSIList": "0", + "ShipOwnerCanadianSanctionList": "0", + "ShipOwnerAustralianSanctionList": "0", + "ShipUSTreasuryOFACAdvisoryList": "0", + "ShipSwissSanctionList": "0", + "ShipOwnerSwissSanctionList": "0", + "ShipSTSPartnerNonComplianceLast12m": "0", + "ShipSecurityLegalDisputeEventLast12m": "0", + "ShipDetailsNoLongerMaintained": "0", + "ShipBESSanctionList": "0", + "ShipOwnerParentCompanyNonCompliance": "0", + "ShipOwnerUAESanctionList": "0", + "LengthBetweenPerpendicularsLBP": "32.540", + "LengthOfROROLanes": "0", + "LengthOverallLOA": "38.500", + "LengthRegistered": "0.000", + "LightDisplacementTonnage": "0", + "LiquidCapacity": "0", + "IHSLRorIMOShipNo": "1000045", + "MainEngineBore": "165", + "MainEngineBuilder": "MTU Friedrichshafen GmbH - Friedrichshafen", + "MainEngineBuilderCode": "GEU530552", + "MainEngineDesigner": "M.T.U.", + "MainEngineDesignerCode": "MTU", + "MainEngineDesignerGroup": "Rolls Royce", + "MainEngineDesignerGroupCode": "ROL", + "MainEngineModel": "12V396TE94", + "MainEngineNumberOfCylinders": "12", + "MainEngineRPM": "2100", + "MainEngineStrokeType": "4", + "MainEngineType": "Oil", + "MaritimeMobileServiceIdentityMMSINumber": "239488000", + "NetTonnage": "79", + "NewconstructionEntryDate": "199304", + "NumberOfAllEngines": "4", + "NumberOfAuxiliaryEngines": "2", + "NumberOfCabins": "0", + "NumberOfDecks": "1", + "NumberOfMainEngines": "2", + "NumberOfPropulsionUnits": "2", + "NumberOfROROLanes": "0", + "NumberOfThrusters": "1", + "OfficialNumber": "10455", + "Operator": "Kastro Agency Ltd", + "OperatorCompanyCode": "5019446", + "OperatorCountryOfDomicileCode": "GRC", + "OperatorCountryOfDomicileName": "Greece", + "OperatorCountryOfRegistration": "Greece", + "PanamaCanalNetTonnagePCNT": "0", + "PandIClub": "Unknown", + "PandIClubCode": "9991001", + "PassengerCapacity": "0", + "PassengersBerthed": "0", + "PortOfRegistryCode": "0825", + "PortOfRegistry": "Piraeus", + "PortOfRegistryFullCode": "GRC0825", + "PowerBHPIHPSHPMax": "4568", + "PowerBHPIHPSHPService": "0", + "PowerKWMax": "3360", + "PowerKWService": "0", + "PrimeMoverDescriptiveNarrative": "2 oil engines with clutches, flexible couplings & single reduction reverse geared to screw shafts driving 2 FP propellers at 562 rpm Total Power: Mcr 3,360kW (4,568hp)Max. Speed: 19.00kts, Service Speed: 15.00kts", + "PrimeMoverDescriptiveOverviewNarrative": "Design: M.T.U. (Group: Rolls Royce), Engine Builder: MTU Friedrichshafen GmbH - Friedrichshafen 2 x 12V396TE94, 4 Stroke, Single Acting, Vee 12 Cy. 165 x 185, Mcr: 1,680 kW (2,284 hp) at 2,100 rpm", + "PropellerType": "Fixed Pitch", + "PropulsionType": "Oil Engine(s), Geared Drive", + "PropulsionTypeCode": "DG", + "ReeferPoints": "0", + "RegisteredOwner": "Kastro Agency Ltd", + "RegisteredOwnerCode": "5019446", + "RegisteredOwnerCountryOfDomicile": "Greece", + "RegisteredOwnerCountryOfDomicileCode": "GRC", + "RegisteredOwnerCountryOfRegistration": "Greece", + "SafetyManagementCertificateAuditor": "", + "SafetyManagementCertificateConventionOrVol": "", + "SafetyManagementCertificateDateIssued": "19971101", + "SafetyManagementCertificateDOCCompany": "Unknown", + "SafetyManagementCertificateFlag": "", + "SafetyManagementCertificateIssuer": "", + "SafetyManagementCertificateOtherDescription": "", + "SafetyManagementCertificateShipName": "", + "SafetyManagementCertificateShipType": "", + "SafetyManagementCertificateSource": "LRF", + "SegregatedBallastCapacity": "0", + "ShipManager": "Kastro Agency Ltd", + "ShipManagerCompanyCode": "5019446", + "ShipManagerCountryOfDomicileName": "Greece", + "ShipManagerCountryOfDomicileCode": "GRC", + "ShipManagerCountryOfRegistration": "Greece", + "ShipName": "OKTANA", + "ShipStatus": "In Service/Commission", + "ShipStatusCode": "S", + "ShipStatusEffectiveDate": "19950429", + "Shipbuilder": "Codecasa Tre", + "ShipbuilderCompanyCode": "ITL281055", + "ShipbuilderFullStyle": "Codecasa Tre SpA - Viareggio", + "ShiptypeLevel2": "Non Merchant", + "ShiptypeLevel3": "Non Merchant", + "ShiptypeLevel4": "Yacht", + "ShiptypeLevel5": "Yacht", + "ShiptypeLevel5HullType": "Ship Shape Including Multi-Hulls", + "ShiptypeLevel5SubGroup": "Yacht", + "ShiptypeLevel5SubType": "Yacht, Private", + "SpeedMax": "19.00", + "SpeedService": "15.00", + "StatCode5": "X11A2YP", + "SuezCanalNetTonnageSCNT": "0", + "TechnicalManager": " Unknown", + "TechnicalManagerCode": "9991001", + "TEU": "0", + "TEUCapacity14THomogenous": "0", + "ThrustersDescriptiveNarrative": "1 Thwart. FP thruster (f)", + "TonnageEffectiveDate": "199400", + "TonnageSystem69Convention": "I", + "TonnesPerCentimetreImmersionTPCI": "0.000", + "TotalHorsepowerOfAuxiliaryGenerators": "188", + "TotalHorsepowerOfMainEngines": "4568", + "TotalKilowattsOfMainEngines": "3360", + "TotalPowerOfAllEngines": "3510", + "TotalPowerOfAuxiliaryEngines": "150", + "YardNumber": "104", + "YearOfBuild": "1995", + "MainEngineTypeCode": "01", + "CargoOtherType": "Not Applicable", + "CargoOtherCapacity": "", + "NuclearPowerIndicator": "N", + "AuxPropulsionIndicator": "N", + "MainEngineReEngineIndicator": "N", + "MainEngineTypeOfInstallation": "O", + "MainEngineTypeOfInstallationDecode": "ORIGINAL", + "MainEngineStrokeCycle": "SINGLE-ACTING", + "AdditionalInformation": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "TweenDeckFixed": "N", + "TweenDeckPortable": "N", + "DrillBargeInd": "N", + "LRNO": "1000045", + "ProductionVesselInd": "N", + "SatComID": "623948810" + } + ], + "AuxEngine": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Bore": "105", + "EngineDesigner": "Mwm", + "EngineModel": "TD226B-6CD", + "EngineBuilder": "Deutz Mwm", + "EngineSequence": "1", + "LRNO": "1000045", + "MaxPower": "75", + "NumberOfCylinders": "6", + "Stroke": "120", + "StrokeType": "4" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Bore": "105", + "EngineDesigner": "Mwm", + "EngineModel": "TD226B-6CD", + "EngineBuilder": "Deutz Mwm", + "EngineSequence": "2", + "LRNO": "1000045", + "MaxPower": "75", + "NumberOfCylinders": "6", + "Stroke": "120", + "StrokeType": "4" + } + ], + "AuxGenerator": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "ACDC": "AC", + "Frequency": "50", + "KWEach": "70.00", + "LRNO": "1000045", + "MainEngineDriven": "N", + "Number": "2", + "SEQ": "01", + "Voltage1": "380", + "Voltage2": "0" + } + ], + "BuilderAddress": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "BuilderCode": "ITL281055", + "CountryCode": "ITL", + "CountryName": "Italy", + "EmailAddress": "info@codecasayachts.com", + "Facsimile": "+39 0584 383531", + "FullAddress": "Via Amendola, 55049 Viareggio LU ", + "ShipBuilder": "Codecasa Tre", + "ShipBuilderFullStyle": "Codecasa Tre SpA - Viareggio", + "Telephone": "+39 0584 383221", + "Town": "Viareggio", + "TownCode": "0499", + "Website": "www.codecasayachts.com", + "BuilderStatus": "Current" + } + ], + "Capacities": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000045", + "Bale": "0", + "Horsepower": "4568", + "BollardPull": "0", + "GasCapacity": "0", + "GrainCapacity": "0", + "LiquidCapacity": "0", + "NumberOfPassengers": "0", + "NumberRefrigeratedContainers": "0", + "NumberOfTEU": "0" + } + ], + "CargoPump": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CubicMetersCapacity": "0", + "CubicTonsCapacity": "0", + "LRNO": "1000045", + "NumberOfPumps": "0", + "Sequence": "1" + } + ], + "ClassCurrent": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Class": "Not Applicable", + "ClassCode": "NN", + "ClassIndicator": "Not Applicable", + "EffectiveDate": "19940000", + "LRNO": "1000045" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Class": "Registro Italiano Navale", + "ClassCode": "RI", + "ClassIndicator": "Class contemplated", + "EffectiveDate": "20220700", + "LRNO": "1000045" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Class": "Lloyd's Register", + "ClassCode": "LR", + "ClassIndicator": "Disclassed", + "EffectiveDate": "20220705", + "LRNO": "1000045" + } + ], + "ClassHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Class": "Not Applicable", + "ClassCode": "NN", + "ClassIndicator": "Not Applicable", + "CurrentIndicator": "Current", + "EffectiveDate": "19940000", + "LRNO": "1000045", + "Sequence": "00" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Class": "Registro Italiano Navale", + "ClassCode": "RI", + "ClassIndicator": "Class contemplated", + "CurrentIndicator": "Current", + "EffectiveDate": "20220700", + "LRNO": "1000045", + "Sequence": "00" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Class": "Lloyd's Register", + "ClassCode": "LR", + "ClassIndicator": "Disclassed", + "CurrentIndicator": "Current", + "EffectiveDate": "20220705", + "LRNO": "1000045", + "Sequence": "00" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Class": "Lloyd's Register", + "ClassCode": "LR", + "ClassIndicator": "Classed", + "CurrentIndicator": "Historical", + "EffectiveDate": "19950429", + "LRNO": "1000045", + "Sequence": "94" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Class": "Lloyd's Register", + "ClassCode": "LR", + "ClassIndicator": "Class contemplated", + "CurrentIndicator": "Historical", + "EffectiveDate": "19940419", + "LRNO": "1000045", + "Sequence": "95" + } + ], + "CompanyComplianceDetails": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "OwCode": "5019446", + "ShortCompanyName": "Kastro Agency Ltd", + "CompanyOnOFACSanctionList": "0", + "CompanyOnUNSanctionList": "0", + "CompanyOnEUSanctionList": "0", + "CompanyOnBESSanctionList": "0", + "CompanyInOFACSanctionedCountry": "0", + "CompanyInFATFJurisdiction": "0", + "CompanyOverallComplianceStatus": "0", + "CompanyOnAustralianSanctionList": "0", + "CompanyOnCanadianSanctionList": "0", + "CompanyOnSwissSanctionList": "0", + "CompanyOnOFACSSIList": "0", + "CompanyOnOFACNonSDNSanctionList": "0", + "CompanyOnUAESanctionList": "0" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "OwCode": "9991001", + "ShortCompanyName": "Unknown", + "CompanyOnOFACSanctionList": "0", + "CompanyOnUNSanctionList": "0", + "CompanyOnEUSanctionList": "0", + "CompanyOnBESSanctionList": "0", + "CompanyInOFACSanctionedCountry": "0", + "CompanyInFATFJurisdiction": "0", + "CompanyOverallComplianceStatus": "0", + "CompanyOnAustralianSanctionList": "0", + "CompanyOnCanadianSanctionList": "0", + "CompanyOnSwissSanctionList": "0", + "CompanyOnOFACSSIList": "0", + "CompanyOnOFACNonSDNSanctionList": "0", + "CompanyOnUAESanctionList": "0" + } + ], + "CompanyDetailsComplexWithCodesAndParent": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "Active", + "CountryName": "Greece", + "FoundedDate": "1987", + "FullAddress": "85, Akti Miaouli, 185 38, Piraeus, Greece.", + "FullName": "Kastro Agency Ltd", + "LastChangeDate": "20240911", + "LocationCode": "GRC", + "NationalityofRegistration": "Greece", + "NationalityofRegistrationCode": "GRC", + "OWCODE": "5019446", + "ParentCompany": "5019446", + "PrePostcode": "185 38", + "ShortCompanyName": "KASTRO AGENCY LTD", + "Street": "Akti Miaouli", + "StreetNumber": "85,", + "Telephone": "+30 210 429 0100", + "TownName": "Piraeus" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "Active", + "CountryName": "Unknown", + "FoundedDate": "2018", + "FullAddress": "Unknown", + "FullName": "Unknown", + "LastChangeDate": "20251106", + "LocationCode": "UNK", + "NationalityofRegistration": "Unknown", + "NationalityofRegistrationCode": "UNK", + "OWCODE": "9991001", + "ParentCompany": "9991001", + "ShortCompanyName": "UNKNOWN" + } + ], + "CompanyFleetCounts": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "DOCCount": "0", + "FleetSize": "2", + "GroupOwnerCount": "0", + "InServiceCount": "2", + "OperatorCount": "2", + "OWCODE": "5019446", + "RegisteredOwnerCount": "2", + "ShipManagerCount": "2", + "ShortCompanyName": "Kastro Agency Ltd", + "TechnicalManagerCount": "0" + } + ], + "CompanyOrderBookCounts": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "DOCOrderbookCount": "0", + "GroupOwnerOrderbookCount": "0", + "OperatorOrderbookCount": "0", + "OWCODE": "5019446", + "RegisteredOrderbookOwnerCount": "0", + "ShipManagerOrderbookCount": "0" + } + ], + "CompanyVesselRelationships": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "DOCCode": "9991001", + "DOCCompany": " Unknown", + "GroupBeneficialOwner": " Unknown", + "GroupBeneficialOwnerCode": "9991001", + "LRNO": "1000045", + "Operator": "Kastro Agency Ltd", + "OperatorCode": "5019446", + "RegisteredOwner": "Kastro Agency Ltd", + "RegisteredOwnerCode": "5019446", + "ShipManager": "Kastro Agency Ltd", + "ShipManagerCode": "5019446", + "TechnicalManager": " Unknown", + "TechnicalManagerCode": "9991001" + } + ], + "EngineBuilder": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "EngineBuilderLargestCode": "GEU530552", + "EngineBuilderShortName": "MTU FRIEDRICHSHAFEN GMBH - GEU", + "EngineBuilderFullName": "MTU Friedrichshafen GmbH -Friedrichshafen ", + "FullAddress": "Postfach 2040, 88040 Friedrichshafen. Olgastrasse 75, 88045 Friedrichshafen ", + "TownName": "Friedrichshafen", + "CountryName": "Germany", + "Telephone": "+49 7541 900", + "Facsimile": "+49 7541 905000", + "Telex": "07342800mtu", + "CountryCode": "GEU", + "TownCode": "8132" + } + ], + "FlagHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "EffectiveDate": "199702", + "Flag": "Greece ", + "FlagCode": "GRC", + "LRNO": "1000045", + "Sequence": "00" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "EffectiveDate": "199400", + "Flag": "Bermuda (British)", + "FlagCode": "BER", + "LRNO": "1000045", + "Sequence": "95" + } + ], + "GrossTonnageHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "EffectiveDate": "199400", + "GT": "264", + "LRNO": "1000045", + "Sequence": "00" + } + ], + "GroupBeneficialOwnerHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "19951123", + "GroupBeneficialOwner": "Unknown", + "GroupBeneficialOwnerCode": "9991001", + "LRNO": "1000045", + "Sequence": "00" + } + ], + "LiftingGear": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "GearType": "Unknown", + "LRNO": "1000045", + "MaxSWLOfGear": "0.00", + "NumberOfGears": "0", + "Sequence": "01" + } + ], + "MainEngine": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "BHPOfMainOilEngines": "4568", + "Bore": "165", + "CylinderArrangementCode": "V", + "CylinderArrangementDecode": "VEE", + "EngineBuilder": "MTU Friedrichshafen GmbH - Friedrichshafen", + "EngineBuilderCode": "MTU", + "EngineDesigner": "M.T.U.", + "EngineMakerCode": "GEU530552", + "EngineModel": "12V396TE94", + "EngineType": "Oil", + "LRNO": "1000045", + "NumberOfCylinders": "12", + "Position": "PORT", + "PowerBHP": "2284", + "PowerKW": "1680", + "RPM": "2100", + "Stroke": "185", + "StrokeType": "4" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "BHPOfMainOilEngines": "4568", + "Bore": "165", + "CylinderArrangementCode": "V", + "CylinderArrangementDecode": "VEE", + "EngineBuilder": "MTU Friedrichshafen GmbH - Friedrichshafen", + "EngineBuilderCode": "MTU", + "EngineDesigner": "M.T.U.", + "EngineMakerCode": "GEU530552", + "EngineModel": "12V396TE94", + "EngineType": "Oil", + "LRNO": "1000045", + "NumberOfCylinders": "12", + "Position": "STARBOARD", + "PowerBHP": "2284", + "PowerKW": "1680", + "RPM": "2100", + "Stroke": "185", + "StrokeType": "4" + } + ], + "NameHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Effective_Date": "199505", + "LRNO": "1000045", + "Sequence": "00", + "VesselName": "OKTANA" + } + ], + "OperatorHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20030200", + "LRNO": "1000045", + "Operator": "Kastro Agency Ltd", + "OperatorCode": "5019446", + "Sequence": "00" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "19951100", + "LRNO": "1000045", + "Operator": "Amazon Marine Ltd", + "OperatorCode": "3020121", + "Sequence": "95" + } + ], + "OwnerHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20030214", + "LRNO": "1000045", + "Owner": "Kastro Agency Ltd", + "OwnerCode": "5019446", + "Sequence": "00" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "19951123", + "LRNO": "1000045", + "Owner": "Amazon Marine Ltd", + "OwnerCode": "3020121", + "Sequence": "95" + } + ], + "PandIHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000045", + "Sequence": "00", + "PandIClubCode": "9991001", + "PandIClubDecode": "Unknown", + "EffectiveDate": "20060220" + } + ], + "Propellers": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000045", + "NozzleType": "Unknown", + "PropellerPosition": "Port", + "PropellerType": "Fixed Pitch", + "PropellerTypeCode": "FP", + "RPMMaximum": "562", + "RPMService": "0", + "Sequence": "01" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000045", + "NozzleType": "Unknown", + "PropellerPosition": "Starboard", + "PropellerType": "Fixed Pitch", + "PropellerTypeCode": "FP", + "RPMMaximum": "562", + "RPMService": "0", + "Sequence": "02" + } + ], + "SafetyManagementCertificateHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000045", + "SafetyManagementCertificateAuditor": "", + "SafetyManagementCertificateConventionOrVol": "", + "SafetyManagementCertificateDateIssued": "19971101", + "SafetyManagementCertificateDOCCompany": "Unknown", + "SafetyManagementCertificateFlag": "", + "SafetyManagementCertificateIssuer": "", + "SafetyManagementCertificateOtherDescription": "", + "SafetyManagementCertificateShipName": "", + "SafetyManagementCertificateShipType": "", + "SafetyManagementCertificateSource": "LRF", + "SafetyManagementCertificateCompanyCode": "9991001", + "Sequence": "00" + } + ], + "ShipBuilderDetail": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "BuilderCode": "ITL281055", + "BuilderStatus": "Current", + "CountryCode": "ITL", + "CountryName": "Italy", + "EmailAddress": "info@codecasayachts.com", + "Facsimile": "+39 0584 383531", + "FullAddress": "Via Amendola, 55049 Viareggio LU ", + "Shipbuilder": "Codecasa Tre", + "ShipbuilderFullStyle": "Codecasa Tre SpA - Viareggio", + "Telephone": "+39 0584 383221", + "TownCode": "0499", + "Website": "www.codecasayachts.com" + } + ], + "ShipBuilderAndSubContractor": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "BuilderCode": "ITL281055", + "LRNO": "1000045", + "Section": "Whole Ship", + "SequenceNumber": "01" + } + ], + "ShipManagerHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20030200", + "LRNO": "1000045", + "Sequence": "00", + "ShipManager": "Kastro Agency Ltd", + "ShipManagerCode": "5019446" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "19951100", + "LRNO": "1000045", + "Sequence": "95", + "ShipManager": "Amazon Marine Ltd", + "ShipManagerCode": "3020121" + } + ], + "ShipTypeHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "EffDate": "199400", + "LRNO": "1000045", + "Sequence": "00", + "Shiptype": "Yacht", + "ShiptypeCode": "X11A2YP" + } + ], + "SpecialFeature": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000045", + "Sequence": "001", + "SpecialFeature": "4 Bulkheads", + "SpecialFeatureCode": "0504" + } + ], + "StatusHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000045", + "Sequence": "00", + "Status": "IN SERVICE/COMMISSION", + "StatusCode": "S", + "StatusDate": "19950429" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000045", + "Sequence": "94", + "Status": "KEEL LAID", + "StatusCode": "E", + "StatusDate": "19940419" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000045", + "Sequence": "93", + "Status": "LAUNCHED", + "StatusCode": "F", + "StatusDate": "19950400" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000045", + "Sequence": "95", + "Status": "ON ORDER/NOT COMMENCED", + "StatusCode": "O", + "StatusDate": "19930429" + } + ], + "SurveyDates": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "ClassSociety": "Lloyd's Register", + "ClassSocietyCode": "LR", + "DockingSurvey": "Not recorded", + "LRNO": "1000045", + "SpecialSurvey": "Not recorded", + "TailShaftSurvey": "Not recorded" + } + ], + "TechnicalManagerHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "19971101", + "LRNO": "1000045", + "Sequence": "00", + "TechnicalManager": "Unknown", + "TechnicalManagerCode": "9991001" + } + ], + "Thrusters": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000045", + "Sequence": "01", + "ThrusterType": "Thwart. FP thruster", + "ThrusterTypeCode": "FP", + "NumberOfThrusters": "1", + "ThrusterPosition": "Forward", + "ThrusterBHP": "0", + "ThrusterKW": "0", + "TypeOfInstallation": "Not Applicable" + } + ], + "CallSignAndMmsiHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Lrno": "1000045", + "SeqNo": "00", + "CallSign": "SX5322", + "Mmsi": "239488000", + "EffectiveDate": "199702" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Lrno": "1000045", + "SeqNo": "95", + "EffectiveDate": "199400" + } + ] + }, + "APSStatus": { + "SystemVersion": "1.1.0", + "SystemDate": "2015-08-20T00:00:00", + "JobRunDate": "2025-11-07T02:03:24.4675587+00:00", + "CompletedOK": true, + "ErrorLevel": "None", + "ErrorMessage": "", + "RemedialAction": "", + "Guid": "b0bf1776-aeac-440b-a191-087d2ce3ff5c" + } + }, + { + "shipCount": 1, + "APSShipDetail": { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "BaleCapacity": "0", + "BollardPull": "0", + "BreadthExtreme": "10.800", + "BreadthMoulded": "10.500", + "CallSign": "MRPW2", + "CargoCapacitiesNarrative": "", + "CargoGradesSegregations": "0", + "ClassNarrative": "Lloyd's Register (1993-06-30)LR Class: + 100 A1 Survey Type: Special Survey Date: 2018-06 Class Notation: Yacht LR Machinery Class: LR Maltese Cross LMC", + "ClassificationSociety": "Lloyd's Register 1993-06-30", + "ClassificationSocietyCode": "LR", + "CleanBallastCapacity": "0", + "ClearHeightOfROROLanes": "0.00", + "CompensatedGrossTonnageCGT": "0", + "ContractDate": "19910600", + "ConstructionDescriptiveNarrative": "Statcode5:X11A2YP; Hull Type:Single Hull; Hull Material:Steel; Hull Connections:Welded; Decks:1 dk", + "CoreShipInd": "1", + "CountryOfBuild": "Netherlands", + "CountryOfBuildCode": "NTH", + "DateOfBuild": "199306", + "Deadweight": "0", + "DeliveryDate": "19930600", + "Depth": "5.400", + "DischargeDiameterOfCargoManifold": "0.00", + "Displacement": "0", + "DOCCompany": " Unknown", + "DocumentOfComplianceDOCCompanyCode": "9991001", + "Draught": "3.200", + "FlagCode": "IOM", + "FlagEffectiveDate": "199306", + "FlagName": "Isle Of Man", + "FormulaDWT": "1339.27", + "FuelType1Code": "YY", + "FuelType1First": "Yes, But Type Not Known", + "FuelType2Capacity": "0.00", + "FuelType2Code": "NN", + "FuelType2Second": "Not Applicable", + "GasCapacity": "0", + "GrainCapacity": "0", + "GrossTonnage": "970", + "GroupBeneficialOwner": " Unknown", + "GroupBeneficialOwnerCompanyCode": "9991001", + "HeatingCoilsInCargoTanks": "Unknown", + "HullMaterial": "Steel (Unspecified)", + "HullMaterialCode": "ST", + "HullShapeCode": "N1", + "HullType": "Single Hull", + "HullTypeCode": "SH", + "InmarsatNumberSatCommID": "1447511", + "InsulatedCapacity": "0", + "KeelToMastHeight": "0.000", + "LanesDoorsRampsNarrative": "", + "LastUpdateDate": "2025-04-08T21:43:06.607", + "LegalOverall": "1", + "ShipOverallComplianceStatus": "1", + "ShipDarkActivityIndicator": "0", + "ShipFlagDisputed": "0", + "ShipFlagSanctionedCountry": "0", + "ShipHistoricalFlagSanctionedCountry": "0", + "ShipOwnerHistoricalOFACSanctionedCountry": "0", + "ShipOwnerFATFJurisdiction": "1", + "ShipOwnerOFACSanctionedCountry": "0", + "ShipOwnerBESSanctionList": "0", + "ShipOwnerEUSanctionList": "0", + "ShipOwnerOFACSanctionList": "0", + "ShipOwnerUNSanctionList": "0", + "ShipSanctionedCountryPortCallLast12m": "0", + "ShipSanctionedCountryPortCallLast3m": "0", + "ShipSanctionedCountryPortCallLast6m": "0", + "ShipEUSanctionList": "0", + "ShipOFACNonSDNSanctionList": "0", + "ShipOFACSanctionList": "0", + "ShipUNSanctionList": "0", + "ShipOFACSSIList": "0", + "ShipOwnerCanadianSanctionList": "0", + "ShipOwnerAustralianSanctionList": "0", + "ShipUSTreasuryOFACAdvisoryList": "0", + "ShipSwissSanctionList": "0", + "ShipOwnerSwissSanctionList": "0", + "ShipSTSPartnerNonComplianceLast12m": "0", + "ShipSecurityLegalDisputeEventLast12m": "0", + "ShipDetailsNoLongerMaintained": "0", + "ShipBESSanctionList": "0", + "ShipOwnerParentCompanyNonCompliance": "0", + "ShipOwnerUAESanctionList": "0", + "LengthBetweenPerpendicularsLBP": "53.500", + "LengthOfROROLanes": "0", + "LengthOverallLOA": "60.000", + "LengthRegistered": "0.000", + "LightDisplacementTonnage": "0", + "LiquidCapacity": "0", + "IHSLRorIMOShipNo": "1000069", + "MainEngineBore": "170", + "MainEngineBuilder": "Caterpillar Inc - USA", + "MainEngineBuilderCode": "USA606572", + "MainEngineDesigner": "Caterpillar", + "MainEngineDesignerCode": "CAT", + "MainEngineDesignerGroup": "Caterpillar", + "MainEngineDesignerGroupCode": "CAT", + "MainEngineModel": "3516TA", + "MainEngineNumberOfCylinders": "16", + "MainEngineRPM": "1300", + "MainEngineStrokeType": "4", + "MainEngineType": "Oil", + "MaritimeMobileServiceIdentityMMSINumber": "233219000", + "NetTonnage": "291", + "NewconstructionEntryDate": "199106", + "NumberOfAllEngines": "2", + "NumberOfCabins": "0", + "NumberOfDecks": "1", + "NumberOfMainEngines": "2", + "NumberOfPropulsionUnits": "2", + "NumberOfROROLanes": "0", + "OfficialNumber": "723617", + "Operator": "YCO SAM", + "OperatorCompanyCode": "5073856", + "OperatorCountryOfControl": "United Kingdom", + "OperatorCountryOfDomicileCode": "MON", + "OperatorCountryOfDomicileName": "Monaco", + "OperatorCountryOfRegistration": "Monaco", + "PanamaCanalNetTonnagePCNT": "0", + "PandIClub": "Unknown", + "PandIClubCode": "9991001", + "PassengerCapacity": "0", + "PassengersBerthed": "0", + "PortOfRegistryCode": "3575", + "PortOfRegistry": "Douglas ", + "PortOfRegistryFullCode": "IOM3575", + "PowerBHPIHPSHPMax": "3266", + "PowerBHPIHPSHPService": "0", + "PowerKWMax": "2402", + "PowerKWService": "0", + "PrimeMoverDescriptiveNarrative": "2 oil engines driving 2 FP propellers Total Power: Mcr 2,402kW (3,266hp)Max. Speed: 18.00kts, Service Speed: 16.00kts", + "PrimeMoverDescriptiveOverviewNarrative": "Design: Caterpillar (Group: Caterpillar), Engine Builder: Caterpillar Inc - USA 2 x 3516TA, 4 Stroke, Single Acting, Vee 16 Cy. 170 x 190, Mcr: 1,201 kW (1,633 hp) at 1,300 rpm", + "PropellerType": "Fixed Pitch", + "PropulsionType": "Oil Engine(s), Geared Drive", + "PropulsionTypeCode": "DG", + "ReeferPoints": "0", + "RegisteredOwner": "Kizbel Bermuda Ltd", + "RegisteredOwnerCode": "0175341", + "RegisteredOwnerCountryOfDomicile": "Bermuda", + "RegisteredOwnerCountryOfDomicileCode": "BER", + "RegisteredOwnerCountryOfRegistration": "Bermuda", + "SafetyManagementCertificateAuditor": "", + "SafetyManagementCertificateConventionOrVol": "", + "SafetyManagementCertificateDateIssued": "19971101", + "SafetyManagementCertificateDOCCompany": "Unknown", + "SafetyManagementCertificateFlag": "", + "SafetyManagementCertificateIssuer": "", + "SafetyManagementCertificateOtherDescription": "", + "SafetyManagementCertificateShipName": "", + "SafetyManagementCertificateShipType": "", + "SafetyManagementCertificateSource": "LRF", + "SegregatedBallastCapacity": "0", + "ShipManager": "YCO SAM", + "ShipManagerCompanyCode": "5073856", + "ShipManagerCountryOfControl": "United Kingdom", + "ShipManagerCountryOfDomicileName": "Monaco", + "ShipManagerCountryOfDomicileCode": "MON", + "ShipManagerCountryOfRegistration": "Monaco", + "ShipName": "LADY BEATRICE", + "ShipStatus": "In Service/Commission", + "ShipStatusCode": "S", + "ShipStatusEffectiveDate": "19930600", + "Shipbuilder": "Lent Jacht/Scheepswerf", + "ShipbuilderCompanyCode": "NTH408051", + "ShipbuilderFullStyle": "Jacht- en Scheepswerf C. van Lent & Zonen B.V. - Kaag", + "ShiptypeLevel2": "Non Merchant", + "ShiptypeLevel3": "Non Merchant", + "ShiptypeLevel4": "Yacht", + "ShiptypeLevel5": "Yacht", + "ShiptypeLevel5HullType": "Ship Shape Including Multi-Hulls", + "ShiptypeLevel5SubGroup": "Yacht", + "ShiptypeLevel5SubType": "Yacht, Private", + "SpeedMax": "18.00", + "SpeedService": "16.00", + "StatCode5": "X11A2YP", + "SuezCanalNetTonnageSCNT": "0", + "TechnicalManager": "YCO SAM", + "TechnicalManagerCode": "5073856", + "TechnicalManagerCountryOfControl": "United Kingdom", + "TechnicalManagerCountryOfDomicile": "Monaco", + "TechnicalManagerCountryOfDomicileCode": "MON", + "TechnicalManagerCountryOfRegistration": "Monaco", + "TEU": "0", + "TEUCapacity14THomogenous": "0", + "TonnageEffectiveDate": "199306", + "TonnageSystem69Convention": "I", + "TonnesPerCentimetreImmersionTPCI": "0.000", + "TotalHorsepowerOfMainEngines": "3266", + "TotalKilowattsOfMainEngines": "2402", + "TotalPowerOfAllEngines": "2402", + "YardNumber": "770", + "YearOfBuild": "1993", + "MainEngineTypeCode": "01", + "CargoOtherType": "Not Applicable", + "CargoOtherCapacity": "", + "NuclearPowerIndicator": "N", + "AuxPropulsionIndicator": "N", + "MainEngineReEngineIndicator": "N", + "MainEngineTypeOfInstallation": "O", + "MainEngineTypeOfInstallationDecode": "ORIGINAL", + "MainEngineStrokeCycle": "SINGLE-ACTING", + "AdditionalInformation": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "TweenDeckFixed": "N", + "TweenDeckPortable": "N", + "DrillBargeInd": "N", + "LRNO": "1000069", + "ProductionVesselInd": "N", + "SatComID": "1447511" + } + ], + "BuilderAddress": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "BuilderCode": "NTH408051", + "CountryCode": "NTH", + "CountryName": "Netherlands", + "ShipBuilder": "Lent Jacht/Scheepswerf", + "ShipBuilderFullStyle": "Jacht- en Scheepswerf C. van Lent & Zonen B.V. - Kaag", + "Town": "Kaag", + "TownCode": "8015", + "BuilderStatus": "Closed" + } + ], + "Capacities": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000069", + "Bale": "0", + "Horsepower": "3266", + "BollardPull": "0", + "GasCapacity": "0", + "GrainCapacity": "0", + "LiquidCapacity": "0", + "NumberOfPassengers": "0", + "NumberRefrigeratedContainers": "0", + "NumberOfTEU": "0" + } + ], + "CargoPump": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CubicMetersCapacity": "0", + "CubicTonsCapacity": "0", + "LRNO": "1000069", + "NumberOfPumps": "0", + "Sequence": "1" + } + ], + "ClassCurrent": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Class": "Not Applicable", + "ClassCode": "NN", + "ClassIndicator": "Not Applicable", + "EffectiveDate": "19930600", + "LRNO": "1000069" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Class": "Lloyd's Register", + "ClassCode": "LR", + "ClassIndicator": "Classed", + "EffectiveDate": "19930630", + "LRNO": "1000069" + } + ], + "ClassHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Class": "Not Applicable", + "ClassCode": "NN", + "ClassIndicator": "Not Applicable", + "CurrentIndicator": "Current", + "EffectiveDate": "19930600", + "LRNO": "1000069", + "Sequence": "00" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Class": "Lloyd's Register", + "ClassCode": "LR", + "ClassIndicator": "Classed", + "CurrentIndicator": "Current", + "EffectiveDate": "19930630", + "LRNO": "1000069", + "Sequence": "00" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Class": "Lloyd's Register", + "ClassCode": "LR", + "ClassIndicator": "Class contemplated", + "CurrentIndicator": "Historical", + "EffectiveDate": "19930630", + "LRNO": "1000069", + "Sequence": "95" + } + ], + "CompanyComplianceDetails": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "OwCode": "0175341", + "ShortCompanyName": "Kizbel Bermuda Ltd", + "CompanyOnOFACSanctionList": "0", + "CompanyOnUNSanctionList": "0", + "CompanyOnEUSanctionList": "0", + "CompanyOnBESSanctionList": "0", + "CompanyInOFACSanctionedCountry": "0", + "CompanyInFATFJurisdiction": "0", + "CompanyOverallComplianceStatus": "0", + "CompanyOnAustralianSanctionList": "0", + "CompanyOnCanadianSanctionList": "0", + "CompanyOnSwissSanctionList": "0", + "CompanyOnOFACSSIList": "0", + "CompanyOnOFACNonSDNSanctionList": "0", + "CompanyOnUAESanctionList": "0" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "OwCode": "5073856", + "ShortCompanyName": "YCO SAM", + "CompanyOnOFACSanctionList": "0", + "CompanyOnUNSanctionList": "0", + "CompanyOnEUSanctionList": "0", + "CompanyOnBESSanctionList": "0", + "CompanyInOFACSanctionedCountry": "0", + "CompanyInFATFJurisdiction": "1", + "CompanyOverallComplianceStatus": "1", + "CompanyOnAustralianSanctionList": "0", + "CompanyOnCanadianSanctionList": "0", + "CompanyOnSwissSanctionList": "0", + "CompanyOnOFACSSIList": "0", + "CompanyOnOFACNonSDNSanctionList": "0", + "CompanyOnUAESanctionList": "0" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "OwCode": "9991001", + "ShortCompanyName": "Unknown", + "CompanyOnOFACSanctionList": "0", + "CompanyOnUNSanctionList": "0", + "CompanyOnEUSanctionList": "0", + "CompanyOnBESSanctionList": "0", + "CompanyInOFACSanctionedCountry": "0", + "CompanyInFATFJurisdiction": "0", + "CompanyOverallComplianceStatus": "0", + "CompanyOnAustralianSanctionList": "0", + "CompanyOnCanadianSanctionList": "0", + "CompanyOnSwissSanctionList": "0", + "CompanyOnOFACSSIList": "0", + "CompanyOnOFACNonSDNSanctionList": "0", + "CompanyOnUAESanctionList": "0" + } + ], + "CompanyDetailsComplexWithCodesAndParent": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CareOfCode": "5073856", + "CompanyStatus": "Active", + "CountryName": "Monaco", + "Emailaddress": "monaco@y.co", + "FoundedDate": "2011", + "FullAddress": "C/O: YCO SAM L'ALBU, 17, avenue Albert II, 98000, Monaco-Ville, Monaco.", + "FullName": "Kizbel (Bermuda) Ltd", + "LastChangeDate": "20250311", + "LocationCode": "MON", + "NationalityofRegistration": "Bermuda", + "NationalityofRegistrationCode": "BER", + "OWCODE": "0175341", + "ParentCompany": "0175341", + "PrePostcode": "98000", + "RoomFloorBuilding1": "L'ALBU,", + "ShortCompanyName": "KIZBEL BERMUDA LTD", + "Street": "avenue Albert II", + "StreetNumber": "17,", + "Telephone": "+377 93 50 12 12", + "TownName": "Monaco-Ville", + "Website": "https://www.y.co" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "Active", + "CountryName": "Monaco", + "Emailaddress": "monaco@y.co", + "FoundedDate": "2004", + "FullAddress": "L'ALBU, 17, avenue Albert II, 98000, Monaco-Ville, Monaco.", + "FullName": "YCO SAM", + "LastChangeDate": "20251006", + "LocationCode": "MON", + "NationalityofControl": "United Kingdom", + "NationalityofControlCode": "GBI", + "NationalityofRegistration": "Monaco", + "NationalityofRegistrationCode": "MON", + "OWCODE": "5073856", + "ParentCompany": "5073856", + "PrePostcode": "98000", + "RoomFloorBuilding1": "L'ALBU,", + "ShortCompanyName": "YCO SAM", + "Street": "avenue Albert II", + "StreetNumber": "17,", + "Telephone": "+377 93 50 12 12", + "TownName": "Monaco-Ville", + "Website": "https://www.y.co" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "Active", + "CountryName": "Unknown", + "FoundedDate": "2018", + "FullAddress": "Unknown", + "FullName": "Unknown", + "LastChangeDate": "20251106", + "LocationCode": "UNK", + "NationalityofRegistration": "Unknown", + "NationalityofRegistrationCode": "UNK", + "OWCODE": "9991001", + "ParentCompany": "9991001", + "ShortCompanyName": "UNKNOWN" + } + ], + "CompanyFleetCounts": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "DOCCount": "0", + "FleetSize": "1", + "GroupOwnerCount": "0", + "InServiceCount": "1", + "OperatorCount": "0", + "OWCODE": "0175341", + "RegisteredOwnerCount": "1", + "ShipManagerCount": "0", + "ShortCompanyName": "Kizbel Bermuda Ltd", + "TechnicalManagerCount": "0" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "DOCCount": "11", + "FleetSize": "54", + "GroupOwnerCount": "4", + "InServiceCount": "54", + "OperatorCount": "52", + "OWCODE": "5073856", + "RegisteredOwnerCount": "0", + "ShipManagerCount": "52", + "ShortCompanyName": "YCO SAM", + "TechnicalManagerCount": "46" + } + ], + "CompanyOrderBookCounts": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "DOCOrderbookCount": "0", + "GroupOwnerOrderbookCount": "0", + "OperatorOrderbookCount": "0", + "OWCODE": "0175341", + "RegisteredOrderbookOwnerCount": "0", + "ShipManagerOrderbookCount": "0" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "DOCOrderbookCount": "0", + "GroupOwnerOrderbookCount": "0", + "OperatorOrderbookCount": "0", + "OWCODE": "5073856", + "RegisteredOrderbookOwnerCount": "0", + "ShipManagerOrderbookCount": "0" + } + ], + "CompanyVesselRelationships": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "DOCCode": "9991001", + "DOCCompany": " Unknown", + "GroupBeneficialOwner": " Unknown", + "GroupBeneficialOwnerCode": "9991001", + "LRNO": "1000069", + "Operator": "YCO SAM", + "OperatorCode": "5073856", + "RegisteredOwner": "Kizbel Bermuda Ltd", + "RegisteredOwnerCode": "0175341", + "ShipManager": "YCO SAM", + "ShipManagerCode": "5073856", + "TechnicalManager": "YCO SAM", + "TechnicalManagerCode": "5073856" + } + ], + "EngineBuilder": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "EngineBuilderLargestCode": "USA606572", + "EngineBuilderShortName": "CATERPILLAR INC", + "EngineBuilderFullName": "Caterpillar Inc -USA ", + "FullAddress": "100, NE Adams Street, Peoria IL 61629-0001 ", + "TownName": "Peoria, IL", + "CountryName": "United States of America", + "Telephone": "+1 309 675 1000", + "Facsimile": "+1 309 675 4332", + "Website": "www.caterpillar.com", + "CountryCode": "USA", + "TownCode": "9069" + } + ], + "FlagHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "EffectiveDate": "199306", + "Flag": "Isle of Man (British)", + "FlagCode": "IOM", + "LRNO": "1000069", + "Sequence": "00" + } + ], + "GrossTonnageHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "EffectiveDate": "199306", + "GT": "970", + "LRNO": "1000069", + "Sequence": "00" + } + ], + "GroupBeneficialOwnerHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "19940601", + "GroupBeneficialOwner": "Unknown", + "GroupBeneficialOwnerCode": "9991001", + "LRNO": "1000069", + "Sequence": "00" + } + ], + "LiftingGear": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "GearType": "Unknown", + "LRNO": "1000069", + "MaxSWLOfGear": "0.00", + "NumberOfGears": "0", + "Sequence": "01" + } + ], + "MainEngine": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "BHPOfMainOilEngines": "3266", + "Bore": "170", + "CylinderArrangementCode": "V", + "CylinderArrangementDecode": "VEE", + "EngineBuilder": "Caterpillar Inc - USA", + "EngineBuilderCode": "CAT", + "EngineDesigner": "Caterpillar", + "EngineMakerCode": "USA606572", + "EngineModel": "3516TA", + "EngineType": "Oil", + "LRNO": "1000069", + "NumberOfCylinders": "16", + "Position": "PORT", + "PowerBHP": "1633", + "PowerKW": "1201", + "RPM": "1300", + "Stroke": "190", + "StrokeType": "4" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "BHPOfMainOilEngines": "3266", + "Bore": "170", + "CylinderArrangementCode": "V", + "CylinderArrangementDecode": "VEE", + "EngineBuilder": "Caterpillar Inc - USA", + "EngineBuilderCode": "CAT", + "EngineDesigner": "Caterpillar", + "EngineMakerCode": "USA606572", + "EngineModel": "3516TA", + "EngineType": "Oil", + "LRNO": "1000069", + "NumberOfCylinders": "16", + "Position": "STARBOARD", + "PowerBHP": "1633", + "PowerKW": "1201", + "RPM": "1300", + "Stroke": "190", + "StrokeType": "4" + } + ], + "NameHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Effective_Date": "199306", + "LRNO": "1000069", + "Sequence": "00", + "VesselName": "LADY BEATRICE" + } + ], + "OperatorHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20250310", + "LRNO": "1000069", + "Operator": "YCO SAM", + "OperatorCode": "5073856", + "Sequence": "00" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20250211", + "LRNO": "1000069", + "Operator": "Kizbel Bermuda Ltd", + "OperatorCode": "0175341", + "Sequence": "94" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "19930600", + "LRNO": "1000069", + "Operator": "Horizon Cruises Ltd", + "OperatorCode": "3010963", + "Sequence": "95" + } + ], + "OwnerHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20250211", + "LRNO": "1000069", + "Owner": "Kizbel Bermuda Ltd", + "OwnerCode": "0175341", + "Sequence": "00" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "19930600", + "LRNO": "1000069", + "Owner": "Horizon Cruises Ltd", + "OwnerCode": "3010963", + "Sequence": "95" + } + ], + "PandIHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000069", + "Sequence": "00", + "PandIClubCode": "9991001", + "PandIClubDecode": "Unknown", + "EffectiveDate": "20250310", + "Source": "P&I Website" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000069", + "Sequence": "95", + "PandIClubCode": "6219108", + "PandIClubDecode": "Shipowners' Club", + "EffectiveDate": "20070401", + "Source": "P&I Website" + } + ], + "Propellers": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000069", + "NozzleType": "Unknown", + "PropellerPosition": "Port", + "PropellerType": "Fixed Pitch", + "PropellerTypeCode": "FP", + "RPMMaximum": "0", + "RPMService": "0", + "Sequence": "01" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000069", + "NozzleType": "Unknown", + "PropellerPosition": "Starboard", + "PropellerType": "Fixed Pitch", + "PropellerTypeCode": "FP", + "RPMMaximum": "0", + "RPMService": "0", + "Sequence": "02" + } + ], + "SafetyManagementCertificateHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000069", + "SafetyManagementCertificateAuditor": "", + "SafetyManagementCertificateConventionOrVol": "", + "SafetyManagementCertificateDateIssued": "19971101", + "SafetyManagementCertificateDOCCompany": "Unknown", + "SafetyManagementCertificateFlag": "", + "SafetyManagementCertificateIssuer": "", + "SafetyManagementCertificateOtherDescription": "", + "SafetyManagementCertificateShipName": "", + "SafetyManagementCertificateShipType": "", + "SafetyManagementCertificateSource": "LRF", + "SafetyManagementCertificateCompanyCode": "9991001", + "Sequence": "00" + } + ], + "ShipBuilderDetail": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "BuilderCode": "NTH408051", + "BuilderStatus": "Closed", + "CountryCode": "NTH", + "CountryName": "Netherlands", + "Shipbuilder": "Lent Jacht/Scheepswerf", + "ShipbuilderFullStyle": "Jacht- en Scheepswerf C. van Lent & Zonen B.V. - Kaag", + "TownCode": "8015" + } + ], + "ShipBuilderAndSubContractor": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "BuilderCode": "NTH408051", + "LRNO": "1000069", + "Section": "Whole Ship", + "SequenceNumber": "01" + } + ], + "ShipBuilderHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "BuilderCode": "NTH408051", + "BuilderHistory": "(Formerly N.V. C. van Lent & Zonen.) LEN", + "BuilderType": "Shipbuilder" + } + ], + "ShipManagerHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20250310", + "LRNO": "1000069", + "Sequence": "00", + "ShipManager": "YCO SAM", + "ShipManagerCode": "5073856" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20250211", + "LRNO": "1000069", + "Sequence": "94", + "ShipManager": "Kizbel Bermuda Ltd", + "ShipManagerCode": "0175341" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "19930600", + "LRNO": "1000069", + "Sequence": "95", + "ShipManager": "Horizon Cruises Ltd", + "ShipManagerCode": "3010963" + } + ], + "ShipTypeHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "EffDate": "199306", + "LRNO": "1000069", + "Sequence": "00", + "Shiptype": "Yacht", + "ShiptypeCode": "X11A2YP" + } + ], + "StatusHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000069", + "Sequence": "00", + "Status": "IN SERVICE/COMMISSION", + "StatusCode": "S", + "StatusDate": "19930600" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000069", + "Sequence": "95", + "Status": "ON ORDER/NOT COMMENCED", + "StatusCode": "O", + "StatusDate": "19910600" + } + ], + "SurveyDates": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "AnnualSurvey": "2006-06-30", + "ClassSociety": "Lloyd's Register", + "ClassSocietyCode": "LR", + "DockingSurvey": "2026-02-27", + "LRNO": "1000069", + "SpecialSurvey": "2028-06-29", + "TailShaftSurvey": "2028-04-30" + } + ], + "TechnicalManagerHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "20250310", + "LRNO": "1000069", + "Sequence": "00", + "TechnicalManager": "YCO SAM", + "TechnicalManagerCode": "5073856" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "CompanyStatus": "", + "EffectiveDate": "19971101", + "LRNO": "1000069", + "Sequence": "95", + "TechnicalManager": "Unknown", + "TechnicalManagerCode": "9991001" + } + ], + "Thrusters": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000069", + "Sequence": "01", + "ThrusterType": "None", + "ThrusterTypeCode": "NN", + "NumberOfThrusters": "0", + "ThrusterPosition": "Not Applicable", + "ThrusterBHP": "0", + "ThrusterKW": "0", + "TypeOfInstallation": "Not Applicable" + } + ], + "CallSignAndMmsiHistory": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "Lrno": "1000069", + "SeqNo": "00", + "CallSign": "MRPW2", + "Mmsi": "233219000", + "EffectiveDate": "199306" + } + ], + "SurveyDatesHistoryUnique": [ + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000069", + "ClassSocietyCode": "LR", + "SurveyDate": "2023-02-28", + "SurveyType": "DockingSurvey", + "ClassSociety": "Lloyd's Register" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000069", + "ClassSocietyCode": "LR", + "SurveyDate": "2023-05-01", + "SurveyType": "TailshaftSurvey", + "ClassSociety": "Lloyd's Register" + }, + { + "DataSetVersion": { + "DataSetVersion": "1.0.0" + }, + "LRNO": "1000069", + "ClassSocietyCode": "LR", + "SurveyDate": "2023-06-30", + "SurveyType": "SpecialSurvey", + "ClassSociety": "Lloyd's Register" + } + ] + }, + "APSStatus": { + "SystemVersion": "1.1.0", + "SystemDate": "2015-08-20T00:00:00", + "JobRunDate": "2025-11-07T02:03:31.4270159+00:00", + "CompletedOK": true, + "ErrorLevel": "None", + "ErrorMessage": "", + "RemedialAction": "", + "Guid": "6a6ceb5a-39bf-4fe3-8e41-0cf6c5d4d7d0" + } + } + ], + "APSStatus": { + "SystemVersion": "1.1.0", + "SystemDate": "2015-08-20T00:00:00", + "JobRunDate": "2025-11-07T02:03:12.9179917+00:00", + "CompletedOK": true, + "ErrorLevel": "None", + "ErrorMessage": "", + "RemedialAction": "", + "Guid": "d3adb053-4579-461b-8183-f2aa6849648e" + } +} \ No newline at end of file