#!/usr/bin/env python3
"""Apply additive control-plane tables required by the current platform."""

from __future__ import annotations

import json
import sys
from pathlib import Path


BASE_DIR = Path(__file__).resolve().parents[1]
sys.path.insert(0, str(BASE_DIR))

from config.control_plane import get_control_plane_engine
from config.db import Base
from bridge_platform.tenants import models as _models  # noqa: F401
from apps.messaging_service import models as _messaging_models  # noqa: F401


PLATFORM_TABLES = (
    "platform_sites",
    "site_signing_keys",
    "jwt_replay_records",
    "tenant_subscriptions",
    "billing_product_mappings",
    "billing_webhook_events",
    "wordpress_package_releases",
    "wordpress_bridge_releases",
    "agent_profiles",
    "messaging_providers",
    "messaging_templates",
    "messaging_app_permissions",
    "messaging_deliveries",
    "messaging_delivery_attempts",
)


def main() -> int:
    engine = get_control_plane_engine()
    Base.metadata.create_all(engine)
    print(json.dumps({"status": "ok", "tables": PLATFORM_TABLES}, indent=2))
    return 0


if __name__ == "__main__":
    raise SystemExit(main())
