"""MX Firebase public client configuration.

Firebase web/desktop API keys and project identifiers are not authorization
secrets. Authorization is enforced by Firebase Auth + security rules/custom
claims. Service-account keys, SMTP passwords and license signing keys must never
be shipped in this file or the desktop package.
"""
from __future__ import annotations

import json
import os
from pathlib import Path

BASE_DIR = Path(__file__).resolve().parent
from moxiemails_core import moxie_secure_read_json
_CFG = moxie_secure_read_json("firebase_public_config.json")

def _get(name, default=""):
    env = os.environ.get(name)
    return env if env not in (None, "") else _CFG.get(name, default)

FIREBASE_API_KEY = str(_get("FIREBASE_API_KEY", ""))
FIREBASE_AUTH_DOMAIN = str(_get("FIREBASE_AUTH_DOMAIN", ""))
FIREBASE_DATABASE_URL = str(_get("FIREBASE_DATABASE_URL", ""))
FIREBASE_PROJECT_ID = str(_get("FIREBASE_PROJECT_ID", ""))
FIREBASE_STORAGE_BUCKET = str(_get("FIREBASE_STORAGE_BUCKET", ""))
FIREBASE_MESSAGING_SENDER_ID = str(_get("FIREBASE_MESSAGING_SENDER_ID", ""))
FIREBASE_APP_ID = str(_get("FIREBASE_APP_ID", ""))
FIREBASE_MEASUREMENT_ID = str(_get("FIREBASE_MEASUREMENT_ID", ""))

ADMIN_EMAILS = list(_CFG.get("ADMIN_EMAILS", []))
ADMIN_UIDS = list(_CFG.get("ADMIN_UIDS", []))
DEFAULT_TRIAL_DAYS = int(_get("DEFAULT_TRIAL_DAYS", 5) or 5)
DEFAULT_TRIAL_DAILY_LIMIT = int(_get("DEFAULT_TRIAL_DAILY_LIMIT", 500) or 500)
DEFAULT_TRIAL_SMTP_LIMIT = int(_get("DEFAULT_TRIAL_SMTP_LIMIT", 1) or 1)
