Implement image uploads and flight patching

This commit is contained in:
april
2024-01-12 15:48:36 -06:00
parent 7a0ea052f1
commit 5ab412d82a
7 changed files with 316 additions and 16 deletions

View File

@@ -1,13 +1,15 @@
import datetime
import typing
from typing import Optional, Dict, Union, List
from bson import ObjectId
from fastapi import UploadFile, File
from pydantic import BaseModel
from schemas.utils import PositiveFloatNullable, PositiveFloat, PositiveInt, PyObjectId
class FlightCreateSchema(BaseModel):
class FlightSchema(BaseModel):
date: datetime.datetime
aircraft: str
waypoint_from: Optional[str] = None
@@ -43,10 +45,60 @@ class FlightCreateSchema(BaseModel):
time_sim: PositiveFloat
time_ground: PositiveFloat
tags: list[str] = []
tags: List[str] = []
pax: list[str] = []
crew: list[str] = []
pax: List[str] = []
crew: List[str] = []
comments: Optional[str] = None
class FlightCreateSchema(FlightSchema):
images: List[str] = []
class FlightPatchSchema(BaseModel):
date: Optional[datetime.datetime] = None
aircraft: Optional[str] = None
waypoint_from: Optional[str] = None
waypoint_to: Optional[str] = None
route: Optional[str] = None
hobbs_start: Optional[PositiveFloatNullable] = None
hobbs_end: Optional[PositiveFloatNullable] = None
time_start: Optional[datetime.datetime] = None
time_off: Optional[datetime.datetime] = None
time_down: Optional[datetime.datetime] = None
time_stop: Optional[datetime.datetime] = None
time_total: Optional[PositiveFloat] = None
time_pic: Optional[PositiveFloat] = None
time_sic: Optional[PositiveFloat] = None
time_night: Optional[PositiveFloat] = None
time_solo: Optional[PositiveFloat] = None
time_xc: Optional[PositiveFloat] = None
dist_xc: Optional[PositiveFloat] = None
landings_day: Optional[PositiveInt] = None
landings_night: Optional[PositiveInt] = None
time_instrument: Optional[PositiveFloat] = None
time_sim_instrument: Optional[PositiveFloat] = None
holds_instrument: Optional[PositiveInt] = None
dual_given: Optional[PositiveFloat] = None
dual_recvd: Optional[PositiveFloat] = None
time_sim: Optional[PositiveFloat] = None
time_ground: Optional[PositiveFloat] = None
tags: Optional[List[str]] = None
pax: Optional[List[str]] = None
crew: Optional[List[str]] = None
images: Optional[List[str]] = None
comments: Optional[str] = None
@@ -76,7 +128,6 @@ FlightByDateSchema = Dict[int, Union[Dict[int, 'FlightByDateSchema'], FlightConc
# HELPERS #
def flight_display_helper(flight: dict) -> dict:
"""
Convert given db response to a format usable by FlightDisplaySchema