import tabula
import PyPDF2
import csv
import os
import re

def fix_currency(value):
    value = re.sub(r'(\d)\s(\d)', r'\1\2', value)
    value = re.sub(r'R\$\s*(\d+)\s*,\s*(\d{2})', r'R$\1,\2', value)
    return value

def process_pdf(file_path, output_csv):
    script_dir = os.path.dirname(os.path.abspath(__file__))
    output_txt = os.path.join(script_dir, "extracted_text.txt")

    with open(file_path, "rb") as file:
        pdf_reader = PyPDF2.PdfReader(file)
        first_page = pdf_reader.pages[0]
        first_sentence = first_page.extract_text().split(".")[0]

    tabula.convert_into(file_path, output_csv, output_format="csv", pages="all")

    with open(output_csv, "r", encoding="utf-8") as csv_file:
        data = list(csv.reader(csv_file))

    for row in data[1:]:
        for i, col in enumerate(row):
            if "R$" in col:
                row[i] = fix_currency(col)

    with open(output_csv, "w", newline="", encoding="utf-8") as csv_file:
        writer = csv.writer(csv_file)
        writer.writerow([first_sentence])
        writer.writerows(data)

    return output_csv
