import os
from beancount.ingest import importer
from beancount.core import data
from beancount.ingest.importers import csv
from beancount.format import format_entry
from beancount.ingest import identify

# Een dummy-klasse die een bestand representeert, zoals Beancount dat zou doen.
class DummyFile:
    def __init__(self, filename):
        self.name = filename

from postbank_csv_importer import MyCSVImporter
importer = MyCSVImporter()
bestand_pad = 'PostbankGiro_25-01_08.csv'    

# Controleer of de importer het bestand herkent.
if importer.identify(bestand_pad):
    print("Importer identified the file. Extracting entries...")  
        # Roep de extract methode aan om de transacties te verwerken.
        extracted_entries = importer.extract(bestand_pad)
else:
    # We maken een dummy-bestand aan met testdata
    with open(bestand_pad, 'w', encoding='utf-8') as f:
    f.write("Datum;Omschrijving;Rekening;Tegenrekening;Bedrag;Valuta\n")
    f.write("01-01-2025;Boodschappen;Bank;Supermarkt;50.00;EUR\n")
    f.write("02-01-2025;Salaris;Werkgever;Bank;2500.00;EUR\n")
    f.write("03-01-2025;Huur;Bank;Huisbaas;750.00;EUR\n")
    extracted_entries = importer_instance.extract(DummyFile(bestand_pad), None)

print("; Geëxtraheerde transacties:")
for entry in extracted_entries:
    print(format_entry(entry))