from fastapi import BackgroundTasks, UploadFile
from fastapi.responses import FileResponse
from app.utils.response import success_payload
from app.services.handwriting.service import process_handwriting_upload
from app.services.handwriting.service import process_handwriting_url


class HandwritingController:
    async def process_upload(
        self,
        background_tasks: BackgroundTasks,
        file: UploadFile,
    ) -> FileResponse:
        return await process_handwriting_upload(background_tasks, file)

    def process_url(
        self,
        url: str,
        request_id: str | None = None,
        user_id: str | None = None,
    ) -> dict:
        result = process_handwriting_url(url, request_id, user_id)
        return success_payload("Font generated successfully.", result)
