34 lines
904 B
Python
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
|