"""Tenant mailbox registry for wp_invoices_mail_app."""

from __future__ import annotations

import json
from pathlib import Path


PROJECT_ROOT = Path(__file__).resolve().parents[2]


def get_mailboxes_for_tenant(tenant_id):
    path = PROJECT_ROOT / "storage" / "tenants" / str(tenant_id) / "mailboxes.json"
    if not path.exists():
        return []

    try:
        payload = json.loads(path.read_text(encoding="utf-8"))
    except Exception:
        return []

    if isinstance(payload, dict):
        mailboxes = payload.get("mailboxes", [])
    elif isinstance(payload, list):
        mailboxes = payload
    else:
        mailboxes = []

    out = []
    for item in mailboxes:
        if not isinstance(item, dict):
            continue
        out.append(
            {
                "id": item.get("id"),
                "provider": item.get("provider"),
                "host": item.get("host"),
                "port": item.get("port"),
                "username": item.get("username"),
                "password": item.get("password"),
                "folder": item.get("folder") or "INBOX",
            }
        )
    return out
