"""Remove PDFs temporários de frequência deixados por versões anteriores."""
from __future__ import annotations

import sys
from pathlib import Path

BASE_DIR = Path(__file__).resolve().parent.parent
if str(BASE_DIR) not in sys.path:
    sys.path.insert(0, str(BASE_DIR))

from app.settings import PASTA_PROCESSAMENTOS

NOME_PDF_FREQUENCIA = "lista_frequencia_keepedu.pdf"


def listar_pdfs_frequencia(pasta: Path = PASTA_PROCESSAMENTOS) -> list[Path]:
    if not pasta.exists():
        return []
    return sorted(
        arquivo
        for arquivo in pasta.rglob("*")
        if arquivo.is_file() and arquivo.name.lower() == NOME_PDF_FREQUENCIA
    )


def main(pasta: Path | None = None) -> int:
    arquivos = listar_pdfs_frequencia(PASTA_PROCESSAMENTOS if pasta is None else pasta)
    total_bytes = 0
    for arquivo in arquivos:
        try:
            total_bytes += arquivo.stat().st_size
            arquivo.unlink()
        except OSError as erro:
            print(f"[ERRO] Não foi possível remover {arquivo}: {erro}")
            return 1
    print(f"[OK] PDFs temporários de frequência removidos: {len(arquivos)}; espaço liberado: {total_bytes} bytes.")
    return 0


if __name__ == "__main__":
    raise SystemExit(main())
