/**
 * 작업 테이블 생성 (공정=work_types에 속함)
 *
 * @param {import('knex').Knex} knex
 */
exports.up = function(knex) {
  return knex.schema.createTable('tasks', function(table) {
    table.increments('task_id').primary().comment('작업 ID');
    table.integer('work_type_id').nullable().comment('공정 ID (work_types 참조)');
    table.string('task_name', 255).notNullable().comment('작업명');
    table.text('description').nullable().comment('작업 설명');
    table.boolean('is_active').defaultTo(true).comment('활성화 여부');
    table.timestamp('created_at').defaultTo(knex.fn.now()).comment('생성일시');
    table.timestamp('updated_at').defaultTo(knex.fn.now()).comment('수정일시');

    // 외래키 (work_types 테이블 참조)
    table.foreign('work_type_id')
      .references('id')
      .inTable('work_types')
      .onDelete('SET NULL')
      .onUpdate('CASCADE');

    // 인덱스
    table.index('work_type_id');
    table.index('is_active');
  }).then(() => {
  });
};

/**
 * @param {import('knex').Knex} knex
 */
exports.down = function(knex) {
  return knex.schema.dropTableIfExists('tasks');
};
