const checkinModel = require('../models/checkinModel'); // 일정별 체크인 목록 async function list(req, res) { try { const rows = await checkinModel.findBySchedule(req.params.scheduleId); res.json({ success: true, data: rows }); } catch (err) { console.error('Checkin list error:', err); res.status(500).json({ success: false, error: err.message }); } } // 내 체크인 (협력업체 포탈 - 오늘) async function myCheckins(req, res) { try { const companyId = req.user.partner_company_id; if (!companyId) { return res.status(403).json({ success: false, error: '협력업체 계정이 아닙니다' }); } const rows = await checkinModel.findTodayByCompany(companyId); res.json({ success: true, data: rows }); } catch (err) { console.error('Checkin myCheckins error:', err); res.status(500).json({ success: false, error: err.message }); } } // 체크인 async function checkIn(req, res) { try { const { schedule_id, company_id, worker_names, actual_worker_count } = req.body; if (!schedule_id) { return res.status(400).json({ success: false, error: '일정을 선택해주세요' }); } const resolvedCompanyId = company_id || req.user.partner_company_id; if (!resolvedCompanyId) { return res.status(400).json({ success: false, error: '업체 정보가 필요합니다' }); } const data = { schedule_id, company_id: resolvedCompanyId, checked_by: req.user.user_id || req.user.id, worker_names, actual_worker_count, notes: req.body.notes }; const row = await checkinModel.checkIn(data); res.status(201).json({ success: true, data: row }); } catch (err) { console.error('Checkin checkIn error:', err); res.status(500).json({ success: false, error: err.message }); } } // 체크아웃 async function checkOut(req, res) { try { const row = await checkinModel.checkOut(req.params.id); if (!row) return res.status(404).json({ success: false, error: '체크인 기록을 찾을 수 없습니다' }); res.json({ success: true, data: row }); } catch (err) { console.error('Checkin checkOut error:', err); res.status(500).json({ success: false, error: err.message }); } } // 체크인 정보 수정 async function update(req, res) { try { const row = await checkinModel.update(req.params.id, req.body); if (!row) return res.status(404).json({ success: false, error: '체크인 기록을 찾을 수 없습니다' }); res.json({ success: true, data: row }); } catch (err) { console.error('Checkin update error:', err); res.status(500).json({ success: false, error: err.message }); } } module.exports = { list, myCheckins, checkIn, checkOut, update };