Admiral/admiral-worker/core/repos/OptimizationRepo.py
2025-06-24 14:22:50 +02:00

34 lines
904 B
Python

from abc import ABC, abstractmethod
from typing import Optional
from core.domain.optimization.Optimization import Optimization
from core.domain.optimization.OptimizationState import OptimizationState
from core.types.Id import Id
from core.types.IntId import IntId
class OptimizationRepo(ABC):
@abstractmethod
def getAll(self) -> list[Optimization]:
pass
@abstractmethod
def get(self, id: Id[Optimization]) -> Optional[Optimization]:
pass
@abstractmethod
def getWithState(self, state: OptimizationState) -> list[Optimization]:
pass
@abstractmethod
def updateFirst(self, fromState: OptimizationState, toState: OptimizationState) -> Optional[Optimization]:
pass
@abstractmethod
def setState(self, id: Id[Optimization], toState: OptimizationState) -> Optional[Optimization]:
pass
@abstractmethod
def getLatestConfirmedByPosta(self, posta: int) -> Optional[Optimization]:
pass