import { MigrationInterface, QueryRunner } from 'typeorm';

/**
 * Adds freight.contracts.document_snapshot — a per-contract frozen copy of the
 * contract-document template (articles + WHEREAS recitals) captured at staff
 * accept. Staff can edit these articles for a single contract before generating
 * its PDF; the edit never touches the shared six freight.contract_templates
 * rows. Null on existing contracts → the PDF keeps rendering from the live
 * template, so this is backward compatible.
 */
export class AddContractDocumentSnapshot2220000000000
  implements MigrationInterface
{
  public async up(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(`
      ALTER TABLE freight.contracts
        ADD COLUMN IF NOT EXISTS document_snapshot JSONB;
    `);
  }

  public async down(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(`
      ALTER TABLE freight.contracts
        DROP COLUMN IF EXISTS document_snapshot;
    `);
  }
}
