import sqlite3
import os

DB_PATH = os.path.join(os.path.dirname(__file__), 'radio_config.db')

def init_db():
    conn = sqlite3.connect(DB_PATH)
    c = conn.cursor()
    c.execute('''
        CREATE TABLE IF NOT EXISTS channels (
            id INTEGER PRIMARY KEY AUTOINCREMENT,
            name TEXT NOT NULL,
            folder TEXT NOT NULL UNIQUE,
            enabled INTEGER DEFAULT 1
        )
    ''')
    conn.commit()
    conn.close()

def get_all_channels():
    """دریافت همه کانال‌ها (بدون فیلتر)"""
    conn = sqlite3.connect(DB_PATH)
    c = conn.cursor()
    c.execute("SELECT id, name, folder, enabled FROM channels ORDER BY id")
    rows = c.fetchall()
    conn.close()
    return [{'id': r[0], 'name': r[1], 'folder': r[2], 'enabled': bool(r[3])} for r in rows]

def get_enabled_channels():
    """فقط کانال‌های فعال"""
    conn = sqlite3.connect(DB_PATH)
    c = conn.cursor()
    c.execute("SELECT id, name, folder FROM channels WHERE enabled = 1 ORDER BY id")
    rows = c.fetchall()
    conn.close()
    return [{'id': r[0], 'name': r[1], 'folder': r[2]} for r in rows]

def save_channels(channels_list):
    """
    ذخیره لیست کانال‌ها (جایگزینی کامل)
    channels_list = [{'name': '...', 'folder': 'channel_1', 'enabled': True/False}, ...]
    """
    conn = sqlite3.connect(DB_PATH)
    c = conn.cursor()
    c.execute("DELETE FROM channels")
    for ch in channels_list:
        c.execute("INSERT INTO channels (name, folder, enabled) VALUES (?, ?, ?)",
                  (ch['name'], ch['folder'], 1 if ch['enabled'] else 0))
    conn.commit()
    conn.close()

def is_configured():
    conn = sqlite3.connect(DB_PATH)
    c = conn.cursor()
    c.execute("SELECT COUNT(*) FROM channels WHERE enabled = 1")
    count = c.fetchone()[0]
    conn.close()
    return count > 0