import { MigrationInterface, QueryRunner } from "typeorm";

export class Migrations1749540415671 implements MigrationInterface {
    name = 'Migrations1749540415671'

    public async up(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`DROP INDEX "public"."IDX_176cf11a7769978a5b19b1102b"`);
        await queryRunner.query(`DROP INDEX "public"."IDX_258e8333d8bf0cb5a3fb68a761"`);
        await queryRunner.query(`DROP INDEX "public"."IDX_3a6671b170c932f7445fdd4026"`);
        await queryRunner.query(`DROP INDEX "public"."IDX_e44168c54becf5d2ebbafe1af4"`);
        await queryRunner.query(`DROP INDEX "public"."IDX_516a9f26653a9618c25f0b0f01"`);
        await queryRunner.query(`DROP INDEX "public"."IDX_dde037dc05775c06f211484f70"`);
        await queryRunner.query(`DROP INDEX "public"."IDX_58e200a992b8eb925252f9f9d2"`);
        await queryRunner.query(`DROP INDEX "public"."idx_social_medias_username_trgm"`);
        await queryRunner.query(`DROP INDEX "public"."idx_social_medias_displayname_trgm"`);
        await queryRunner.query(`DROP INDEX "public"."idx_social_medias_cityname_trgm"`);
        await queryRunner.query(`DROP INDEX "public"."idx_social_medias_description_trgm"`);
        await queryRunner.query(`DROP INDEX "public"."idx_categories_title_trgm"`);
        await queryRunner.query(`DROP INDEX "public"."idx_keywords_keyword_trgm"`);
        await queryRunner.query(`DROP INDEX "public"."IDX_140782cea9e98f68821f1e94c2"`);
        await queryRunner.query(`DROP INDEX "public"."IDX_1539ab6ddd56a616ae1779ba03"`);
        await queryRunner.query(`DROP INDEX "public"."IDX_3b810c99fae8b4b46555c8bdfc"`);
        await queryRunner.query(`DROP INDEX "public"."IDX_7e90f6e505c30378486bf42191"`);
        await queryRunner.query(`DROP INDEX "public"."IDX_82d2ea5f3f8a99449e541918b5"`);
        await queryRunner.query(`DROP INDEX "public"."IDX_97672ac88f789774dd47f7c8be"`);
        await queryRunner.query(`DROP INDEX "public"."IDX_ace513fa30d485cfd25c11a9e4"`);
        await queryRunner.query(`DROP INDEX "public"."IDX_f3d1d6b6523dc2c93bc2304803"`);
        await queryRunner.query(`DROP INDEX "public"."IDX_f64da742898680d416e245894f"`);
        await queryRunner.query(`DROP INDEX "public"."idx_users_first_name_trgm"`);
        await queryRunner.query(`DROP INDEX "public"."idx_users_last_name_trgm"`);
        await queryRunner.query(`CREATE INDEX "IDX_0df0139cdb76b2db0ccaa2d435" ON "users" ("first_name", "last_name") `);
    }

    public async down(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`DROP INDEX "public"."IDX_0df0139cdb76b2db0ccaa2d435"`);
        await queryRunner.query(`CREATE INDEX "idx_users_last_name_trgm" ON "users" ("last_name") `);
        await queryRunner.query(`CREATE INDEX "idx_users_first_name_trgm" ON "users" ("first_name") `);
        await queryRunner.query(`CREATE INDEX "IDX_f64da742898680d416e245894f" ON "users" ("total_following") `);
        await queryRunner.query(`CREATE INDEX "IDX_f3d1d6b6523dc2c93bc2304803" ON "users" ("currency") `);
        await queryRunner.query(`CREATE INDEX "IDX_ace513fa30d485cfd25c11a9e4" ON "users" ("role") `);
        await queryRunner.query(`CREATE INDEX "IDX_97672ac88f789774dd47f7c8be" ON "users" ("email") `);
        await queryRunner.query(`CREATE INDEX "IDX_82d2ea5f3f8a99449e541918b5" ON "users" ("country") `);
        await queryRunner.query(`CREATE INDEX "IDX_7e90f6e505c30378486bf42191" ON "users" ("total_followers") `);
        await queryRunner.query(`CREATE INDEX "IDX_3b810c99fae8b4b46555c8bdfc" ON "users" ("gender") `);
        await queryRunner.query(`CREATE INDEX "IDX_1539ab6ddd56a616ae1779ba03" ON "users" ("platforms") `);
        await queryRunner.query(`CREATE INDEX "IDX_140782cea9e98f68821f1e94c2" ON "users" ("engagement_ratio") `);
        await queryRunner.query(`CREATE INDEX "idx_keywords_keyword_trgm" ON "keywords" ("keyword") `);
        await queryRunner.query(`CREATE INDEX "idx_categories_title_trgm" ON "categories" ("title") `);
        await queryRunner.query(`CREATE INDEX "idx_social_medias_description_trgm" ON "social_medias" ("description") `);
        await queryRunner.query(`CREATE INDEX "idx_social_medias_cityname_trgm" ON "social_medias" ("city_name") `);
        await queryRunner.query(`CREATE INDEX "idx_social_medias_displayname_trgm" ON "social_medias" ("display_name") `);
        await queryRunner.query(`CREATE INDEX "idx_social_medias_username_trgm" ON "social_medias" ("social_user_name") `);
        await queryRunner.query(`CREATE INDEX "IDX_58e200a992b8eb925252f9f9d2" ON "social_medias" ("country_name") `);
        await queryRunner.query(`CREATE INDEX "IDX_dde037dc05775c06f211484f70" ON "social_medias" ("city_name") `);
        await queryRunner.query(`CREATE INDEX "IDX_516a9f26653a9618c25f0b0f01" ON "social_medias" ("display_name") `);
        await queryRunner.query(`CREATE INDEX "IDX_e44168c54becf5d2ebbafe1af4" ON "social_medias" ("social_id") `);
        await queryRunner.query(`CREATE INDEX "IDX_3a6671b170c932f7445fdd4026" ON "social_medias" ("country") `);
        await queryRunner.query(`CREATE INDEX "IDX_258e8333d8bf0cb5a3fb68a761" ON "social_medias" ("social_user_name") `);
        await queryRunner.query(`CREATE INDEX "IDX_176cf11a7769978a5b19b1102b" ON "social_medias" ("multiple_names") `);
    }

}
