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

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