#!/usr/bin/env python3
"""
Maak alle nieuwe IMAP-mappen aan op australius.nl.
Bestaande mappen worden overgeslagen.
Gebruik: python3 maak_mappen.py
"""

import sys
import imaplib
import config
from imap_utils import list_folders, quote_mailbox
from mail_routes import PREFIX, destination_folders

def mappen() -> list[str]:
    """Alle te maken mappen, zonder prefix (prefix wordt automatisch toegevoegd)."""
    return destination_folders()


def run():
    cfg = config.load()
    print(f"Account: {cfg.username}\n")

    print(f"Verbinden met {cfg.imap_host}:{cfg.imap_port} ...")
    try:
        mail = imaplib.IMAP4_SSL(cfg.imap_host, cfg.imap_port)
        mail.login(cfg.username, cfg.password)
    except Exception as e:
        print(f"Verbinding mislukt: {e}")
        sys.exit(1)

    existing = set(list_folders(mail))

    te_maken = mappen()
    print(f"\n{len(te_maken)} mappen te controleren ({len(existing)} bestaan al op server)\n")

    aangemaakt = 0
    overgeslagen = 0
    fouten = 0

    for folder in te_maken:
        volledige_naam = PREFIX + folder
        if volledige_naam in existing or folder in existing:
            print(f"  ✓ bestaat  {folder}")
            overgeslagen += 1
            continue
        status, data = mail.create(quote_mailbox(volledige_naam))
        if status == "OK":
            print(f"  + aangemaakt  {folder}")
            aangemaakt += 1
        else:
            print(f"  ✗ FOUT  {folder}: {data}")
            fouten += 1

    mail.logout()
    print(f"\nKlaar: {aangemaakt} aangemaakt, {overgeslagen} bestonden al, {fouten} fouten.")


if __name__ == "__main__":
    run()
