import { format } from "date-fns-tz";
import { sql } from "drizzle-orm";
import { db } from "../../../../../database/dbclient.js";
import { invHistoricalData } from "../../../../../database/schema/historicalINV.js";
import { settings } from "../../../../../database/schema/settings.js";
import { tryCatch } from "../../../../globalUtils/tryCatch.js";
import { createLog } from "../../../logger/logger.js";
import { query } from "../../../sqlServer/prodSqlServer.js";
import { totalInvNoRn } from "../../../sqlServer/querys/dataMart/totalINV.js";
import { createLogisticsJob } from "../../utils/logisticsIntervals.js";

// export const runHistoricalData = async () => {
//     /**
//      * Runs a query at shift change on first shift each day this will be the closest date to the true historical data for blocked, consignment
//      */

//     const { data: set, error: setError } = await tryCatch(
//         db.select().from(settings)
//     );

//     if (setError) {
//         createLog(
//             "error",
//             "lst",
//             "eom",
//             "There was an error getting eom historical inv data."
//         );
//         return;
//     }

//     const timeZone = set.filter((n: any) => n.name === "timezone");

//     createLogisticsJob("histInv", `0 6 * * *`, timeZone[0].value, async () => {
//         // remove the lotnumber from the query
//         const updatedQuery = totalInvNoRn.replaceAll(
//             ",IdProdPlanung",
//             "--,IdProdPlanung"
//         );

//         const { data: inv, error: invError } = await tryCatch(
//             query(updatedQuery, "EOM historical inv")
//         );

//         if (invError) {
//             createLog(
//                 "error",
//                 "lst",
//                 "eom",
//                 "There was an error getting eom historical inv data."
//             );
//             return;
//         }

//         /**
//          * add the inv into the hist table
//          */

//         const setting: any = set;

//         for (let i = 0; i < inv?.data.length; i++) {
//             const current = inv?.data[i];
//             const { data, error } = await tryCatch(
//                 db.insert(invHistoricalData).values({
//                     histDate: format(new Date(), "MM-dd-yyyy"),
//                     plantToken: setting.filter(
//                         (n: any) => n.name === "plantToken"
//                     )[0].value,
//                     article: current.av,
//                     articleDescription: current.Alias,
//                     total_QTY: current.Total_PalletQTY,
//                     avaliable_QTY: current.Avaliable_PalletQTY,
//                     coa_QTY: current.COA_QTY,
//                     held_QTY: current.Held_QTY,
//                     consignment: current.Consigment,
//                     //location: integer("location"),
//                     upd_user: "LST",
//                     upd_date: sql`NOW()`,
//                 })
//             );

//             createLog("info", "lst", "eom", ` historical data was just added.`);

//             if (error) {
//                 createLog(
//                     "error",
//                     "lst",
//                     "eom",
//                     `Error addeding historical data, ${error}`
//                 );
//             }
//         }
//     });
// };
