import { MigrationInterface, QueryRunner } from "typeorm";

export class UpdateTableAppointDirectorAddPosNo21730887635521 implements MigrationInterface {
    name = 'UpdateTableAppointDirectorAddPosNo21730887635521'

    public async up(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`CREATE VIEW \`view_director_acting\` AS SELECT 
        \`profileChild\`.\`id\` AS \`Id\`,
        \`profileChild\`.\`prefix\` AS \`prefix\`,
        \`profileChild\`.\`firstName\` AS \`firstName\`,
        \`profileChild\`.\`lastName\` AS \`lastName\`,
        \`profileChild\`.\`citizenId\` AS \`citizenId\`,
        \`profileChild\`.\`position\` AS \`position\`,
        CONCAT((CASE
                    WHEN (\`bma_ehr_organization_demo\`.\`posMaster\`.\`orgChild1Id\` IS NULL) THEN \`orgRootChild\`.\`orgRootShortName\`
                    WHEN (\`bma_ehr_organization_demo\`.\`posMaster\`.\`orgChild2Id\` IS NULL) THEN \`orgChild1Child\`.\`orgChild1ShortName\`
                    WHEN (\`bma_ehr_organization_demo\`.\`posMaster\`.\`orgChild3Id\` IS NULL) THEN \`orgChild2Child\`.\`orgChild2ShortName\`
                    WHEN (\`bma_ehr_organization_demo\`.\`posMaster\`.\`orgChild4Id\` IS NULL) THEN \`orgChild3Child\`.\`orgChild3ShortName\`
                    ELSE \`orgChild4Child\`.\`orgChild4ShortName\`
                END),
                \`bma_ehr_organization_demo\`.\`posMaster\`.\`posMasterNo\`) AS \`posNo\`,
        \`posMasterChild\`.\`isDirector\` AS \`isDirectorChild\`,
        \`posMaster\`.\`isDirector\` AS \`isDirector\`,
        \`bma_ehr_organization_demo\`.\`posLevel\`.\`posLevelName\` AS \`posLevel\`,
        \`bma_ehr_organization_demo\`.\`posType\`.\`posTypeName\` AS \`posType\`,
        \`bma_ehr_organization_demo\`.\`posMaster\`.\`orgRootId\` AS \`orgRootId\`,
        CONCAT(\`posMasterChild\`.\`id\`,
                \`profileChild\`.\`id\`) AS \`key\`,
        \`bma_ehr_organization_demo\`.\`profile\`.\`id\` AS \`actFullNameId\`,
        CONCAT(\`bma_ehr_organization_demo\`.\`profile\`.\`prefix\`,
                \`bma_ehr_organization_demo\`.\`profile\`.\`firstName\`,
                ' ',
                \`bma_ehr_organization_demo\`.\`profile\`.\`lastName\`) AS \`actFullName\`
    FROM
        (((((((((((\`bma_ehr_organization_demo\`.\`posMasterAct\`
        JOIN \`bma_ehr_organization_demo\`.\`posMaster\` \`posMasterChild\` ON ((\`bma_ehr_organization_demo\`.\`posMasterAct\`.\`posMasterChildId\` = \`posMasterChild\`.\`id\`)))
        JOIN \`bma_ehr_organization_demo\`.\`profile\` \`profileChild\` ON ((\`posMasterChild\`.\`current_holderId\` = \`profileChild\`.\`id\`)))
        LEFT JOIN \`bma_ehr_organization_demo\`.\`orgRoot\` \`orgRootChild\` ON ((\`posMasterChild\`.\`orgRootId\` = \`orgRootChild\`.\`id\`)))
        LEFT JOIN \`bma_ehr_organization_demo\`.\`orgChild1\` \`orgChild1Child\` ON ((\`posMasterChild\`.\`orgChild1Id\` = \`orgChild1Child\`.\`id\`)))
        LEFT JOIN \`bma_ehr_organization_demo\`.\`orgChild2\` \`orgChild2Child\` ON ((\`posMasterChild\`.\`orgChild2Id\` = \`orgChild2Child\`.\`id\`)))
        LEFT JOIN \`bma_ehr_organization_demo\`.\`orgChild3\` \`orgChild3Child\` ON ((\`posMasterChild\`.\`orgChild3Id\` = \`orgChild3Child\`.\`id\`)))
        LEFT JOIN \`bma_ehr_organization_demo\`.\`orgChild4\` \`orgChild4Child\` ON ((\`posMasterChild\`.\`orgChild4Id\` = \`orgChild4Child\`.\`id\`)))
        JOIN \`bma_ehr_organization_demo\`.\`posLevel\` ON ((\`profileChild\`.\`posLevelId\` = \`bma_ehr_organization_demo\`.\`posLevel\`.\`id\`)))
        JOIN \`bma_ehr_organization_demo\`.\`posType\` ON ((\`profileChild\`.\`posTypeId\` = \`bma_ehr_organization_demo\`.\`posType\`.\`id\`)))
        JOIN \`bma_ehr_organization_demo\`.\`posMaster\` ON ((\`bma_ehr_organization_demo\`.\`posMasterAct\`.\`posMasterId\` = \`bma_ehr_organization_demo\`.\`posMaster\`.\`id\`)))
        JOIN \`bma_ehr_organization_demo\`.\`profile\` ON ((\`bma_ehr_organization_demo\`.\`posMaster\`.\`current_holderId\` = \`bma_ehr_organization_demo\`.\`profile\`.\`id\`)))`);
        await queryRunner.query(`INSERT INTO \`bma_ehr_organization_demo\`.\`typeorm_metadata\`(\`database\`, \`schema\`, \`table\`, \`type\`, \`name\`, \`value\`) VALUES (DEFAULT, ?, DEFAULT, ?, ?, ?)`, ["bma_ehr_organization_demo","VIEW","view_director_acting","SELECT \n        `profileChild`.`id` AS `Id`,\n        `profileChild`.`prefix` AS `prefix`,\n        `profileChild`.`firstName` AS `firstName`,\n        `profileChild`.`lastName` AS `lastName`,\n        `profileChild`.`citizenId` AS `citizenId`,\n        `profileChild`.`position` AS `position`,\n        CONCAT((CASE\n                    WHEN (`bma_ehr_organization_demo`.`posMaster`.`orgChild1Id` IS NULL) THEN `orgRootChild`.`orgRootShortName`\n                    WHEN (`bma_ehr_organization_demo`.`posMaster`.`orgChild2Id` IS NULL) THEN `orgChild1Child`.`orgChild1ShortName`\n                    WHEN (`bma_ehr_organization_demo`.`posMaster`.`orgChild3Id` IS NULL) THEN `orgChild2Child`.`orgChild2ShortName`\n                    WHEN (`bma_ehr_organization_demo`.`posMaster`.`orgChild4Id` IS NULL) THEN `orgChild3Child`.`orgChild3ShortName`\n                    ELSE `orgChild4Child`.`orgChild4ShortName`\n                END),\n                `bma_ehr_organization_demo`.`posMaster`.`posMasterNo`) AS `posNo`,\n        `posMasterChild`.`isDirector` AS `isDirectorChild`,\n        `posMaster`.`isDirector` AS `isDirector`,\n        `bma_ehr_organization_demo`.`posLevel`.`posLevelName` AS `posLevel`,\n        `bma_ehr_organization_demo`.`posType`.`posTypeName` AS `posType`,\n        `bma_ehr_organization_demo`.`posMaster`.`orgRootId` AS `orgRootId`,\n        CONCAT(`posMasterChild`.`id`,\n                `profileChild`.`id`) AS `key`,\n        `bma_ehr_organization_demo`.`profile`.`id` AS `actFullNameId`,\n        CONCAT(`bma_ehr_organization_demo`.`profile`.`prefix`,\n                `bma_ehr_organization_demo`.`profile`.`firstName`,\n                ' ',\n                `bma_ehr_organization_demo`.`profile`.`lastName`) AS `actFullName`\n    FROM\n        (((((((((((`bma_ehr_organization_demo`.`posMasterAct`\n        JOIN `bma_ehr_organization_demo`.`posMaster` `posMasterChild` ON ((`bma_ehr_organization_demo`.`posMasterAct`.`posMasterChildId` = `posMasterChild`.`id`)))\n        JOIN `bma_ehr_organization_demo`.`profile` `profileChild` ON ((`posMasterChild`.`current_holderId` = `profileChild`.`id`)))\n        LEFT JOIN `bma_ehr_organization_demo`.`orgRoot` `orgRootChild` ON ((`posMasterChild`.`orgRootId` = `orgRootChild`.`id`)))\n        LEFT JOIN `bma_ehr_organization_demo`.`orgChild1` `orgChild1Child` ON ((`posMasterChild`.`orgChild1Id` = `orgChild1Child`.`id`)))\n        LEFT JOIN `bma_ehr_organization_demo`.`orgChild2` `orgChild2Child` ON ((`posMasterChild`.`orgChild2Id` = `orgChild2Child`.`id`)))\n        LEFT JOIN `bma_ehr_organization_demo`.`orgChild3` `orgChild3Child` ON ((`posMasterChild`.`orgChild3Id` = `orgChild3Child`.`id`)))\n        LEFT JOIN `bma_ehr_organization_demo`.`orgChild4` `orgChild4Child` ON ((`posMasterChild`.`orgChild4Id` = `orgChild4Child`.`id`)))\n        JOIN `bma_ehr_organization_demo`.`posLevel` ON ((`profileChild`.`posLevelId` = `bma_ehr_organization_demo`.`posLevel`.`id`)))\n        JOIN `bma_ehr_organization_demo`.`posType` ON ((`profileChild`.`posTypeId` = `bma_ehr_organization_demo`.`posType`.`id`)))\n        JOIN `bma_ehr_organization_demo`.`posMaster` ON ((`bma_ehr_organization_demo`.`posMasterAct`.`posMasterId` = `bma_ehr_organization_demo`.`posMaster`.`id`)))\n        JOIN `bma_ehr_organization_demo`.`profile` ON ((`bma_ehr_organization_demo`.`posMaster`.`current_holderId` = `bma_ehr_organization_demo`.`profile`.`id`)))"]);
        await queryRunner.query(`CREATE VIEW \`view_director\` AS SELECT 
        \`bma_ehr_organization_demo\`.\`profile\`.\`id\` AS \`Id\`,
        \`bma_ehr_organization_demo\`.\`profile\`.\`prefix\` AS \`prefix\`,
        \`bma_ehr_organization_demo\`.\`profile\`.\`firstName\` AS \`firstName\`,
        \`bma_ehr_organization_demo\`.\`profile\`.\`lastName\` AS \`lastName\`,
        \`bma_ehr_organization_demo\`.\`profile\`.\`citizenId\` AS \`citizenId\`,
        \`bma_ehr_organization_demo\`.\`profile\`.\`position\` AS \`position\`,
        CONCAT((CASE
                    WHEN (\`bma_ehr_organization_demo\`.\`posMaster\`.\`orgChild1Id\` IS NULL) THEN \`bma_ehr_organization_demo\`.\`orgRoot\`.\`orgRootShortName\`
                    WHEN (\`bma_ehr_organization_demo\`.\`posMaster\`.\`orgChild2Id\` IS NULL) THEN \`bma_ehr_organization_demo\`.\`orgChild1\`.\`orgChild1ShortName\`
                    WHEN (\`bma_ehr_organization_demo\`.\`posMaster\`.\`orgChild3Id\` IS NULL) THEN \`bma_ehr_organization_demo\`.\`orgChild2\`.\`orgChild2ShortName\`
                    WHEN (\`bma_ehr_organization_demo\`.\`posMaster\`.\`orgChild4Id\` IS NULL) THEN \`bma_ehr_organization_demo\`.\`orgChild3\`.\`orgChild3ShortName\`
                    ELSE \`bma_ehr_organization_demo\`.\`orgChild4\`.\`orgChild4ShortName\`
                END),
                \`bma_ehr_organization_demo\`.\`posMaster\`.\`posMasterNo\`) AS \`posNo\`,
        \`bma_ehr_organization_demo\`.\`posMaster\`.\`isDirector\` AS \`isDirector\`,
        \`bma_ehr_organization_demo\`.\`posLevel\`.\`posLevelName\` AS \`posLevel\`,
        \`bma_ehr_organization_demo\`.\`posType\`.\`posTypeName\` AS \`posType\`,
        \`bma_ehr_organization_demo\`.\`posMaster\`.\`orgRootId\` AS \`orgRootId\`,
        CONCAT(\`bma_ehr_organization_demo\`.\`posMaster\`.\`id\`,
                \`bma_ehr_organization_demo\`.\`profile\`.\`id\`) AS \`key\`,
        NULL AS \`actFullNameId\`,
        NULL AS \`actFullName\`
    FROM
        ((((((((\`bma_ehr_organization_demo\`.\`posMaster\`
        JOIN \`bma_ehr_organization_demo\`.\`profile\` ON ((\`bma_ehr_organization_demo\`.\`posMaster\`.\`current_holderId\` = \`bma_ehr_organization_demo\`.\`profile\`.\`id\`)))
        LEFT JOIN \`bma_ehr_organization_demo\`.\`orgRoot\` ON ((\`bma_ehr_organization_demo\`.\`posMaster\`.\`orgRootId\` = \`bma_ehr_organization_demo\`.\`orgRoot\`.\`id\`)))
        LEFT JOIN \`bma_ehr_organization_demo\`.\`orgChild1\` ON ((\`bma_ehr_organization_demo\`.\`posMaster\`.\`orgChild1Id\` = \`bma_ehr_organization_demo\`.\`orgChild1\`.\`id\`)))
        LEFT JOIN \`bma_ehr_organization_demo\`.\`orgChild2\` ON ((\`bma_ehr_organization_demo\`.\`posMaster\`.\`orgChild2Id\` = \`bma_ehr_organization_demo\`.\`orgChild2\`.\`id\`)))
        LEFT JOIN \`bma_ehr_organization_demo\`.\`orgChild3\` ON ((\`bma_ehr_organization_demo\`.\`posMaster\`.\`orgChild3Id\` = \`bma_ehr_organization_demo\`.\`orgChild3\`.\`id\`)))
        LEFT JOIN \`bma_ehr_organization_demo\`.\`orgChild4\` ON ((\`bma_ehr_organization_demo\`.\`posMaster\`.\`orgChild4Id\` = \`bma_ehr_organization_demo\`.\`orgChild4\`.\`id\`)))
        JOIN \`bma_ehr_organization_demo\`.\`posLevel\` ON ((\`bma_ehr_organization_demo\`.\`profile\`.\`posLevelId\` = \`bma_ehr_organization_demo\`.\`posLevel\`.\`id\`)))
        JOIN \`bma_ehr_organization_demo\`.\`posType\` ON ((\`bma_ehr_organization_demo\`.\`profile\`.\`posTypeId\` = \`bma_ehr_organization_demo\`.\`posType\`.\`id\`)))`);
        await queryRunner.query(`INSERT INTO \`bma_ehr_organization_demo\`.\`typeorm_metadata\`(\`database\`, \`schema\`, \`table\`, \`type\`, \`name\`, \`value\`) VALUES (DEFAULT, ?, DEFAULT, ?, ?, ?)`, ["bma_ehr_organization_demo","VIEW","view_director","SELECT \n        `bma_ehr_organization_demo`.`profile`.`id` AS `Id`,\n        `bma_ehr_organization_demo`.`profile`.`prefix` AS `prefix`,\n        `bma_ehr_organization_demo`.`profile`.`firstName` AS `firstName`,\n        `bma_ehr_organization_demo`.`profile`.`lastName` AS `lastName`,\n        `bma_ehr_organization_demo`.`profile`.`citizenId` AS `citizenId`,\n        `bma_ehr_organization_demo`.`profile`.`position` AS `position`,\n        CONCAT((CASE\n                    WHEN (`bma_ehr_organization_demo`.`posMaster`.`orgChild1Id` IS NULL) THEN `bma_ehr_organization_demo`.`orgRoot`.`orgRootShortName`\n                    WHEN (`bma_ehr_organization_demo`.`posMaster`.`orgChild2Id` IS NULL) THEN `bma_ehr_organization_demo`.`orgChild1`.`orgChild1ShortName`\n                    WHEN (`bma_ehr_organization_demo`.`posMaster`.`orgChild3Id` IS NULL) THEN `bma_ehr_organization_demo`.`orgChild2`.`orgChild2ShortName`\n                    WHEN (`bma_ehr_organization_demo`.`posMaster`.`orgChild4Id` IS NULL) THEN `bma_ehr_organization_demo`.`orgChild3`.`orgChild3ShortName`\n                    ELSE `bma_ehr_organization_demo`.`orgChild4`.`orgChild4ShortName`\n                END),\n                `bma_ehr_organization_demo`.`posMaster`.`posMasterNo`) AS `posNo`,\n        `bma_ehr_organization_demo`.`posMaster`.`isDirector` AS `isDirector`,\n        `bma_ehr_organization_demo`.`posLevel`.`posLevelName` AS `posLevel`,\n        `bma_ehr_organization_demo`.`posType`.`posTypeName` AS `posType`,\n        `bma_ehr_organization_demo`.`posMaster`.`orgRootId` AS `orgRootId`,\n        CONCAT(`bma_ehr_organization_demo`.`posMaster`.`id`,\n                `bma_ehr_organization_demo`.`profile`.`id`) AS `key`,\n        NULL AS `actFullNameId`,\n        NULL AS `actFullName`\n    FROM\n        ((((((((`bma_ehr_organization_demo`.`posMaster`\n        JOIN `bma_ehr_organization_demo`.`profile` ON ((`bma_ehr_organization_demo`.`posMaster`.`current_holderId` = `bma_ehr_organization_demo`.`profile`.`id`)))\n        LEFT JOIN `bma_ehr_organization_demo`.`orgRoot` ON ((`bma_ehr_organization_demo`.`posMaster`.`orgRootId` = `bma_ehr_organization_demo`.`orgRoot`.`id`)))\n        LEFT JOIN `bma_ehr_organization_demo`.`orgChild1` ON ((`bma_ehr_organization_demo`.`posMaster`.`orgChild1Id` = `bma_ehr_organization_demo`.`orgChild1`.`id`)))\n        LEFT JOIN `bma_ehr_organization_demo`.`orgChild2` ON ((`bma_ehr_organization_demo`.`posMaster`.`orgChild2Id` = `bma_ehr_organization_demo`.`orgChild2`.`id`)))\n        LEFT JOIN `bma_ehr_organization_demo`.`orgChild3` ON ((`bma_ehr_organization_demo`.`posMaster`.`orgChild3Id` = `bma_ehr_organization_demo`.`orgChild3`.`id`)))\n        LEFT JOIN `bma_ehr_organization_demo`.`orgChild4` ON ((`bma_ehr_organization_demo`.`posMaster`.`orgChild4Id` = `bma_ehr_organization_demo`.`orgChild4`.`id`)))\n        JOIN `bma_ehr_organization_demo`.`posLevel` ON ((`bma_ehr_organization_demo`.`profile`.`posLevelId` = `bma_ehr_organization_demo`.`posLevel`.`id`)))\n        JOIN `bma_ehr_organization_demo`.`posType` ON ((`bma_ehr_organization_demo`.`profile`.`posTypeId` = `bma_ehr_organization_demo`.`posType`.`id`)))"]);
    }

    public async down(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`DELETE FROM \`bma_ehr_organization_demo\`.\`typeorm_metadata\` WHERE \`type\` = ? AND \`name\` = ? AND \`schema\` = ?`, ["VIEW","view_director","bma_ehr_organization_demo"]);
        await queryRunner.query(`DROP VIEW \`view_director\``);
        await queryRunner.query(`DELETE FROM \`bma_ehr_organization_demo\`.\`typeorm_metadata\` WHERE \`type\` = ? AND \`name\` = ? AND \`schema\` = ?`, ["VIEW","view_director_acting","bma_ehr_organization_demo"]);
        await queryRunner.query(`DROP VIEW \`view_director_acting\``);
    }

}
