/
vessel_availability.py
59 lines (46 loc) · 1.44 KB
/
vessel_availability.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
from dataclasses import dataclass
from typing import List, Optional
from vortexasdk.api.serdes import FromDictMixin
from vortexasdk.api.shared_types import Entity, ISODate
@dataclass(frozen=True)
class DeclaredDestination:
"""
Current destination location, as reported by the available vessel
"""
eta: Optional[ISODate]
name: str
vessel_id: str
@dataclass(frozen=True)
class VesselFixtures:
"""
Current fixture information for the available vessel
"""
origin: Optional[str]
destination: Optional[str]
charterer: Optional[str]
fixing_timestamp: ISODate
laycan_from: ISODate
laycan_to: ISODate
@dataclass(frozen=True)
class VesselAvailability(FromDictMixin):
"""
Vessel Availability shows vessels that are available to load a given cargo at a given port within a specified time range.
"""
available_at: ISODate
evaluated_at: ISODate
vessel_class: str
vessel_declared_destination: List[DeclaredDestination]
vessel_dwt: int
vessel_fixtures: List[VesselFixtures]
vessel_id: str
vessel_last_cargo: List[Entity]
vessel_location: List[Entity]
vessel_name: Optional[str]
vessel_owner_id: Optional[str]
vessel_owner_name: Optional[str]
vessel_predicted_destination: List[Entity]
vessel_scrubber: Optional[bool]
vessel_status: str
vessel_year_built: Optional[int]
last_activity_at: Optional[ISODate]
last_activity: Optional[int]