// import cron from "node-cron";
// import {runQuery, prisma, totalInvNoRn, activeArticle, getShiftTime, historicalInv} from "database";
// import {createLog} from "logging";
// import {deleteHistory} from "./deleteHistory.js";

// export const historyInv = async (date) => {
//     //console.log(date);
//     if (!date) {
//         return `Missing Data`;
//     }
//     // date should be sent over as a string IE: 2024-01-01
//     let inv = [];
//     try {
//         inv = await prisma.historyInventory.findMany({where: {histDate: date}});
//         console.log(inv.length);
//         // if the date returns nothing we need to pull the historical data
//         if (inv.length === 0) {
//             const result = await prisma.settings.findFirst({where: {name: "plantToken"}});
//             try {
//                 const plantUpdate = historicalInv.replaceAll("test1", result.value);
//                 const queryDate = plantUpdate.replaceAll("[date]", date);
//                 inv = await runQuery(queryDate, "Get histical inv");

//                 return inv;
//             } catch (error) {
//                 createLog("general/eom", "error", "There was an error getting the historical inv.");
//                 return error;
//             }
//         } else {
//             return inv;
//         }
//         //return inv;
//     } catch (error) {
//         console.log(error);
//         return error;
//     }
// };

// // start the cron job for getting the hostrical inv based on the plants shift time
// export const startCronHist = () => {
//     let shiftTime = ["06", "00", "00"];
//     const startProcess = async () => {
//         let inv = [];
//         let articles = [];
//         let plantToken = "test1";
//         const date = new Date();
//         const dateString = date.toISOString().split("T")[0];
//         date.setDate(date.getDate() - 30);
//         const oldDate = date.toISOString().split("T")[0];

//         // checking if even need to run this
//         // before adding more make sure we dont already have data
//         const checkInv = await prisma.historyInventory.findFirst({where: {histDate: dateString}});
//         if (checkInv) {
//             createLog(
//                 "general/eom",
//                 "warn",
//                 `There seems to already be inventory added for ${dateString}, no new data will be added`
//             );
//             return;
//         }
//         // get plant token
//         try {
//             const result = await prisma.settings.findFirst({where: {name: "plantToken"}});
//             plantToken = result.value;
//         } catch (error) {
//             createLog("general/eom", "error", "failed to get planttoken");
//         }
//         //get shift time
//         try {
//             const result = await runQuery(getShiftTime.replaceAll("test1", plantToken), "GettingShift time");
//             shiftTime = result[0].shiftStartTime.split(":");
//         } catch (error) {
//             createLog("general/eom", "error", `Error running getShift Query: ${error}`);
//         }

//         // get inventory
//         try {
//             const result = await runQuery(totalInvNoRn.replaceAll("test1", plantToken), "getting inventory");
//             inv = result;
//         } catch (error) {
//             createLog("general/eom", "error", `Error running get inventory Query: ${error}`);
//         }

//         // get active articles
//         try {
//             const result = await runQuery(activeArticle.replaceAll("test1", plantToken), "Get active articles");
//             articles = result;
//         } catch (error) {
//             createLog("general/eom", "error", `Error running get article: ${error}`);
//         }

//         //add the inventory to the historical table
//         try {
//             let hist = Object.entries(inv).map(([key, value]) => {
//                 // remove the values we dont want in the historical view
//                 const {total_Pallets, avalible_Pallets, coa_Pallets, held_Pallets, ...histData} = value;

//                 // get av tyep
//                 const avType = articles.filter((a) => (a.IdArtikelvarianten = inv[key].av))[0].TypeOfMaterial;
//                 // add in the new fields
//                 const hist = {
//                     ...histData,
//                     histDate: dateString, //new Date(Date.now()).toISOString().split("T")[0],
//                     avType,
//                 };
//                 return hist;
//             });

//             try {
//                 const addHistData = await prisma.historyInventory.createMany({data: hist});
//                 createLog(
//                     "general/eom",
//                     "info",
//                     `${addHistData.count} were just added to the historical inventory for date ${dateString}`
//                 );
//             } catch (error) {
//                 createLog("general/eom", "error", `Adding new historical inventory error: ${error}`);
//             }

//             // delete the older inventory
//             deleteHistory(oldDate);
//         } catch (error) {
//             createLog("general/eom", "error", `Adding new historical inventory error: ${error}`);
//         }
//     };

//     // actaully run the process once after restaart just to make sure we have inventory
//     startProcess();

//     // setup the cron stuff
//     const startHour = shiftTime[0];
//     const startMin = shiftTime[1];
//     createLog("general/eom", "info", `Historical Data will run at ${shiftTime[0]}:${shiftTime[1]} daily`);
//     cron.schedule(`${startMin} ${startHour} * * *`, () => {
//         createLog("general/eom", "info", "Running historical invnetory.");
//         startProcess();
//     });
// };
