import sys
from pathlib import Path

sys.path.insert(0, str(Path(__file__).parent.parent.parent.parent / 'saas_portal/backend'))
from api import tax_router

from app.core.plugin_interface import IPlugin, PluginMetadata
from common_logging import get_logger

logger = get_logger(__name__)


class TaxPlugin(IPlugin):

    def get_metadata(self) -> PluginMetadata:
        return PluginMetadata(name='tax', version='1.0.0', display_name='税务管理', description='税务申报、发票管理、税务筹划', backend_routes_prefix='/api/v1/tax', frontend_entry='frontend/dist/index.js')

    def get_router(self):
        return tax_router

    def on_enable(self, tenant_id: int):
        from ..scripts.init_tax_data import init_all
        try:
            init_all(tenant_id)
            logger.bind(tenant_id=tenant_id).info("Tax plugin enabled")
        except Exception as e:
            logger.bind(tenant_id=tenant_id).opt(exception=e).error("Tax data initialization failed")
            raise

    def on_disable(self, tenant_id: int):
        logger.bind(tenant_id=tenant_id).info("Tax plugin disabled")
