import { MigrationInterface, QueryRunner } from 'typeorm';

export class rolePermission1668037281271 implements MigrationInterface {
  name = 'rolePermission1668037281271';

  public async up(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(`
      CREATE TABLE IF NOT EXISTS \`permissions\` (
  \`id\` int(11) NOT NULL AUTO_INCREMENT,
  \`name\` varchar(128) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  \`category\` varchar(128) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  \`description\` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
  \`type\` varchar(128) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  PRIMARY KEY (\`id\`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    `);

    await queryRunner.query(`
    CREATE TABLE IF NOT EXISTS \`roles_map_permissions\` (
  \`id\` int(11) NOT NULL AUTO_INCREMENT,
  \`roleId\` int(11) NOT NULL,
  \`permissionId\` int(11) NOT NULL,
  PRIMARY KEY (\`id\`),
  KEY \`fk_role_permission_roles1_idx\` (\`roleId\`),
  KEY \`fk_role_permission_permissions1_idx\` (\`permissionId\`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    `);

    await queryRunner.query(`ALTER TABLE \`roles_map_permissions\`
  ADD CONSTRAINT \`fk_role_permission_permissions1\` FOREIGN KEY (\`permissionId\`) REFERENCES \`permissions\` (\`id\`),
  ADD CONSTRAINT \`fk_role_permission_roles1\` FOREIGN KEY (\`roleId\`) REFERENCES \`roles\` (\`id\`)`);

    await queryRunner.query(
      `ALTER TABLE \`roles\` ADD \`lock\` TINYINT(1) NOT NULL DEFAULT '1' AFTER \`description\``,
    );
  }

  public async down(queryRunner: QueryRunner): Promise<void> {
    //
  }
}
