{
  "name": "database-connector",
  "displayName": "Database Connector Plugin",
  "version": "1.0.0",
  "description": "Connect external databases to AI agents for real-time data queries, updates, document generation, and automated callbacks. Perfect for debt collection, order management, and customer service.",
  "author": "AgentLabs",
  "license": "Commercial",
  "homepage": "https://agentlabs.io/plugins/database-connector",
  
  "compatibility": {
    "agentlabs": ">=1.0.0",
    "node": ">=18.0.0"
  },
  
  "entryPoint": "index.ts",
  "registerFunction": "registerDatabaseConnectorRoutes",
  
  "database": {
    "migrations": [
      "migrations/001_database_connector.sql"
    ],
    "tables": [
      "db_connections",
      "db_discovered_schemas",
      "db_saved_queries",
      "db_saved_actions",
      "db_document_templates",
      "db_generated_documents",
      "db_scheduled_callbacks",
      "db_callback_logs",
      "db_agent_connections",
      "db_usage_logs",
      "db_webhooks",
      "db_webhook_deliveries",
      "db_call_scripts",
      "db_customer_scores",
      "db_payment_promises"
    ]
  },
  
  "routes": {
    "api": [
      { "path": "/api/plugins/database-connector/connections", "description": "Database connection management" },
      { "path": "/api/plugins/database-connector/schemas", "description": "Schema discovery and management" },
      { "path": "/api/plugins/database-connector/queries", "description": "Saved queries CRUD" },
      { "path": "/api/plugins/database-connector/actions", "description": "Saved actions CRUD" },
      { "path": "/api/plugins/database-connector/documents", "description": "Document templates and generation" },
      { "path": "/api/plugins/database-connector/callbacks", "description": "Scheduled callbacks management" },
      { "path": "/api/plugins/database-connector/tools", "description": "Agent tool webhooks" },
      { "path": "/api/plugins/database-connector/analytics", "description": "Payment analytics and reporting" },
      { "path": "/api/plugins/database-connector/scripts", "description": "Call scripts management" },
      { "path": "/api/plugins/database-connector/webhooks", "description": "Webhook configurations" },
      { "path": "/api/plugins/database-connector/scoring", "description": "Customer scoring and prioritization" }
    ]
  },
  
  "ui": {
    "adminSettings": {
      "menu": "database-connector",
      "label": "Database Connector",
      "component": "AdminDatabaseConnector",
      "icon": "Database"
    },
    "adminPages": [
      {
        "path": "/admin/database-analytics",
        "component": "PaymentAnalyticsDashboard",
        "label": "لوحة التحليلات",
        "icon": "BarChart"
      },
      {
        "path": "/admin/database-connections",
        "component": "AdminDatabaseConnections",
        "label": "الاتصالات",
        "icon": "Server"
      },
      {
        "path": "/admin/database-queries",
        "component": "QueryBuilder",
        "label": "الاستعلامات",
        "icon": "Search"
      },
      {
        "path": "/admin/database-actions",
        "component": "ActionBuilder",
        "label": "الإجراءات",
        "icon": "Zap"
      },
      {
        "path": "/admin/database-documents",
        "component": "AdminDocumentTemplates",
        "label": "قوالب المستندات",
        "icon": "FileText"
      },
      {
        "path": "/admin/database-callbacks",
        "component": "AdminScheduledCallbacks",
        "label": "المكالمات المجدولة",
        "icon": "Clock"
      },
      {
        "path": "/admin/database-scripts",
        "component": "CallScriptsManager",
        "label": "نصوص المكالمات",
        "icon": "MessageSquare"
      }
    ],
    "userSettings": {
      "tab": "database-sources",
      "label": "Data Sources",
      "component": "UserDatabaseSources"
    },
    "agentSettings": {
      "tab": "database",
      "label": "Database",
      "component": "AgentDatabaseSettings"
    },
    "frontendBundle": "dist/frontend/bundle.js"
  },
  
  "permissions": {
    "required": [
      "session-auth-middleware",
      "admin-auth-middleware"
    ]
  },
  
  "features": [
    "Multiple Database Connectors (MySQL, PostgreSQL, MongoDB, REST API)",
    "Real-time Data Queries during Conversations",
    "Data Updates and Inserts",
    "PDF Document Generation (Invoices, Receipts, Statements)",
    "Scheduled Callbacks with Auto-dial",
    "Debt Collection Workflow",
    "Text-to-SQL AI Conversion",
    "Schema Discovery and Mapping",
    "Row-Level Security",
    "Query Builder UI",
    "Action Builder UI",
    "Document Template Editor"
  ],
  
  "useCases": [
    {
      "name": "Debt Collection",
      "description": "Automatically call customers with pending payments, remind them, and schedule follow-up calls",
      "tools": ["query_database", "schedule_callback"]
    },
    {
      "name": "Order Status",
      "description": "Let customers check their order status, tracking, and delivery updates",
      "tools": ["query_database"]
    },
    {
      "name": "Balance Inquiry",
      "description": "Provide real-time account balance and transaction history",
      "tools": ["query_database", "generate_document"]
    },
    {
      "name": "Appointment Management",
      "description": "Book, reschedule, or cancel appointments directly from the call",
      "tools": ["query_database", "update_database", "schedule_callback"]
    },
    {
      "name": "Invoice Generation",
      "description": "Generate and send PDF invoices during or after the call",
      "tools": ["query_database", "generate_document"]
    }
  ],
  
  "tools": {
    "webhook": [
      {
        "name": "query_database",
        "description": "Search and retrieve data from connected databases",
        "endpoint": "/api/plugins/database-connector/tools/query"
      },
      {
        "name": "update_database",
        "description": "Update or insert records in connected databases",
        "endpoint": "/api/plugins/database-connector/tools/update"
      },
      {
        "name": "generate_document",
        "description": "Generate PDF documents like invoices and statements",
        "endpoint": "/api/plugins/database-connector/tools/document"
      },
      {
        "name": "schedule_callback",
        "description": "Schedule a follow-up call at a specific time",
        "endpoint": "/api/plugins/database-connector/tools/callback"
      }
    ]
  },
  
  "settings": {
    "enabled": {
      "type": "boolean",
      "default": true,
      "label": "Enable Database Connector Plugin",
      "description": "Enable or disable the database connector plugin"
    },
    "maxConnections": {
      "type": "number",
      "default": 5,
      "label": "Max Connections per User",
      "description": "Maximum database connections allowed per user"
    },
    "maxQueriesPerMinute": {
      "type": "number",
      "default": 60,
      "label": "Max Queries per Minute",
      "description": "Rate limit for database queries per user"
    },
    "enableTextToSQL": {
      "type": "boolean",
      "default": true,
      "label": "Enable Text-to-SQL",
      "description": "Allow AI to generate SQL from natural language"
    },
    "callbackRetryAttempts": {
      "type": "number",
      "default": 3,
      "label": "Callback Retry Attempts",
      "description": "Number of retry attempts for scheduled callbacks"
    }
  },
  
  "environmentVariables": {
    "required": [],
    "optional": [
      "DB_CONNECTOR_ENCRYPTION_KEY",
      "DB_CONNECTOR_WEBHOOK_SECRET"
    ]
  }
}
