{
  "services": [
    {
      "id": "python-contabil",
      "name": "Contabil Service",
      "description": "Serviço de contabilidade e integração fiscal",
      "type": "python",
      "command": "python3",
      "args": ["-m", "uvicorn", "contabil.main:app", "--host", "0.0.0.0", "--port", "8003"],
      "cwd": "./python-service",
      "port": 8003,
      "healthCheck": {
        "path": "/health",
        "interval": 30000,
        "timeout": 5000,
        "retries": 3
      },
      "env": {
        "PYTHONPATH": ".",
        "SERVICE_NAME": "contabil",
        "LOG_LEVEL": "info"
      },
      "maxRestarts": 5,
      "autoStart": true
    },
    {
      "id": "bi-api",
      "name": "BI API Gateway",
      "type": "node",
      "command": "node",
      "args": ["dist/server/bi/index.js"],
      "cwd": ".",
      "port": 8004,
      "autoStart": true,
      "env": {
        "NODE_ENV": "production",
        "SERVICE_NAME": "bi-api",
        "PORT": "8004",
        "METASET_HOST": "127.0.0.1",
        "METASET_PORT": "8100",
        "FDB_BRIDGE_PORT": "8200"
      },
      "healthCheck": {
        "path": "/bi/health",
        "interval": 30000,
        "timeout": 5000,
        "retries": 3
      },
      "maxRestarts": 5,
      "description": "Gateway de BI com proxy para MetaSet e FDB-Bridge"
    },
    {
      "id": "metaset",
      "name": "MetaSet BI",
      "type": "python",
      "command": "python",
      "args": ["server/bi/metaset/run.py", "--port=8100", "--host=127.0.0.1"],
      "cwd": ".",
      "port": 8100,
      "autoStart": false,
      "env": {
        "PYTHONPATH": "server/bi/metaset",
        "FLASK_ENV": "production",
        "SUPERSET_CONFIG_PATH": "server/bi/metaset/superset_config.py",
        "SUPERSET_SECRET_KEY": "${SUPERSET_SECRET_KEY}"
      },
      "healthCheck": {
        "path": "/health",
        "interval": 30000,
        "timeout": 10000,
        "retries": 3
      },
      "maxRestarts": 3,
      "description": "Apache Superset rebrandado como MetaSet - Gerenciado via Docker Discovery"
    },
    {
      "id": "fdb-bridge",
      "name": "FDB Bridge",
      "type": "python",
      "command": "python",
      "args": ["server/bi/fdb-bridge/main.py", "--port=8200"],
      "cwd": ".",
      "port": 8200,
      "autoStart": true,
      "env": {
        "PYTHONPATH": "server/bi/fdb-bridge",
        "FDB_HOST": "${FDB_HOST}",
        "FDB_PORT": "${FDB_PORT:-3050}"
      },
      "healthCheck": {
        "path": "/health",
        "interval": 60000,
        "timeout": 5000,
        "retries": 3
      },
      "maxRestarts": 3,
      "description": "Conector Firebird para sincronização de dados"
    },
    {
      "id": "python-automation",
      "name": "Automation Service",
      "description": "Serviço de automações e workflows",
      "type": "python",
      "command": "python3",
      "args": ["-m", "uvicorn", "automation.main:app", "--host", "0.0.0.0", "--port", "8005"],
      "cwd": "./python-service",
      "port": 8005,
      "healthCheck": {
        "path": "/health",
        "interval": 30000,
        "timeout": 5000,
        "retries": 3
      },
      "env": {
        "PYTHONPATH": ".",
        "SERVICE_NAME": "automation",
        "LOG_LEVEL": "info"
      },
      "maxRestarts": 5,
      "autoStart": true
    },
    {
      "id": "python-fisco",
      "name": "Motor Fiscal",
      "description": "NF-e/NFC-e - NCMs, CFOPs, CESTs, SEFAZ",
      "type": "python",
      "command": "python3",
      "args": ["-m", "uvicorn", "fisco_service:app", "--host", "0.0.0.0", "--port", "8002"],
      "cwd": "./server/python",
      "port": 8002,
      "healthCheck": {
        "path": "/health",
        "interval": 30000,
        "timeout": 5000,
        "retries": 3
      },
      "env": {
        "PYTHONPATH": ".",
        "SERVICE_NAME": "fisco",
        "LOG_LEVEL": "info"
      },
      "maxRestarts": 5,
      "autoStart": false
    },
    {
      "id": "node-communication",
      "name": "Communication Service",
      "description": "Serviço de comunicação WhatsApp e outros canais",
      "type": "node",
      "command": "node",
      "args": ["dist/services/communication/index.js"],
      "port": 8006,
      "healthCheck": {
        "path": "/health",
        "interval": 30000,
        "timeout": 5000,
        "retries": 3
      },
      "env": {
        "NODE_ENV": "production",
        "SERVICE_NAME": "communication",
        "PORT": "8006"
      },
      "maxRestarts": 5,
      "autoStart": false
    },

    {
      "id": "node-core-api",
      "name": "Core API Service",
      "description": "API Core adicional para processamento",
      "type": "node",
      "command": "node",
      "args": ["dist/services/core-api/index.js"],
      "port": 9002,
      "healthCheck": {
        "path": "/health",
        "interval": 30000,
        "timeout": 5000,
        "retries": 3
      },
      "env": {
        "NODE_ENV": "production",
        "SERVICE_NAME": "core-api",
        "PORT": "9002"
      },
      "maxRestarts": 5,
      "autoStart": false
    },
    {
      "id": "node-worker",
      "name": "Worker Service",
      "description": "Processamento de jobs e tarefas em background",
      "type": "node",
      "command": "node",
      "args": ["dist/services/worker/index.js"],
      "port": 9003,
      "healthCheck": {
        "path": "/health",
        "interval": 30000,
        "timeout": 5000,
        "retries": 3
      },
      "env": {
        "NODE_ENV": "production",
        "SERVICE_NAME": "worker",
        "PORT": "9003"
      },
      "maxRestarts": 5,
      "autoStart": false
    }
  ]
}
