index.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. use FrameworkX\App;
  3. use Middlewares\JwtAuthMiddleware;
  4. require __DIR__ . '/../vendor/autoload.php';
  5. $path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
  6. $file = __DIR__ . $path;
  7. if (php_sapi_name() === 'cli-server' && is_file($file)) {
  8. return false;
  9. }
  10. if (class_exists(Dotenv\Dotenv::class) && file_exists(__DIR__ . '/../.env')) {
  11. Dotenv\Dotenv::createImmutable(
  12. dirname(__DIR__),
  13. null,
  14. true
  15. )->safeLoad();
  16. }
  17. error_reporting(E_ALL);
  18. $app = new App();
  19. $authJwt = new JwtAuthMiddleware();
  20. // Rotas versionadas sob /v1 para permitir evolução sem quebrar clientes existentes.
  21. $app->get('/v1/me', $authJwt, \Controllers\MeController::class);
  22. $app->get('/v1/dashboard/overview', $authJwt, \Controllers\DashboardOverviewController::class);
  23. $app->get('/v1/interactions', $authJwt, \Controllers\InteractionsController::class);
  24. $app->get('/v1/interactions/details', $authJwt, \Controllers\InteractionDetailsController::class);
  25. $app->get('/v1/analytics/sentiment/dashboard', $authJwt, \Controllers\AnalyticsSentimentDashboardController::class);
  26. $app->get('/v1/personas/overview', $authJwt, \Controllers\PersonasOverviewController::class);
  27. $app->get('/v1/evolution/overview', $authJwt, \Controllers\EvolutionOverviewController::class);
  28. $app->get('/v1/executive/dashboard', $authJwt, \Controllers\ExecutiveDashboardController::class);
  29. $app->get('/v1/agents', $authJwt, \Controllers\AgentsController::class);
  30. $app->post('/v1/login', \Controllers\LoginController::class);
  31. // Registro exige autenticação: o novo usuário herda o company_id do solicitante.
  32. $app->post('/v1/register', $authJwt, \Controllers\RegisterController::class);
  33. $app->post('/v1/agents', $authJwt, \Controllers\AgentSaveController::class);
  34. $app->post('/v1/agents/status', $authJwt, \Controllers\AgentStatusController::class);
  35. $app->post('/v1/agents/escalation', $authJwt, \Controllers\AgentEscalationController::class);
  36. $app->run();