from __future__ import annotations

from pathlib import Path

from fastapi import APIRouter, Depends
from sqlmodel import Session

from app.api.deps import get_session
from app.services.reconciliation import detect_pending_website_duplicates, reconcile_candidates, import_existing_audit

router = APIRouter(prefix="/reconciliation", tags=["reconciliation"])


@router.get("/existing-uploads")
def existing_uploads(dry_run: bool = True, session: Session = Depends(get_session)):
    return reconcile_candidates(session, dry_run=dry_run)


@router.post("/existing-uploads/import")
def import_existing_uploads(session: Session = Depends(get_session)):
    return reconcile_candidates(session, dry_run=False)


@router.post("/youtube-audit/import")
def import_youtube_audit(payload: dict, session: Session = Depends(get_session)):
    return import_existing_audit(session, Path(payload["path"]), dry_run=bool(payload.get("dry_run", False)))


@router.get("/website-duplicates")
def website_duplicates(session: Session = Depends(get_session)):
    return detect_pending_website_duplicates(session)
