from fastapi import APIRouter, Depends, File, UploadFile
from sqlalchemy.orm import Session

from app.api.deps import get_current_user
from app.core.exceptions import ValidationError
from app.db.session import get_db
from app.schemas.phase4 import ImportResult
from app.schemas.user_context import CurrentUser
from app.services.import_service import ImportService

router = APIRouter()


@router.post("/excel", response_model=ImportResult)
async def import_excel(
    file: UploadFile = File(...),
    current_user: CurrentUser = Depends(get_current_user),
    db: Session = Depends(get_db),
):
    filename = (file.filename or "").lower()
    if not filename.endswith((".xlsx", ".xls")):
        raise ValidationError("Only Excel files (.xlsx) are supported")
    content = await file.read()
    return ImportService(db).import_excel(current_user.agency_id, content, user_id=current_user.id)
