import type { Knex } from 'knex'; export async function up(knex: Knex): Promise { await knex.schema.createTable('password_reset_tokens', (table) => { table.uuid('id').primary().defaultTo(knex.raw('gen_random_uuid()')); table.uuid('user_id').notNullable().references('id').inTable('users').onDelete('CASCADE'); table.string('token_hash', 255).notNullable(); table.timestamp('expires_at', { useTz: true }).notNullable(); table.timestamp('used_at', { useTz: true }).nullable(); table.timestamp('created_at', { useTz: true }).defaultTo(knex.fn.now()); }); await knex.raw(`CREATE INDEX idx_prt_user_id ON password_reset_tokens (user_id)`); } export async function down(knex: Knex): Promise { await knex.schema.dropTableIfExists('password_reset_tokens'); }