import os

basedir = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))


class Config:
    SECRET_KEY = os.environ.get("SECRET_KEY", "dev-secret-change-me")

    # InMotion cPanel shared hosting exposes MySQL. Local dev falls back to SQLite.
    _db_url = os.environ.get("DATABASE_URL")
    if not _db_url:
        _db_url = "sqlite:///" + os.path.join(basedir, "instance", "memodoc.db")
    SQLALCHEMY_DATABASE_URI = _db_url
    SQLALCHEMY_TRACK_MODIFICATIONS = False

    UPLOAD_FOLDER = os.environ.get(
        "UPLOAD_FOLDER", os.path.join(basedir, "instance", "uploads")
    )
    MAX_CONTENT_LENGTH = 15 * 1024 * 1024  # 15 MB per upload
    ALLOWED_EXTENSIONS = {"pdf", "png", "jpg", "jpeg"}

    # OpenRouter (https://openrouter.ai/): one API key/bill across many providers,
    # so the model can be swapped for whatever is currently cheapest without
    # touching code. Default below is a budget-friendly multimodal model that
    # reads images and PDFs directly — check openrouter.ai/models for current
    # pricing before committing to it, prices/models change over time.
    OPENROUTER_API_KEY = os.environ.get("OPENROUTER_API_KEY")
    OPENROUTER_MODEL = os.environ.get("OPENROUTER_MODEL", "google/gemini-2.0-flash-001")
    # Optional but recommended by OpenRouter for their own analytics/rankings.
    OPENROUTER_SITE_URL = os.environ.get("OPENROUTER_SITE_URL", "https://memodoc.example")

    # Phase 2, off by default until Meta Business verification is ready.
    WHATSAPP_ENABLED = os.environ.get("WHATSAPP_ENABLED", "false").lower() == "true"
    WHATSAPP_VERIFY_TOKEN = os.environ.get("WHATSAPP_VERIFY_TOKEN")
    WHATSAPP_ACCESS_TOKEN = os.environ.get("WHATSAPP_ACCESS_TOKEN")
    WHATSAPP_PHONE_NUMBER_ID = os.environ.get("WHATSAPP_PHONE_NUMBER_ID")

    # Shared intake mailbox (e.g. documentos@tudominio.com, created in cPanel).
    # A cron job polls it over IMAP; attachments from a sender whose address
    # matches a patient's account email get filed into that patient's history.
    IMAP_ENABLED = os.environ.get("IMAP_ENABLED", "false").lower() == "true"
    IMAP_HOST = os.environ.get("IMAP_HOST")
    IMAP_PORT = int(os.environ.get("IMAP_PORT", "993"))
    IMAP_USER = os.environ.get("IMAP_USER")
    IMAP_PASSWORD = os.environ.get("IMAP_PASSWORD")
    IMAP_FOLDER = os.environ.get("IMAP_FOLDER", "INBOX")

    # Telegram bot (free, no business verification needed — get a token from
    # @BotFather). Cheaper/faster to activate than WhatsApp Cloud API.
    TELEGRAM_ENABLED = os.environ.get("TELEGRAM_ENABLED", "false").lower() == "true"
    TELEGRAM_BOT_TOKEN = os.environ.get("TELEGRAM_BOT_TOKEN")
    TELEGRAM_BOT_USERNAME = os.environ.get("TELEGRAM_BOT_USERNAME")  # e.g. MemodocBot, sin @
    # A secret path segment so the webhook URL isn't guessable by outsiders.
    TELEGRAM_WEBHOOK_SECRET = os.environ.get("TELEGRAM_WEBHOOK_SECRET", "change-me")
