# Import the ResponseModel
from typing import Dict, List, Optional

from fastapi import APIRouter, Depends
from fastapi import File as FastAPIFile
from fastapi import Query, UploadFile
from sqlalchemy.orm import Session
from starlette import status
from starlette.requests import Request
from src.apps.base.schemas.response_model import ResponseModel
from src.core.dependencies import get_db
from src.core.exceptions import APIException
from src.utils.guard import AuthGuard, get_current_user
from src.apps.wine.noise_parser.services.noise_parser import upload_wines_for_noises_service as upload_service

router = APIRouter()


@router.post(
    "/upload-wines-for-noise",
    response_model=ResponseModel
)
async def upload_wines_for_noise(
    file: UploadFile = FastAPIFile(..., description="File to upload"), 
    db: Session = Depends(get_db)
):
    """
    Get uploaded file from request
    """ 
    # Process the file (implement your logic here)
    data = await upload_service(db, file)
    
    # For demonstration, just return filename
    return ResponseModel(
        data=data,
        status_code=status.HTTP_200_OK,
        success=True,
        message="File uploaded successfully.",
    )
