import os
import sys
from pathlib import Path
from dotenv import load_dotenv

if sys.stdout.encoding and sys.stdout.encoding.lower() != "utf-8":
    sys.stdout.reconfigure(encoding="utf-8")
if sys.stderr.encoding and sys.stderr.encoding.lower() != "utf-8":
    sys.stderr.reconfigure(encoding="utf-8")

ROOT_DIR = Path(__file__).resolve().parent.parent
load_dotenv(ROOT_DIR / ".env")

GEMINI_API_KEY = os.environ["GEMINI_API_KEY"]
GEMINI_MODEL = os.environ.get("GEMINI_MODEL", "gemini-flash-lite-latest")
FFMPEG_PATH = os.environ.get("FFMPEG_PATH", "ffmpeg")
MAX_DAILY_UPLOADS = int(os.environ.get("MAX_DAILY_UPLOADS", "6"))

FIXED_HASHTAGS = ["shorts", "viral", "keşfet", "bilgi"]

DATA_DIR = ROOT_DIR / "data"
ASSETS_DIR = ROOT_DIR / "assets"
OUTPUT_DIR = ROOT_DIR / "output"
LOGS_DIR = ROOT_DIR / "logs"
DEDUP_DB_PATH = DATA_DIR / "dedup.db"
YOUTUBE_CLIENT_SECRET_PATH = DATA_DIR / "tokens" / "client_secret.json"
YOUTUBE_TOKEN_PATH = DATA_DIR / "tokens" / "youtube_token.json"

CATEGORIES = {
    "bilim-teknoloji": {
        "display_name": "Bilim & Teknoloji",
        "color": "#22D3EE",
        "music_file": "bilim-teknoloji.mp3",
        "hour": 6,
    },
    "psikoloji": {
        "display_name": "Psikoloji",
        "color": "#A78BFA",
        "music_file": "psikoloji.mp3",
        "hour": 8,
    },
    "hukuk": {
        "display_name": "Hukuk",
        "color": "#F4B400",
        "music_file": "hukuk.mp3",
        "hour": 10,
    },
    "spor": {
        "display_name": "Spor",
        "color": "#FF6B35",
        "music_file": "spor.mp3",
        "hour": 12,
    },
    "muzik": {
        "display_name": "Müzik",
        "color": "#F72585",
        "music_file": "muzik.mp3",
        "hour": 14,
    },
    "genel-kultur": {
        "display_name": "Genel Kültür",
        "color": "#2DD4BF",
        "music_file": "genel-kultur.mp3",
        "hour": 16,
    },
    "finans": {
        "display_name": "Finans",
        "color": "#22C55E",
        "music_file": "finans.mp3",
        "hour": 18,
    },
    "tarih": {
        "display_name": "Tarih",
        "color": "#C97B4A",
        "music_file": "tarih.mp3",
        "hour": 20,
    },
}
