"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.down = exports.up = void 0;
const tslib_1 = require("tslib");
const Sequelize = tslib_1.__importStar(require("sequelize"));
function up(utils) {
    return tslib_1.__awaiter(this, void 0, void 0, function* () {
        const { transaction } = utils;
        {
            const data = {
                type: Sequelize.BOOLEAN,
                defaultValue: null,
                allowNull: true
            };
            yield utils.queryInterface.addColumn('videoLiveSession', 'endingProcessed', data, { transaction });
            yield utils.queryInterface.addColumn('videoLiveSession', 'saveReplay', data, { transaction });
        }
        {
            const query = `UPDATE "videoLiveSession" SET "saveReplay" = (
      SELECT "videoLive"."saveReplay" FROM "videoLive" WHERE "videoLive"."videoId" = "videoLiveSession"."liveVideoId"
    ) WHERE "videoLiveSession"."liveVideoId" IS NOT NULL`;
            yield utils.sequelize.query(query, { transaction });
        }
        {
            const query = `UPDATE "videoLiveSession" SET "saveReplay" = FALSE WHERE "saveReplay" IS NULL`;
            yield utils.sequelize.query(query, { transaction });
        }
        {
            const query = `UPDATE "videoLiveSession" SET "endingProcessed" = TRUE`;
            yield utils.sequelize.query(query, { transaction });
        }
        {
            const data = {
                type: Sequelize.BOOLEAN,
                defaultValue: null,
                allowNull: false
            };
            yield utils.queryInterface.changeColumn('videoLiveSession', 'endingProcessed', data, { transaction });
            yield utils.queryInterface.changeColumn('videoLiveSession', 'saveReplay', data, { transaction });
        }
    });
}
exports.up = up;
function down(options) {
    throw new Error('Not implemented.');
}
exports.down = down;
//# sourceMappingURL=0720-session-ending-processed.js.map