import { BrowserRouter as Router, Routes, Route } from "react-router-dom";
import Layout from "./components/Layout";
import Login from "./pages/Login";
import Home from "./pages/Home";
import GenerateImage from "./pages/GenerateImage";
import ApiPlaceholder from "./pages/ApiPlaceholder";
import GetMe from "./pages/auth/GetMe";
import SendEmail from "./pages/core/SendEmail";
import EntityTester from "./pages/EntityTester";

import InvokeLLM from "./pages/core/InvokeLLM";
import UploadFile from "./pages/core/UploadFile";
import UploadPrivateFile from "./pages/core/UploadPrivateFile";
import CreateSignedUrl from "./pages/core/CreateSignedUrl";

function App() {
  return (
    <Router>
      <Routes>
        <Route path="/login" element={<Login />} />
        <Route path="/" element={<Layout />}>
          <Route index element={<Home />} />
          
          {/* Auth APIs */}
          <Route path="/auth/me" element={<GetMe />} />
          <Route path="/auth/update-me" element={<ApiPlaceholder title="Update Me" />} />

          {/* Core APIs */}
          <Route path="/core/send-email" element={<SendEmail />} />
          <Route path="/core/invoke-llm" element={<InvokeLLM />} />
          <Route path="/core/upload-file" element={<UploadFile />} />
          <Route path="/core/upload-private-file" element={<UploadPrivateFile />} />
          <Route path="/core/create-signed-url" element={<CreateSignedUrl />} />
          <Route path="/core/extract-data" element={<ApiPlaceholder title="Extract Data from File" />} />
          <Route path="/core/generate-image" element={<GenerateImage />} />

          {/* Entity APIs */}
          <Route path="/entities" element={<EntityTester />} />
        </Route>
      </Routes>
    </Router>
  );
}

export default App;