import { MigrationInterface, QueryRunner } from "typeorm";

export class BreachedAndChatbot1743791588094 implements MigrationInterface {
    name = 'BreachedAndChatbot1743791588094'

    public async up(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`CREATE TABLE \`emails\` (\`id\` int NOT NULL AUTO_INCREMENT, \`email\` varchar(255) NOT NULL, INDEX \`IDX_emails_email\` (\`email\`), UNIQUE INDEX \`UQ_emails_email\` (\`email\`), PRIMARY KEY (\`id\`)) ENGINE=InnoDB`);
        await queryRunner.query(`CREATE TABLE \`email_breaches\` (\`id\` int NOT NULL AUTO_INCREMENT, \`source\` varchar(100) NOT NULL, \`breach_id\` varchar(36) NOT NULL, \`breach_date\` timestamp NOT NULL, \`imported_at\` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), \`email_id\` int NULL, PRIMARY KEY (\`id\`)) ENGINE=InnoDB`);
        await queryRunner.query(`ALTER TABLE \`feature_analytics\` CHANGE \`geo_details\` \`geo_details\` json NULL`);
        await queryRunner.query(`ALTER TABLE \`email_breaches\` ADD CONSTRAINT \`FK_76d3c7226cb30dd146cc57ea2d1\` FOREIGN KEY (\`email_id\`) REFERENCES \`emails\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`);
    }

    public async down(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`ALTER TABLE \`email_breaches\` DROP FOREIGN KEY \`FK_76d3c7226cb30dd146cc57ea2d1\``);
        await queryRunner.query(`ALTER TABLE \`feature_analytics\` CHANGE \`geo_details\` \`geo_details\` json NOT NULL`);
        await queryRunner.query(`DROP TABLE \`email_breaches\``);
        await queryRunner.query(`DROP INDEX \`UQ_emails_email\` ON \`emails\``);
        await queryRunner.query(`DROP INDEX \`IDX_emails_email\` ON \`emails\``);
        await queryRunner.query(`DROP TABLE \`emails\``);
    }

}
