35 lines
768 B
Python
35 lines
768 B
Python
from abc import abstractmethod, ABC
|
|
from typing import Union, List, Dict
|
|
|
|
from fastapi import BackgroundTasks
|
|
|
|
from app.dtos.evaluation import EvaluationType
|
|
|
|
class IEvaluationService(ABC):
|
|
|
|
@abstractmethod
|
|
async def create_evaluation(
|
|
self,
|
|
user_id: str,
|
|
session_id: str,
|
|
exercise_id: str,
|
|
eval_type: EvaluationType,
|
|
task: int
|
|
):
|
|
pass
|
|
|
|
@abstractmethod
|
|
async def begin_evaluation(
|
|
self,
|
|
user_id: str, session_id: str, task: int,
|
|
exercise_id: str, exercise_type: str,
|
|
solution: any,
|
|
background_tasks: BackgroundTasks
|
|
):
|
|
pass
|
|
|
|
@abstractmethod
|
|
async def get_evaluations(self, session_id: str, status: str) -> List[Dict]:
|
|
pass
|
|
|