협력업체 포탈에서 오늘 일정이 없을 때 직접 작업을 신청할 수 있는 기능. 구매팀이 승인하면 일정이 생성되고, 반려 시 재신청 가능. - DB: status ENUM에 requested/rejected 추가, requested_by 컬럼 추가 - API: POST /schedules/request, PUT /:id/approve, PUT /:id/reject - 포탈: 신청 폼 + 승인 대기/반려 상태 카드 - 관리자: 신청 배지 + 승인 모달 (프로젝트 배정, 작업장 보정) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
20 lines
909 B
JavaScript
20 lines
909 B
JavaScript
const express = require('express');
|
|
const router = express.Router();
|
|
const { requireAuth, requirePage } = require('../middleware/auth');
|
|
const ctrl = require('../controllers/scheduleController');
|
|
|
|
router.use(requireAuth);
|
|
|
|
router.get('/', ctrl.list);
|
|
router.get('/my', ctrl.mySchedules); // partner portal
|
|
router.get('/:id', ctrl.getById);
|
|
router.post('/', requirePage('purchasing_schedule'), ctrl.create);
|
|
router.post('/request', ctrl.requestSchedule); // 협력업체 작업 신청
|
|
router.put('/:id', requirePage('purchasing_schedule'), ctrl.update);
|
|
router.put('/:id/status', requirePage('purchasing_schedule'), ctrl.updateStatus);
|
|
router.put('/:id/approve', requirePage('purchasing_schedule'), ctrl.approveRequest);
|
|
router.put('/:id/reject', requirePage('purchasing_schedule'), ctrl.rejectRequest);
|
|
router.delete('/:id', requirePage('purchasing_schedule'), ctrl.deleteSchedule);
|
|
|
|
module.exports = router;
|