"""
Module contenant la classe abstraite VesselConfigManagerABC.
Ce module contient la classe abstraite VesselConfigManagerABC qui définit les méthodes pour gérer la configuration des navires.
"""
from abc import ABC, abstractmethod
from typing import Any
from loguru import logger
import i18n
from .vessel_config import VesselConfig
LOGGER = logger.bind(name="CSB-Processing.Vessel.VesselConfigManager.ABC")
[docs]
class VesselConfigManagerABC(ABC):
"""
Classe abstraite définissant les méthodes pour gérer la configuration des navires.
"""
def __init__(self, **kwargs: Any):
"""
Initialisation du gestionnaire de configuration des navires.
:param kwargs: Dictionnaire des paramètres.
:type kwargs: dict
"""
LOGGER.debug(
i18n.t(
"vessel.vessel_config_manager_abc.init_manager",
class_name=self.__class__.__name__,
)
)
[docs]
@abstractmethod
def get_vessel_config(self, vessel_id: str) -> VesselConfig:
"""
Méthode permettant de récupérer la configuration d'un navire.
:param vessel_id: Identifiant du navire.
:type vessel_id: str
:return: Configuration du navire.
:rtype: VesselConfig
"""
pass
[docs]
@abstractmethod
def get_vessel_configs(self) -> list[VesselConfig]:
"""
Méthode permettant de récupérer la configuration de tous les navires.
:return: Configurations des navires.
:rtype: list[VesselConfig]
"""
pass
[docs]
@abstractmethod
def add_veessel_config(self, vessel_config: VesselConfig) -> None:
"""
Méthode permettant d'ajouter la configuration d'un navire.
:param vessel_config: Configuration du navire.
:type vessel_config: VesselConfig
"""
pass
[docs]
@abstractmethod
def update_vessel_config(self, vessel_id: str, vessel_config: VesselConfig) -> None:
"""
Méthode permettant de mettre à jour la configuration d'un navire.
:param vessel_id: Identifiant du navire.
:type vessel_id: str
:param vessel_config: Configuration du navire.
:type vessel_config: Vessel
"""
pass
[docs]
@abstractmethod
def delete_vessel_config(self, vessel_id: str) -> None:
"""
Méthode permettant de supprimer la configuration d'un navire.
:param vessel_id: Identifiant du navire.
:type vessel_id: str
"""
pass
[docs]
@abstractmethod
def commit_vessel_configs(self, **kwargs) -> None:
"""
Méthode permettant de sauvegarder les configurations des navires.
:param kwargs: Dictionnaire des paramètres.
:type kwargs: dict
"""
pass