import { HashRouter, Routes, Route, Navigate } from 'react-router-dom';
import { Layout } from './components/Layout';
import { Dashboard } from './pages/Dashboard';
import { PostTypes } from './pages/PostTypes';
import { PostTypeForm } from './pages/PostTypeForm';
import { Taxonomies } from './pages/Taxonomies';
import { TaxonomyForm } from './pages/TaxonomyForm';
import { Metaboxes } from './pages/Metaboxes';
import { MetaboxForm } from './pages/MetaboxForm';
import { OptionsPages } from './pages/OptionsPages';
import { OptionsPageForm } from './pages/OptionsPageForm';
import { Settings } from './pages/Settings';
import { Toaster } from './components/ui/toaster';
import { NotificationToastProvider } from './components/ui/notification-toast';
import { ProProvider } from './contexts/ProContext';

export function App() {
  return (
    <ProProvider>
      <NotificationToastProvider>
        <HashRouter>
        <Layout>
          <Routes>
            <Route path="/" element={<Dashboard />} />
            
            {/* Post Types */}
            <Route path="/post-types" element={<PostTypes />} />
            <Route path="/post-types/new" element={<PostTypeForm />} />
            <Route path="/post-types/:id" element={<PostTypeForm />} />
            
            {/* Taxonomies */}
            <Route path="/taxonomies" element={<Taxonomies />} />
            <Route path="/taxonomies/new" element={<TaxonomyForm />} />
            <Route path="/taxonomies/:id" element={<TaxonomyForm />} />
            
            {/* Metaboxes */}
            <Route path="/metaboxes" element={<Metaboxes />} />
            <Route path="/metaboxes/new" element={<MetaboxForm />} />
            <Route path="/metaboxes/:id" element={<MetaboxForm />} />
            
            {/* Options Pages */}
            <Route path="/options-pages" element={<OptionsPages />} />
            <Route path="/options-pages/new" element={<OptionsPageForm />} />
            <Route path="/options-pages/:id" element={<OptionsPageForm />} />
            
            {/* Tools - Redirect to Settings */}
            <Route path="/tools" element={<Navigate to="/settings" replace />} />
            
            {/* Settings (includes Tools) */}
            <Route path="/settings" element={<Settings />} />
            
            {/* Fallback */}
            <Route path="*" element={<Navigate to="/" replace />} />
          </Routes>
        </Layout>
          <Toaster />
        </HashRouter>
      </NotificationToastProvider>
    </ProProvider>
  );
}

