/**
 * Migration: Register attendance management pages
 * Purpose: Add 4 new pages to pages table for attendance management system
 * Date: 2026-01-29
 */

exports.up = async function(knex) {
  // 페이지 등록 (실제 pages 테이블 컬럼에 맞춤)
  await knex('pages').insert([
    {
      page_key: 'daily-attendance',
      page_name: '일일 출퇴근 입력',
      page_path: '/pages/common/daily-attendance.html',
      description: '일일 출퇴근 기록 입력 페이지 (관리자/조장)',
      category: 'common',
      is_admin_only: false,
      display_order: 50
    },
    {
      page_key: 'monthly-attendance',
      page_name: '월별 출퇴근 현황',
      page_path: '/pages/common/monthly-attendance.html',
      description: '월별 출퇴근 현황 조회 페이지',
      category: 'common',
      is_admin_only: false,
      display_order: 51
    },
    {
      page_key: 'vacation-management',
      page_name: '휴가 관리',
      page_path: '/pages/common/vacation-management.html',
      description: '휴가 신청 및 승인 관리 페이지',
      category: 'common',
      is_admin_only: false,
      display_order: 52
    },
    {
      page_key: 'attendance-report-comparison',
      page_name: '출퇴근-작업보고서 대조',
      page_path: '/pages/admin/attendance-report-comparison.html',
      description: '출퇴근 기록과 작업보고서 대조 페이지 (관리자)',
      category: 'admin',
      is_admin_only: true,
      display_order: 120
    }
  ]);


  // Admin 사용자(user_id=1)에게 페이지 접근 권한 부여
  const adminUserId = 1;
  const pages = await knex('pages')
    .whereIn('page_key', [
      'daily-attendance',
      'monthly-attendance',
      'vacation-management',
      'attendance-report-comparison'
    ])
    .select('id');

  const accessRecords = pages.map(page => ({
    user_id: adminUserId,
    page_id: page.id,
    can_access: true,
    granted_by: adminUserId
  }));

  await knex('user_page_access').insert(accessRecords);
};

exports.down = async function(knex) {
  // 페이지 삭제 (user_page_access는 FK CASCADE로 자동 삭제됨)
  await knex('pages')
    .whereIn('page_key', [
      'daily-attendance',
      'monthly-attendance',
      'vacation-management',
      'attendance-report-comparison'
    ])
    .delete();

};
