Files
gps-denied-onboard/components/flight_database/base.py
T
Oleksandr Bezdieniezhnykh abc26d5c20 initial structure implemented
docs -> _docs
2025-12-01 14:20:56 +02:00

71 lines
1.7 KiB
Python

from abc import ABC, abstractmethod
from typing import Optional
from models.flight import Flight, FlightState, Waypoint
from models.results import FrameResult
from models.chunks import ChunkHandle
from models.core import Pose
class FlightDatabaseBase(ABC):
@abstractmethod
async def create_flight(self, flight: Flight) -> str:
pass
@abstractmethod
async def get_flight(self, flight_id: str) -> Optional[Flight]:
pass
@abstractmethod
async def delete_flight(self, flight_id: str) -> bool:
pass
@abstractmethod
async def update_flight_state(self, state: FlightState) -> bool:
pass
@abstractmethod
async def get_flight_state(self, flight_id: str) -> Optional[FlightState]:
pass
@abstractmethod
async def save_frame_result(self, flight_id: str, result: FrameResult) -> bool:
pass
@abstractmethod
async def get_frame_result(
self, flight_id: str, frame_id: int
) -> Optional[FrameResult]:
pass
@abstractmethod
async def get_all_frame_results(self, flight_id: str) -> list[FrameResult]:
pass
@abstractmethod
async def save_chunk(self, chunk: ChunkHandle) -> bool:
pass
@abstractmethod
async def get_chunk(self, chunk_id: str) -> Optional[ChunkHandle]:
pass
@abstractmethod
async def get_flight_chunks(self, flight_id: str) -> list[ChunkHandle]:
pass
@abstractmethod
async def save_pose(self, flight_id: str, pose: Pose) -> bool:
pass
@abstractmethod
async def get_poses(self, flight_id: str) -> list[Pose]:
pass
@abstractmethod
async def update_waypoints(
self, flight_id: str, waypoints: list[Waypoint]
) -> bool:
pass