Files
hackathon-acapulquitos-boys…/server/app/domain/interfaces/i_ruta_repository.py

33 lines
815 B
Python

"""
Interfaces del dominio.
El dominio define QUÉ necesita, no CÓMO se implementa.
La capa de Datos implementa estas interfaces.
"""
from abc import ABC, abstractmethod
from typing import Optional
from app.domain.entities.ruta import EstadoRuta, Ruta
class IRutaRepository(ABC):
@abstractmethod
def obtener_ruta(self, ruta_id: str) -> Optional[Ruta]:
...
@abstractmethod
def obtener_estado(self, ruta_id: str) -> Optional[EstadoRuta]:
...
@abstractmethod
def guardar_estado(self, estado: EstadoRuta) -> None:
...
@abstractmethod
def obtener_ruta_por_zona(self, zona_id: str) -> Optional[Ruta]:
"""
Devuelve la ruta asignada a una zona.
Cumple la restricción de 'túnel': el domicilio solo ve su ruta.
"""
...