import type { Knex } from "knex";

export async function up(knex: Knex): Promise<void> {
  return knex.schema.createTable("audit_logs", (table) => {
    table.increments("id").primary();
    table.timestamp("page_created").notNullable();
    table.jsonb("inserted_data").nullable();

    table
      .integer("user_id")
      .unsigned()
      .notNullable()
      .references("id")
      .inTable("users")
      .onDelete("CASCADE");

    table.timestamps(true, true); // created_at, updated_at
    table.timestamp("deleted_at").nullable(); // soft delete
  });
}

export async function down(knex: Knex): Promise<void> {
  return knex.schema.dropTable("audit_logs");
}
