import { Router } from 'express';
import { requireAuth } from '../middleware/auth.middleware.js';
import { uploadProjectDocument } from '../middleware/projectDocumentUpload.middleware.js';
import { uploadImportFile } from '../middleware/importUpload.middleware.js';
import { approve, create, getOne, list, remove, update } from '../controllers/project.controller.js';
import {
  list as listDocuments,
  remove as removeDocument,
  upload as uploadDocument,
} from '../controllers/projectDocument.controller.js';
import { downloadTemplate, importProject } from '../controllers/projectImport.controller.js';

const router = Router();

router.use(requireAuth);
router.get('/', list);
router.get('/import-template', downloadTemplate);
router.post('/import', uploadImportFile, importProject);
router.get('/:id', getOne);
router.post('/', create);
router.put('/:id', update);
router.put('/:id/approve', approve);
router.delete('/:id', remove);
router.get('/:id/documents', listDocuments);
router.post('/:id/documents', uploadProjectDocument, uploadDocument);
router.delete('/:id/documents/:docId', removeDocument);

export default router;
