Sindbad~EG File Manager

Current Path : /home/infinitibizsol/.trash/migrations/
Upload File :
Current File : /home/infinitibizsol/.trash/migrations/20240122082110-store-procedures.js

"use strict";

/** @type {import('sequelize-cli').Migration} */
module.exports = {
  async up(queryInterface, Sequelize) {
    //user-side
    //filterBySaleStatus
    await queryInterface.sequelize.query(`
    DROP PROCEDURE IF EXISTS uFilterBySaleStatus;
  `);
    await queryInterface.sequelize.query(`
    CREATE PROCEDURE uFilterBySaleStatus(IN user_id INT, IN week_id INT)
    BEGIN
    SELECT
           o.opportunity_id,
           a.auctioneer_id,
           CASE
               WHEN vr.sale_status = 1 THEN 'true'
               WHEN vr.sale_status = 0 THEN 'false'
               ELSE 'unknown'
           END AS sale_status,
           COUNT(vr.vehicle_run_id) AS units
       FROM
           tblOpportunities AS o
       JOIN
           tblAuctioneers AS a ON o.auctioneer_id = a.auctioneer_id
       LEFT JOIN
           tblVehicleRuns AS vr ON o.opportunity_id = vr.opportunity_id
       WHERE
           o.user_id = user_id AND o.week_id = week_id
           AND vr.sale_status IS NOT NULL
       GROUP BY
           o.opportunity_id, a.auctioneer_id, vr.sale_status;
   END
  `);
    //filterByConditionLight
    await queryInterface.sequelize.query(`
  DROP PROCEDURE IF EXISTS uFilterByConditionLight;
`);
    await queryInterface.sequelize.query(`
  CREATE PROCEDURE uFilterByConditionLight(IN user_id INT, IN week_id INT)
  BEGIN
  SELECT
    o.opportunity_id,
    a.auctioneer_id,
    vr.condition_light,
    COUNT(vr.vehicle_run_id) AS units
FROM tblOpportunities AS o
JOIN tblAuctioneers AS a ON o.auctioneer_id = a.auctioneer_id
LEFT JOIN tblVehicleRuns AS vr ON o.opportunity_id = vr.opportunity_id
WHERE o.user_id=user_id AND o.week_id=week_id
AND vr.condition_light IS NOT NULL -- Skip rows where condition_light is NULL
GROUP BY o.opportunity_id, a.auctioneer_id, vr.condition_light;
 END
`);

    //auctioneer-side
    //filterBySaleStatus
    await queryInterface.sequelize.query(`
 DROP PROCEDURE IF EXISTS aFilterBySaleStatus;
`);
    await queryInterface.sequelize.query(`
 CREATE PROCEDURE aFilterBySaleStatus(IN auctioneer_id INT, IN week_id INT)
 BEGIN
 SELECT
        o.opportunity_id,
        a.auctioneer_id,
        CASE
            WHEN vr.sale_status = 1 THEN 'true'
            WHEN vr.sale_status = 0 THEN 'false'
            ELSE 'unknown'
        END AS sale_status,
        COUNT(vr.vehicle_run_id) AS units
    FROM
        tblOpportunities AS o
    JOIN
        tblAuctioneers AS a ON o.auctioneer_id = a.auctioneer_id
    LEFT JOIN
        tblVehicleRuns AS vr ON o.opportunity_id = vr.opportunity_id
    WHERE
        o.auctioneer_id = auctioneer_id AND o.week_id = week_id
        AND vr.sale_status IS NOT NULL
    GROUP BY
        o.opportunity_id, a.auctioneer_id, vr.sale_status;
END
`);

    //filterByConditionLight
    await queryInterface.sequelize.query(`
DROP PROCEDURE IF EXISTS aFilterByConditionLight;
`);
    await queryInterface.sequelize.query(`
CREATE PROCEDURE aFilterByConditionLight(IN auctioneer_id INT, IN week_id INT)
BEGIN
SELECT
  o.opportunity_id,
  a.auctioneer_id,
  vr.condition_light,
  COUNT(vr.vehicle_run_id) AS units
FROM tblOpportunities AS o
JOIN tblAuctioneers AS a ON o.auctioneer_id = a.auctioneer_id
LEFT JOIN tblVehicleRuns AS vr ON o.opportunity_id = vr.opportunity_id
WHERE o.auctioneer_id=auctioneer_id AND o.week_id=week_id
AND vr.condition_light IS NOT NULL -- Skip rows where condition_light is NULL
GROUP BY o.opportunity_id, a.auctioneer_id, vr.condition_light;
END
`);
  },

  async down(queryInterface, Sequelize) {
    await queryInterface.sequelize.query(`
      DROP PROCEDURE IF EXISTS uFilterBySaleStatus;
    `);
  },
};

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists