ScheduleGenerator 테스트"; try { require_once('classes/ScheduleGenerator.class.php'); $generator = new ScheduleGenerator(); // 테스트할 년월 $year = 2024; $month = 12; echo "

1. 기본 설정 확인

"; // 기본 설정 확인 $duration = consultant_get_config('consultation_duration', 60); $maxPersons = consultant_get_config('max_persons_per_slot', 2); echo "- 상담 시간: {$duration}분
"; echo "- 최대 인원: {$maxPersons}명
"; echo "

2. 요일별 설정 확인

"; $days = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday']; $dayNames = ['월요일', '화요일', '수요일', '목요일', '금요일', '토요일', '일요일']; foreach ($days as $i => $day) { $enabled = consultant_get_config($day . '_enabled', '1'); $start = consultant_get_config($day . '_start', '09:00'); $end = consultant_get_config($day . '_end', '18:00'); $lunchStart = consultant_get_config($day . '_lunch_start', '12:00'); $lunchEnd = consultant_get_config($day . '_lunch_end', '13:00'); echo "- {$dayNames[$i]}: "; if ($enabled == '1') { echo "운영 ({$start}~{$end}, 점심: {$lunchStart}~{$lunchEnd})"; } else { echo "휴무"; } echo "
"; } echo "

3. 기존 스케줄 확인

"; $existingCount = sql_fetch("SELECT COUNT(*) as count FROM consultant_schedule WHERE YEAR(specific_date) = {$year} AND MONTH(specific_date) = {$month}"); echo "- 기존 스케줄: {$existingCount['count']}개
"; echo "

4. 충돌 검사

"; $conflicts = $generator->checkScheduleConflicts($year, $month); echo "- 충돌 건수: " . count($conflicts) . "건
"; if (!empty($conflicts)) { echo ""; } echo "

5. 스케줄 생성 테스트

"; $result = $generator->generateMonth($year, $month); if ($result) { $newCount = sql_fetch("SELECT COUNT(*) as count FROM consultant_schedule WHERE YEAR(specific_date) = {$year} AND MONTH(specific_date) = {$month}"); echo "

✅ 성공: {$newCount['count']}개 스케줄 생성 완료

"; // 생성된 스케줄 샘플 표시 echo "

생성된 스케줄 샘플 (첫 5일)

"; $samples = sql_query("SELECT * FROM consultant_schedule WHERE YEAR(specific_date) = {$year} AND MONTH(specific_date) = {$month} ORDER BY specific_date, start_time LIMIT 20"); echo ""; echo ""; while ($row = sql_fetch_array($samples)) { $dayOfWeek = date('N', strtotime($row['specific_date'])); $dayName = $dayNames[$dayOfWeek - 1]; $available = $row['is_available'] ? '가능' : '불가능'; $type = $row['temp_1'] ?? '일반'; $memo = $row['temp_2'] ?? ''; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; } echo "
날짜요일시작시간종료시간최대인원사용가능타입메모
{$row['specific_date']}{$dayName}{$row['start_time']}{$row['end_time']}{$row['max_persons']}{$available}{$type}{$memo}
"; // 타입별 통계 echo "

생성된 스케줄 통계

"; $stats = sql_query("SELECT temp_1, COUNT(*) as count FROM consultant_schedule WHERE YEAR(specific_date) = {$year} AND MONTH(specific_date) = {$month} GROUP BY temp_1"); echo ""; } else { echo "

❌ 실패: 스케줄 생성에 실패했습니다.

"; } } catch (Exception $e) { echo "

오류: " . htmlspecialchars($e->getMessage()) . "

"; echo "
" . htmlspecialchars($e->getTraceAsString()) . "
"; } echo "
"; echo "

설정으로 돌아가기 | 스케줄 관리

"; ?>