Sindbad~EG File Manager
"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