import os

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


class Config:
    SECRET_KEY = os.environ.get("SECRET_KEY", "change-this-in-production")

    # --- Database ---
    # MySQL on your server. Set these via environment variables in production.
    DB_USER = os.environ.get("DB_USER", "iptrm")
    DB_PASS = os.environ.get("DB_PASS", "iptrm")
    DB_HOST = os.environ.get("DB_HOST", "localhost")
    DB_NAME = os.environ.get("DB_NAME", "iptrm")
    # Falls back to local SQLite so the app runs out-of-the-box for evaluation.
    USE_SQLITE = os.environ.get("USE_SQLITE", "1") == "1"

    @property
    def SQLALCHEMY_DATABASE_URI(self):
        if self.USE_SQLITE:
            return f"sqlite:///{os.path.join(BASE_DIR, 'instance', 'iptrm.db')}"
        return (
            f"mysql+pymysql://{self.DB_USER}:{self.DB_PASS}"
            f"@{self.DB_HOST}/{self.DB_NAME}?charset=utf8mb4"
        )

    # --- Uploads ---
    UPLOAD_DIR = os.path.join(BASE_DIR, "uploads")
    MAX_CONTENT_LENGTH = 500 * 1024 * 1024  # 500 MB per batch upload

    # --- Email / SMTP (fill from your settings) ---
    SMTP_HOST = os.environ.get("SMTP_HOST", "smtp.example.com")
    SMTP_PORT = int(os.environ.get("SMTP_PORT", "587"))
    SMTP_USER = os.environ.get("SMTP_USER", "")
    SMTP_PASS = os.environ.get("SMTP_PASS", "")
    SMTP_FROM = os.environ.get("SMTP_FROM", "reports@example.com")
    SMTP_USE_TLS = os.environ.get("SMTP_USE_TLS", "1") == "1"

    # --- Business rules ---
    OPPOSITION_WINDOW_DAYS = 30
    JURISDICTION = "Iran"


config = Config()
