"""JSON 檔案儲存：分類設定、排程統計等小型持久化資料。

從 app.py 抽出。每個函數對應一個 JSON 檔案。
"""
import json
import os

from config import BASE_DIR

CATEGORIES_JSON_PATH = os.path.join(BASE_DIR, 'data', 'categories.json')
SCHEDULER_STATS_PATH = os.path.join(BASE_DIR, 'data', 'scheduler_stats.json')


def load_categories():
    """從 JSON 檔案載入分類列表（檔案不存在或損毀回傳 []）。"""
    try:
        with open(CATEGORIES_JSON_PATH, 'r', encoding='utf-8') as f:
            return json.load(f)
    except (FileNotFoundError, json.JSONDecodeError):
        return []


def save_categories(categories):
    """將分類列表儲存到 JSON 檔案。"""
    with open(CATEGORIES_JSON_PATH, 'w', encoding='utf-8') as f:
        json.dump(categories, f, ensure_ascii=False, indent=4)


def load_scheduler_stats():
    """讀取排程統計資料（檔案不存在或損毀回傳 {}）。"""
    if os.path.exists(SCHEDULER_STATS_PATH):
        try:
            with open(SCHEDULER_STATS_PATH, 'r', encoding='utf-8') as f:
                return json.load(f)
        except (IOError, json.JSONDecodeError):
            return {}
    return {}
