Files

74 lines
1.9 KiB
Python

from typing import List, Optional
from pydantic import BaseModel, Field
from datetime import date, datetime
from app.models.movement import MovementType
class MovementBase(BaseModel):
movement_type: MovementType
aircraft_registration: str
aircraft_type: Optional[str] = None
callsign: Optional[str] = None
timestamp: datetime
entity_type: str
entity_id: int
to_location: Optional[str] = None
from_location: Optional[str] = None
runway: Optional[str] = None
wind: Optional[str] = None
pressure_setting: Optional[str] = None
created_by: Optional[str] = None
ip_address: Optional[str] = None
notes: Optional[str] = None
class MovementCreate(MovementBase):
pass
class BulkMovementLog(BaseModel):
flight_kind: str
movement_date: date
movement_time: Optional[str] = None
takeoff_time: Optional[str] = None
landing_time: Optional[str] = None
contact_time: Optional[str] = None
qsy_time: Optional[str] = None
aircraft_registration: str
aircraft_type: Optional[str] = None
callsign: Optional[str] = None
from_location: Optional[str] = None
to_location: Optional[str] = None
pob: Optional[int] = None
local_nature: Optional[str] = None
circuits: Optional[int] = None
runway: Optional[str] = None
wind: Optional[str] = None
pressure_setting: Optional[str] = None
notes: Optional[str] = None
ppr_id: Optional[int] = None
movement_id: Optional[int] = None
class BulkMovementContext(BaseModel):
pprs: List[dict]
local_flights: List[dict] = Field(default_factory=list)
movements: List[dict]
suggested: dict
class Movement(MovementBase):
id: int
created_at: datetime
class Config:
from_attributes = True
class BulkMovementResult(BaseModel):
action: str
movement: Movement
entity_type: str
entity_id: int
message: str