import express from 'express'; import cookieParser from 'cookie-parser'; import { fileURLToPath } from 'url'; import { dirname, join } from 'path'; import logger from '../utils/logger.js'; import { requireAuth, handleLogin, handleLogout, renderLogin } from './auth.js'; import dashboardRouter from './routes/dashboard.js'; import catalogRouter from './routes/catalog.js'; import usersRouter from './routes/users.js'; import productsRouter from './routes/products.js'; import walletsRouter from './routes/wallets.js'; import purchasesRouter from './routes/purchases.js'; import auditRouter from './routes/audit.js'; import settingsRouter from './routes/settings.js'; import categoriesRouter from './routes/categories.js'; import paymentWalletsRouter from './routes/paymentWallets.js'; import locationsRouter from './routes/locations.js'; import seedRouter from './routes/seed.js'; const __dirname = dirname(fileURLToPath(import.meta.url)); const app = express(); app.use(cookieParser()); app.use(express.urlencoded({ extended: true })); app.use('/admin/style.css', express.static(join(__dirname, 'public', 'style.css'))); app.get('/health', (req, res) => { res.json({ status: 'ok', uptime: process.uptime() }); }); app.get('/login', (req, res) => { res.send(renderLogin()); }); app.post('/login', handleLogin); app.get('/logout', handleLogout); app.use(requireAuth); app.use('/', dashboardRouter); app.use('/catalog', catalogRouter); app.use('/users', usersRouter); app.use('/products', productsRouter); app.use('/wallets', walletsRouter); app.use('/purchases', purchasesRouter); app.use('/audit', auditRouter); app.use('/settings', settingsRouter); app.use('/categories', categoriesRouter); app.use('/locations', locationsRouter); app.use('/payment-wallets', paymentWalletsRouter); app.use('/seed', seedRouter); export function startAdminPanel() { const port = parseInt(process.env.ADMIN_PORT || '3001', 10); app.listen(port, () => { logger.info({ port }, 'Admin panel started'); }); }