import { MigrationInterface, QueryRunner, Table, TableColumn } from 'typeorm';
import { ETicketStatus } from '../ticket/enums/eticket-status.enum';

export class TicketStatusAndTicketEvent1620380373953
  implements MigrationInterface {
  public async up(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.addColumn(
      'ticket',
      new TableColumn({
        name: 'status',
        type: 'varchar',
        isNullable: false,
        default: `'${ETicketStatus.OPEN}'`,
      })
    );

    await queryRunner.createTable(
      new Table({
        name: 'ticket_event',
        columns: [
          {
            name: 'id',
            type: 'int',
            isPrimary: true,
          },
          {
            name: 'ticketId',
            type: 'int',
            isNullable: false,
          },
          {
            name: 'event',
            type: 'varchar',
            isNullable: false,
          },
          {
            name: 'createdOn',
            type: 'datetime',
            default: 'now()',
          },
          {
            name: 'data',
            type: 'json',
            default: null,
          },
        ],
      })
    );
  }

  public async down(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.dropColumn('ticket', 'status');
    await queryRunner.dropTable('ticket_event');
  }
}
