This repository has been archived on 2025-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
BreCal/src/lib_brecal_utils/brecal_utils/stubs/shipcall.py

82 lines
2.8 KiB
Python

import datetime
from brecal_utils.stubs import generate_uuid1_int
from BreCal.schemas.model import Shipcall
from dataclasses import field
def get_shipcall_simple():
# only used for the stub
base_time = datetime.datetime.now()
shipcall_id = generate_uuid1_int()
ship_id = generate_uuid1_int()
eta = base_time+datetime.timedelta(hours=3, minutes=12)
role_type = 1
voyage = "987654321"
etd = base_time+datetime.timedelta(hours=6, minutes=12) # should never be before eta
arrival_berth_id = generate_uuid1_int()
departure_berth_id = generate_uuid1_int()
tug_required = False
pilot_required = False
flags = 0 # #TODO_shipcall_flags. What is meant here? What should be tested?
pier_side = False # whether a ship will be fixated on the pier side. en: pier side, de: Anlegestelle. From 'BremenCalling_Datenmodell.xlsx': gedreht/ungedreht
bunkering = False # #TODO_bunkering_unclear
replenishing_terminal = False # en: replenishing terminal, de: Nachfüll-Liegeplatz
replenishing_lock = False # en: replenishing lock, de: Nachfüllschleuse
draft = 0.12 # #TODO_draft_value: clarify, what 'draft' means and what kind of values are to be expected
# tidal window: built in a way, where ETA and ETD are in-between the window
# #TODO_tidal_window_source: are these windows taken from a database or provided by the user? How do they know this?
tidal_window_from = base_time+datetime.timedelta(hours=2, minutes=12)
tidal_window_to = base_time+datetime.timedelta(hours=7, minutes=12)
rain_sensitive_cargo = False
recommended_tugs = 2 # assert 0<recommended_tugs<={threshold}. E.g., 20 should not be exceeded.
anchored = False
moored_lock = False # de: 'Festmacherschleuse', en: 'moored lock'
canceled = False
evaluation = None
evaluation_message = ""
created = datetime.datetime.now()
modified = created+datetime.timedelta(seconds=10)
participants = [generate_uuid1_int(), generate_uuid1_int(), generate_uuid1_int(), generate_uuid1_int()] # field(default_factory=[generate_uuid1_int(), generate_uuid1_int(), generate_uuid1_int(), generate_uuid1_int()]) # list
shipcall = Shipcall(
shipcall_id,
ship_id,
role_type,
eta,
voyage,
etd,
arrival_berth_id,
departure_berth_id,
tug_required,
pilot_required,
flags,
pier_side,
bunkering,
replenishing_terminal,
replenishing_lock,
draft,
tidal_window_from,
tidal_window_to,
rain_sensitive_cargo,
recommended_tugs,
anchored,
moored_lock,
canceled,
evaluation,
evaluation_message,
created,
modified,
participants,
)
return shipcall