updating STUB objects, slightly adapting data models

This commit is contained in:
scopesorting 2024-04-15 12:06:48 +02:00
parent a45526a42b
commit 81c93412ad
4 changed files with 71 additions and 64 deletions

View File

@ -1,5 +1,5 @@
from dataclasses import field, dataclass
from marshmallow import Schema, fields, INCLUDE, ValidationError, validate, validates
from marshmallow import Schema, fields, INCLUDE, ValidationError, validate, validates, post_load
from marshmallow.fields import Field
from marshmallow_enum import EnumField
from enum import IntEnum
@ -105,7 +105,7 @@ class History:
return self(id, participant_id, shipcall_id, timestamp, eta, ObjectType(type), OperationType(operation))
class Error(Schema):
message = fields.String(required=True)
message = fields.String(metadata={'required':True})
class GetVerifyInlineResp(Schema):
@ -164,41 +164,34 @@ class ShipcallSchema(Schema):
id = fields.Integer()
ship_id = fields.Integer()
type = fields.Integer()
eta = fields.DateTime(Required = False, allow_none=True)
eta = fields.DateTime(metadata={'required':False}, allow_none=True)
voyage = fields.String(allow_none=True, metadata={'Required':False}, validate=[validate.Length(max=16)]) # Solving: RemovedInMarshmallow4Warning: Passing field metadata as keyword arguments is deprecated. Use the explicit `metadata=...` argument instead. Additional metadata: {'Required': False}
etd = fields.DateTime(Required = False, allow_none=True)
arrival_berth_id = fields.Integer(Required = False, allow_none=True)
departure_berth_id = fields.Integer(Required = False, allow_none=True)
tug_required = fields.Bool(Required = False, allow_none=True)
pilot_required = fields.Bool(Required = False, allow_none=True)
flags = fields.Integer(Required = False, allow_none=True)
pier_side = fields.Bool(Required = False, allow_none=True)
bunkering = fields.Bool(Required = False, allow_none=True)
replenishing_terminal = fields.Bool(Required = False, allow_none=True)
replenishing_lock = fields.Bool(Required = False, allow_none=True)
draft = fields.Float(Required = False, allow_none=True, validate=[validate.Range(min=0, max=20, min_inclusive=False, max_inclusive=True)])
tidal_window_from = fields.DateTime(Required = False, allow_none=True)
tidal_window_to = fields.DateTime(Required = False, allow_none=True)
rain_sensitive_cargo = fields.Bool(Required = False, allow_none=True)
recommended_tugs = fields.Integer(Required = False, allow_none=True)
anchored = fields.Bool(Required = False, allow_none=True)
moored_lock = fields.Bool(Required = False, allow_none=True)
canceled = fields.Bool(Required = False, allow_none=True)
<<<<<<< HEAD
evaluation = fields.Enum(EvaluationType, required=False, allow_none=True, default=EvaluationType.undefined)
etd = fields.DateTime(metadata={'required':False}, allow_none=True)
arrival_berth_id = fields.Integer(metadata={'required':False}, allow_none=True)
departure_berth_id = fields.Integer(metadata={'required':False}, allow_none=True)
tug_required = fields.Bool(metadata={'required':False}, allow_none=True)
pilot_required = fields.Bool(metadata={'required':False}, allow_none=True)
flags = fields.Integer(metadata={'required':False}, allow_none=True)
pier_side = fields.Bool(metadata={'required':False}, allow_none=True)
bunkering = fields.Bool(metadata={'required':False}, allow_none=True)
replenishing_terminal = fields.Bool(metadata={'required':False}, allow_none=True)
replenishing_lock = fields.Bool(metadata={'required':False}, allow_none=True)
draft = fields.Float(metadata={'required':False}, allow_none=True, validate=[validate.Range(min=0, max=20, min_inclusive=False, max_inclusive=True)])
tidal_window_from = fields.DateTime(metadata={'required':False}, allow_none=True)
tidal_window_to = fields.DateTime(metadata={'required':False}, allow_none=True)
rain_sensitive_cargo = fields.Bool(metadata={'required':False}, allow_none=True)
recommended_tugs = fields.Integer(metadata={'required':False}, allow_none=True)
anchored = fields.Bool(metadata={'required':False}, allow_none=True)
moored_lock = fields.Bool(metadata={'required':False}, allow_none=True)
canceled = fields.Bool(metadata={'required':False}, allow_none=True)
evaluation = fields.Enum(EvaluationType, metadata={'required':False}, allow_none=True, default=EvaluationType.undefined)
evaluation_message = fields.Str(allow_none=True, metadata={'Required':False}) # Solving: RemovedInMarshmallow4Warning: Passing field metadata as keyword arguments is deprecated. Use the explicit `metadata=...` argument instead. Additional metadata: {'Required': False}
evaluation_time = fields.DateTime(Required = False, allow_none=True)
evaluation_notifications_sent = fields.Bool(Required = False, allow_none=True)
time_ref_point = fields.Int(Required = False, allow_none=True)
=======
evaluation = fields.Integer(Required = False, allow_none=True)
evaluation_message = fields.String(allow_none=True, metadata={'Required':False}) # Solving: RemovedInMarshmallow4Warning: Passing field metadata as keyword arguments is deprecated. Use the explicit `metadata=...` argument instead. Additional metadata: {'Required': False}
evaluation_time = fields.DateTime(Required = False, allow_none=True)
evaluation_notifications_sent = fields.Bool(Required = False, allow_none=True)
>>>>>>> a5284a4 (implementing notifications, working on input validation)
evaluation_time = fields.DateTime(metadata={'required':False}, allow_none=True)
evaluation_notifications_sent = fields.Bool(metadata={'required':False}, allow_none=True)
time_ref_point = fields.Integer(metadata={'required':False}, allow_none=True)
participants = fields.List(fields.Nested(ParticipantAssignmentSchema))
created = fields.DateTime(Required = False, allow_none=True)
modified = fields.DateTime(Required = False, allow_none=True)
created = fields.DateTime(metadata={'required':False}, allow_none=True)
modified = fields.DateTime(metadata={'required':False}, allow_none=True)
@post_load
def make_shipcall(self, data, **kwargs):
@ -258,8 +251,6 @@ class Shipcall:
created: datetime
modified: datetime
participants: List[Participant_Assignment] = field(default_factory=list)
evaluation_time : datetime = None
evaluation_notifications_sent : bool = None
def to_json(self):
return {
@ -313,30 +304,30 @@ class TimesSchema(Schema):
super().__init__(unknown=None)
pass
id = fields.Integer(Required=False)
eta_berth = fields.DateTime(Required = False, allow_none=True)
eta_berth_fixed = fields.Bool(Required = False, allow_none=True)
etd_berth = fields.DateTime(Required = False, allow_none=True)
etd_berth_fixed = fields.Bool(Required = False, allow_none=True)
lock_time = fields.DateTime(Required = False, allow_none=True)
lock_time_fixed = fields.Bool(Required = False, allow_none=True)
zone_entry = fields.DateTime(Required = False, allow_none=True)
zone_entry_fixed = fields.Bool(Required = False, allow_none=True)
operations_start = fields.DateTime(Required = False, allow_none=True)
operations_end = fields.DateTime(Required = False, allow_none=True)
remarks = fields.String(Required = False, allow_none=True, validate=[validate.Length(max=256)])
participant_id = fields.Integer(Required = True)
berth_id = fields.Integer(Required = False, allow_none = True)
berth_info = fields.String(Required = False, allow_none=True, validate=[validate.Length(max=256)])
pier_side = fields.Bool(Required = False, allow_none = True)
shipcall_id = fields.Integer(Required = True)
participant_type = fields.Integer(Required = False, allow_none=True)
ata = fields.DateTime(Required = False, allow_none=True)
atd = fields.DateTime(Required = False, allow_none=True)
eta_interval_end = fields.DateTime(Required = False, allow_none=True)
etd_interval_end = fields.DateTime(Required = False, allow_none=True)
created = fields.DateTime(Required = False, allow_none=True)
modified = fields.DateTime(Required = False, allow_none=True)
id = fields.Integer(metadata={'required':False})
eta_berth = fields.DateTime(metadata={'required':False}, allow_none=True)
eta_berth_fixed = fields.Bool(metadata={'required':False}, allow_none=True)
etd_berth = fields.DateTime(metadata={'required':False}, allow_none=True)
etd_berth_fixed = fields.Bool(metadata={'required':False}, allow_none=True)
lock_time = fields.DateTime(metadata={'required':False}, allow_none=True)
lock_time_fixed = fields.Bool(metadata={'required':False}, allow_none=True)
zone_entry = fields.DateTime(metadata={'required':False}, allow_none=True)
zone_entry_fixed = fields.Bool(metadata={'required':False}, allow_none=True)
operations_start = fields.DateTime(metadata={'required':False}, allow_none=True)
operations_end = fields.DateTime(metadata={'required':False}, allow_none=True)
remarks = fields.String(metadata={'required':False}, allow_none=True, validate=[validate.Length(max=256)])
participant_id = fields.Integer(metadata={'required':True})
berth_id = fields.Integer(metadata={'required':False}, allow_none = True)
berth_info = fields.String(metadata={'required':False}, allow_none=True, validate=[validate.Length(max=256)])
pier_side = fields.Bool(metadata={'required':False}, allow_none = True)
shipcall_id = fields.Integer(metadata={'required':True})
participant_type = fields.Integer(metadata={'required':False}, allow_none=True)
ata = fields.DateTime(metadata={'required':False}, allow_none=True)
atd = fields.DateTime(metadata={'required':False}, allow_none=True)
eta_interval_end = fields.DateTime(metadata={'required':False}, allow_none=True)
etd_interval_end = fields.DateTime(metadata={'required':False}, allow_none=True)
created = fields.DateTime(metadata={'required':False}, allow_none=True)
modified = fields.DateTime(metadata={'required':False}, allow_none=True)
@validates("eta_berth")
def validate_eta_berth(self, value):
@ -351,7 +342,7 @@ class UserSchema(Schema):
def __init__(self):
super().__init__(unknown=None)
pass
id = fields.Integer(required=True)
id = fields.Integer(metadata={'required':True})
first_name = fields.String(allow_none=True, metadata={'Required':False}, validate=[validate.Length(max=64)])
last_name = fields.String(allow_none=True, metadata={'Required':False}, validate=[validate.Length(max=64)])
user_phone = fields.String(allow_none=True, metadata={'Required':False})
@ -439,7 +430,7 @@ class ShipSchema(Schema):
super().__init__(unknown=None)
pass
id = fields.Int(Required=False)
id = fields.Int(metadata={'required':False})
name = fields.String(allow_none=False, metadata={'Required':True})
imo = fields.Int(allow_none=False, metadata={'Required':True})
callsign = fields.String(allow_none=True, metadata={'Required':False})

View File

@ -7,7 +7,6 @@ def get_notification_simple():
"""creates a default notification, where 'created' is now, and modified is now+10 seconds"""
notification_id = generate_uuid1_int() # uid?
times_id = generate_uuid1_int() # uid?
acknowledged = False
level = 10
type = 0
message = "hello world"
@ -17,7 +16,6 @@ def get_notification_simple():
notification = Notification(
notification_id,
times_id,
acknowledged,
level,
type,
message,

View File

@ -27,6 +27,11 @@ def get_times_full_simple():
zone_entry = etd_berth+datetime.timedelta(hours=0, minutes=15)
zone_entry_fixed = False
ata = eta_berth+datetime.timedelta(hours=0, minutes=15)
atd = etd_berth+datetime.timedelta(hours=0, minutes=15)
eta_interval_end = eta_berth + datetime.timedelta(hours=0, minutes=25)
etd_interval_end = etd_berth + datetime.timedelta(hours=0, minutes=25)
operations_start = zone_entry+datetime.timedelta(hours=1, minutes=30)
operations_end = operations_start+datetime.timedelta(hours=4, minutes=30)
@ -63,6 +68,10 @@ def get_times_full_simple():
pier_side=pier_side,
participant_type=participant_type,
shipcall_id=shipcall_id,
ata=ata,
atd=atd,
eta_interval_end=eta_interval_end,
etd_interval_end=etd_interval_end,
created=created,
modified=modified,
)

View File

@ -18,6 +18,11 @@ def get_user_simple():
created = datetime.datetime.now()
modified = created+datetime.timedelta(seconds=10)
notify_email = True
notify_whatsapp = True
notify_signal = True
notify_popup = True
user = User(
user_id,
@ -29,6 +34,10 @@ def get_user_simple():
user_phone,
password_hash,
api_key,
notify_email,
notify_whatsapp,
notify_signal,
notify_popup,
created,
modified
)