import express, { Router } from 'express';

import * as clickStatsValidation from '@/modules/clickStats/clickStats.validation';
import * as clickStatsController from '@/modules/clickStats/clickStats.controller';

import { validateMiddleware } from '@/shared/utils/middlewares/index';
import userAuthAndCheckPermissions from '@/modules/auth/auth.user.middleware';
import { setAuditFields } from '@/shared/middleware/setAuditFields';
import { AuditMode } from '@/shared/constants/enum.constant';

const router: Router = express.Router();

// POST - Create ClickStat
// GET - Get counts of shared/opened by type & propertyId
router
  .route('/')
  .get(
    userAuthAndCheckPermissions(),
    validateMiddleware(clickStatsValidation.getClickStatsCounts),
    clickStatsController.getClickStatsCounts,
  )
  .post(
    validateMiddleware(clickStatsValidation.createClickStats()),
    setAuditFields({ mode: AuditMode.CREATE }),
    clickStatsController.createClickStats,
  );

export default router;
