/**
 * 마이그레이션: tbm_team_assignments 테이블 확장
 * 작업자별 프로젝트/공정/작업/작업장 정보 저장 가능하도록 컬럼 추가 및 외래키 설정
 */

exports.up = async function(knex) {
  // 1. workplace_category_id와 workplace_id를 UNSIGNED로 변경
  await knex.raw(`
    ALTER TABLE tbm_team_assignments
    MODIFY COLUMN workplace_category_id INT UNSIGNED NULL COMMENT '작업자별 작업장 대분류 (공장)',
    MODIFY COLUMN workplace_id INT UNSIGNED NULL COMMENT '작업자별 작업장 ID'
  `);

  // 2. 외래키 제약조건 추가
  return knex.schema.alterTable('tbm_team_assignments', function(table) {
    // 외래키 제약조건 추가
    table.foreign('workplace_category_id')
      .references('category_id')
      .inTable('workplace_categories')
      .onDelete('SET NULL')
      .onUpdate('CASCADE');

    table.foreign('workplace_id')
      .references('workplace_id')
      .inTable('workplaces')
      .onDelete('SET NULL')
      .onUpdate('CASCADE');
  });
};

exports.down = function(knex) {
  return knex.schema.alterTable('tbm_team_assignments', function(table) {
    // 외래키 제약조건 제거
    table.dropForeign('workplace_category_id');
    table.dropForeign('workplace_id');
  });
};
