from abc import ABC, abstractmethod from typing import Dict, List, Union from fastapi import BackgroundTasks from fastapi.datastructures import FormData class IGradeController(ABC): @abstractmethod async def grade_writing_task( self, session_id: str, exercise_id: str, task: int, dto: any, background_tasks: BackgroundTasks ): pass @abstractmethod async def grade_speaking_task( self, task: int, form: FormData, background_tasks: BackgroundTasks ): pass @abstractmethod async def get_evaluations(self, session_id: str, status: str): pass @abstractmethod async def grade_short_answers(self, data: Dict): pass @abstractmethod async def grading_summary(self, data: Dict): pass