
# from fastapi import APIRouter, UploadFile, File, Query, Depends
# from fastapi.responses import StreamingResponse
# from io import BytesIO

# from app.services.image_service import remove_image_background
# from app.core.dependencies import get_current_user

# router = APIRouter(prefix="/image", tags=["Image"])


# @router.post("/remove-background")
# async def remove_background(
#     file: UploadFile = File(...),
#     bg_color: str = Query(default=None),
#     background_file: UploadFile = File(default=None),
#     user = Depends(get_current_user)
# ):
#     output_data = await remove_image_background(
#         file=file,
#         user=user,
#         bg_color=bg_color,
#         background_file=background_file
#     )

#     return StreamingResponse(
#         BytesIO(output_data),
#         media_type="image/png",
#         headers={
#             "Content-Disposition": "attachment; filename=output.png"
#         }
#     )

from fastapi import (
    APIRouter,
    UploadFile,
    File,
    Query,
    Depends
)

from fastapi.responses import (
    StreamingResponse
)

from io import BytesIO

from app.services.image_service import (
    remove_image_background
)

from app.core.dependencies import (
    get_current_user
)


router = APIRouter(
    prefix="/image",
    tags=["Image"]
)


@router.post("/remove-background")
async def remove_background(

    file: UploadFile = File(...),

    bg_color: str = Query(
        default=None
    ),

    background_file: UploadFile = File(
        default=None
    ),

    user=Depends(get_current_user)
):

    output_data = await remove_image_background(
        file=file,
        user=user,
        bg_color=bg_color,
        background_file=background_file
    )

    return StreamingResponse(
        BytesIO(output_data),
        media_type="image/png",
        headers={
            "Content-Disposition":
            "attachment; filename=output.png"
        }
    )