import AgentForm from "./components/agents/AgentForm";
import AgentList from "./components/agents/AgentList";
import { BrowserRouter, Routes, Route, Navigate } from "react-router-dom";
import AppLayout from "./components/layout/AppLayout";
import ProjectForm from "./components/projects/ProjectForm";
import ProjectDashboard from "./components/projects/ProjectDashboard";
import ProjectLiveAgent from "./components/projects/ProjectLiveAgent";
import ProjectModules from "./components/projects/ProjectModules";
import ProjectTasks from "./components/projects/ProjectTasks";
import SettingsPage from "./components/settings/SettingsPage";
import TicketDetail from "./components/tickets/TicketDetail";
import TicketList from "./components/tickets/TicketList";
import TrackerConfig from "./components/trackers/TrackerConfig";

function EmptyState() {
  return (
    <div className="flex items-center justify-center h-full text-gray-400">
      <p>Select a project or create a new one</p>
    </div>
  );
}

function App() {
  return (
    <BrowserRouter>
      <Routes>
        <Route element={<AppLayout />}>
          <Route index element={<EmptyState />} />
          <Route path="/projects/new" element={<ProjectForm />} />
          <Route path="/projects/:projectId" element={<ProjectDashboard />} />
          <Route path="/projects/:projectId/modules" element={<ProjectModules />} />
          <Route path="/projects/:projectId/live-agent" element={<ProjectLiveAgent />} />
          <Route path="/projects/:projectId/tasks" element={<ProjectTasks />} />
          <Route path="/projects/:projectId/tickets" element={<TicketList />} />
          <Route path="/projects/:projectId/edit" element={<ProjectForm />} />
          <Route path="/projects/:projectId/trackers/new" element={<TrackerConfig />} />
          <Route path="/projects/:projectId/trackers/:trackerConfigId/edit" element={<TrackerConfig />} />
          <Route path="/agents" element={<AgentList />} />
          <Route path="/agents/new" element={<AgentForm />} />
          <Route path="/agents/:agentId/edit" element={<AgentForm />} />
          <Route path="/tickets/:ticketId" element={<TicketDetail />} />
          <Route path="/settings" element={<SettingsPage />} />
          <Route path="*" element={<Navigate to="/" replace />} />
        </Route>
      </Routes>
    </BrowserRouter>
  );
}

export default App;
