import router from '@adonisjs/core/services/router' import { middleware } from '#start/kernel' const AuthController = () => import('#controllers/auth_controller') const ProductsController = () => import('#controllers/products_controller') const ImportsController = () => import('#controllers/imports_controller') const PricingController = () => import('#controllers/pricing_controller') const LogsController = () => import('#controllers/logs_controller') const HistoriesController = () => import('#controllers/histories_controller') router.get('/', async () => ({ service: 'suggestprice-api', status: 'ok' })) router.get('/api/health', async () => ({ ok: true })) router.get('/api/products/syncProductBySku', [ProductsController, 'syncProductBySku']) router.get('/api/products', [ProductsController, 'index']) router .group(() => { // --- Auth --- router.post('/auth/register', [AuthController, 'register']) router.post('/auth/login', [AuthController, 'login']) router .group(() => { router.post('/auth/logout', [AuthController, 'logout']) router.get('/auth/me', [AuthController, 'me']) // --- Products (CRUD: manual + sync) --- router.post('/products', [ProductsController, 'store']) router.get('/products/:id', [ProductsController, 'show']) router.patch('/products/:id', [ProductsController, 'update']) router.delete('/products/:id', [ProductsController, 'destroy']) // --- Import Excel --- router.post('/imports/products', [ImportsController, 'products']) // --- Pricing (service gợi ý giá) --- router.post('/pricing/suggest/:id', [PricingController, 'suggest']) router.post('/pricing/suggest/:id/approve', [PricingController, 'approve']) router.post('/pricing/batch', [PricingController, 'batch']) // --- Log & History --- router.get('/logs', [LogsController, 'index']) router.get('/histories', [HistoriesController, 'index']) router.get('/histories/:id', [HistoriesController, 'show']) }) .use(middleware.auth()) }) .prefix('/api')