from abc import ABC, abstractmethod from typing import Optional from fastapi import UploadFile class IReadingController(ABC): @abstractmethod async def import_exam(self, exercises: UploadFile, solutions: UploadFile = None): pass @abstractmethod async def generate_reading_passage(self, passage: int, topic: Optional[str], word_count: Optional[int]): pass @abstractmethod async def generate_reading_exercises(self, dto): pass