File size: 1,807 Bytes
ef874e6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48013ee
ef874e6
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import { Router } from 'express';
import { OpsController } from '../controllers/ops.controller';
import { authenticate } from '../middlewares/auth.middleware';
import { validate } from '../middlewares/validate.middleware';
import { bukaShiftSchema, tutupShiftSchema, updatePengaturanSchema, laporanQuerySchema } from '../schemas/ops.schema';

const opsRouter = Router();

// ================= SHIFT KASIR =================
opsRouter.get('/shift/aktif', authenticate, OpsController.getActiveShift);
opsRouter.post('/shift/buka', authenticate, validate(bukaShiftSchema), OpsController.openShift);
opsRouter.post('/shift/tutup', authenticate, validate(tutupShiftSchema), OpsController.closeShift);

// ================= REPORT & DASHBOARD =================
opsRouter.get('/dashboard/summary', authenticate, OpsController.getDashboardSummary);
opsRouter.get('/laporan/penjualan', authenticate, validate(laporanQuerySchema), OpsController.getSalesReport);
opsRouter.get('/laporan/laba', authenticate, validate(laporanQuerySchema), OpsController.getProfitLossReport);
opsRouter.get('/laporan/ekspor', authenticate, OpsController.eksporLaporan);

// ================= SETTINGS =================
opsRouter.get('/pengaturan', OpsController.getSettings);
opsRouter.get('/pengaturan/:kunci', OpsController.getSettingByKey);
opsRouter.put('/pengaturan/:kunci', authenticate, validate(updatePengaturanSchema), OpsController.updateSetting);

// ================= NOTIFIKASI =================
opsRouter.get('/notifikasi', OpsController.listNotifications);
opsRouter.get('/notifikasi/unread-count', OpsController.getUnreadNotificationCount);
opsRouter.post('/notifikasi/read-all', OpsController.readAllNotifications);
opsRouter.post('/notifikasi/:notif_id/read', OpsController.readNotification);

export default opsRouter;