import { MigrationInterface, QueryRunner } from "typeorm";

export class Migrations1749045623914 implements MigrationInterface {
    name = 'Migrations1749045623914'

    public async up(queryRunner: QueryRunner): Promise<void> {

        await queryRunner.query(`ALTER TABLE "social_medias" ADD "display_name" character varying`);
        await queryRunner.query(`ALTER TABLE "social_medias" ADD "city_name" character varying`);
        await queryRunner.query(`ALTER TABLE "social_medias" ADD "country_name" character varying`);
        //      await queryRunner.query(`CREATE INDEX "IDX_bc0c27d77ee64f0a097a5c269b" ON "users" ("slug") `);
    }

    public async down(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`DROP INDEX "public"."IDX_bc0c27d77ee64f0a097a5c269b"`);
        await queryRunner.query(`ALTER TABLE "social_medias" DROP COLUMN "country_name"`);
        await queryRunner.query(`ALTER TABLE "social_medias" DROP COLUMN "city_name"`);
        await queryRunner.query(`ALTER TABLE "social_medias" DROP COLUMN "display_name"`);
        await queryRunner.query(`CREATE INDEX "idx_user_about_me_trgm" ON "users" ("about_me") `);
        await queryRunner.query(`CREATE INDEX "idx_user_last_name_trgm" ON "users" ("last_name") `);
        await queryRunner.query(`CREATE INDEX "idx_user_first_name_trgm" ON "users" ("first_name") `);
        await queryRunner.query(`CREATE INDEX "idx_keywords_keyword_trgm" ON "keywords" ("keyword") `);
        await queryRunner.query(`CREATE INDEX "idx_category_title_trgm" ON "categories" ("title") `);
        await queryRunner.query(`CREATE INDEX "idx_xhs_desc_trgm" ON "xiaohongshu_profiles" ("description") `);
        await queryRunner.query(`CREATE INDEX "idx_xhs_city_trgm" ON "xiaohongshu_profiles" ("city_name") `);
        await queryRunner.query(`CREATE INDEX "idx_xhs_name_trgm" ON "xiaohongshu_profiles" ("name") `);
        await queryRunner.query(`CREATE INDEX "idx_tiktok_bio_desc_trgm" ON "tiktok_profiles" ("bio_description") `);
        await queryRunner.query(`CREATE INDEX "idx_tiktok_city_trgm" ON "tiktok_profiles" ("city_name") `);
        await queryRunner.query(`CREATE INDEX "idx_tiktok_display_name_trgm" ON "tiktok_profiles" ("display_name") `);
        await queryRunner.query(`CREATE INDEX "idx_tiktok_username_trgm" ON "tiktok_profiles" ("username") `);
        await queryRunner.query(`CREATE INDEX "idx_instagram_city_trgm" ON "instagram_profiles" ("city_name") `);
        await queryRunner.query(`CREATE INDEX "idx_instagram_name_trgm" ON "instagram_profiles" ("name") `);
        await queryRunner.query(`CREATE INDEX "idx_instagram_username_trgm" ON "instagram_profiles" ("user_name") `);
        await queryRunner.query(`CREATE INDEX "idx_instagram_bio_trgm" ON "instagram_profiles" ("biography") `);
        await queryRunner.query(`CREATE INDEX "idx_facebook_city_trgm" ON "facebook_pages" ("city") `);
        await queryRunner.query(`CREATE INDEX "idx_facebook_desc_trgm" ON "facebook_pages" ("description") `);
        await queryRunner.query(`CREATE INDEX "idx_facebook_name_trgm" ON "facebook_pages" ("name") `);
        await queryRunner.query(`CREATE INDEX "idx_youtube_city_trgm" ON "youtube_channels" ("city_name") `);
        await queryRunner.query(`CREATE INDEX "idx_youtube_name_trgm" ON "youtube_channels" ("channel_name") `);
        await queryRunner.query(`CREATE INDEX "idx_youtube_desc_trgm" ON "youtube_channels" ("description") `);
    }

}
