35 lines
969 B
Python
35 lines
969 B
Python
import json
|
|
import uuid
|
|
from abc import abstractmethod
|
|
from dataclasses import dataclass
|
|
|
|
from sqlalchemy import Engine, BLOB, PrimaryKeyConstraint
|
|
from sqlmodel import SQLModel, Field, Session, select
|
|
from typing_extensions import override, Self, Optional
|
|
|
|
from core import Utils
|
|
from core.domain.optimization.Optimization import Optimization
|
|
from core.domain.optimization.OptimizationMetrics import OptimizationMetrics
|
|
from core.repos.OptimizationResultRepo import OptimizationResultRepo
|
|
from core.types.Id import Id
|
|
|
|
|
|
@dataclass
|
|
class OptimizationMetricsRepo:
|
|
|
|
@abstractmethod
|
|
def getAll(self) -> list[OptimizationMetrics]:
|
|
pass
|
|
|
|
@abstractmethod
|
|
def get(self, id: Id[OptimizationMetrics]) -> Optional[OptimizationMetrics]:
|
|
pass
|
|
|
|
@abstractmethod
|
|
def getAllByOptimizationId(self, optimizationId: Id[Optimization]) -> list[OptimizationMetrics]:
|
|
pass
|
|
|
|
@abstractmethod
|
|
def post(self, optimizationMetrics: OptimizationMetrics) -> OptimizationMetrics:
|
|
pass
|