exports.up = async (knex) => {
  // using async/await lets you work with multiple tables in one up/down
  await knex.schema.createTable('livestream', (table) => {
    table.increments('id');
    table.timestamps(true, true);

    table.string("title").notNullable();
    table.text("description").notNullable();
    table.string('poster');
    table.string("source");
    table.datetime("starts_on").notNullable();
    table.boolean('is_free').defaultTo(false).notNullable();

    // only four states really needed in most payment systems
    table.enum('state', ['pending', 'live', 'finished', 'archived']).notNull().default('pending');
  });

  // because this is an async it'll automatically be a promise for knex
  // add any other tables here with an await, no need to return
};

exports.down = async (knex) => {
  await knex.schema.dropTable('livestream');
};
