import json

from fastapi import APIRouter, Depends
from sqlalchemy import text
from sqlalchemy.ext.asyncio import AsyncSession

from app.api.deps import get_db, get_tenant_by_domain

router = APIRouter(tags=["i18n"])


async def _config(db: AsyncSession, tid: int) -> dict:
    row = (await db.execute(text(
        "SELECT is_active, config FROM plugin_configs "
        "WHERE tenant_id=:tid AND plugin_name='i18n_multilang' LIMIT 1"
    ), {"tid": tid})).fetchone()
    if row is None:
        return {"enabled": False, "default_locale": "zh"}
    config = row[1] if isinstance(row[1], dict) else json.loads(row[1] or "{}")
    return {"enabled": bool(row[0]), "default_locale": config.get("default_locale", "zh")}


@router.get("/admin/i18n-config")
async def admin_i18n_config(db: AsyncSession = Depends(get_db), tid: int = Depends(get_tenant_by_domain)):
    return await _config(db, tid)


@router.get("/store/i18n-config")
async def store_i18n_config(db: AsyncSession = Depends(get_db), tid: int = Depends(get_tenant_by_domain)):
    return await _config(db, tid)
