const cron = require("node-cron");
const Backup = require("./tasks/backup");
const Stand = require("./tasks/stands");
const Messages = require('./tasks/messages');
const Rept = require('./tasks/rept');

// 1. Резервна копія БД щодня о 22:35
cron.schedule("30 22 * * *", () => {
    Backup.database();
    console.log(`[${new Date().toLocaleString()}] Завдання «Backup» виконане!`);
});

// 2. Перевірка стендів без графіку щосуботи о 18:00
cron.schedule("0 18 * * 6", async () => {
    console.log(`[${new Date().toLocaleString()}] Запуск перевірки стендів без графіку...`);
    try {
        await Stand.check_add();
        console.log(`[${new Date().toLocaleString()}] Завдання «Stand check_add» виконане!`);
    } catch (err) {
        console.error("Помилка Stand check_add:", err.message);
    }
});

// 3. Відправка графіку стендів щодня о 18:00
cron.schedule("0 18 * * *", async () => {
    console.log(`[${new Date().toLocaleString()}] Запуск відправки графіків...`);
    try {
        await Stand.check_entries();
        console.log(`[${new Date().toLocaleString()}] Завдання «Stand check_entries» виконане!`);
    } catch (err) {
        console.error("Помилка Stand check_entries:", err.message);
    }
});

// 4. Очищення старих повідомлень щодня о 17:59
cron.schedule('59 17 * * *', async () => {
    console.log(`[${new Date().toLocaleString()}] Запуск очищення старих повідомлень...`);
    try {
        await Messages.cleanup_old();
        console.log(`[${new Date().toLocaleString()}] Завдання «Messages cleanup_old» виконане успішно!`);
    } catch (err) {
        console.error(`[${new Date().toLocaleString()}] Помилка Messages cleanup_old:`, err.message);
    }
});

// 5. Нагадування про звіт щомісяця о 10:00
cron.schedule('00 10 1 * *', async () => {
    console.log(`[${new Date().toLocaleString()}] Запуск відправки повідомлень...`);
    try {
        await Rept.send_notification();
        console.log(`[${new Date().toLocaleString()}] Завдання Rept send_notification виконане успішно!`);
    } catch (err) {
        console.error(`[${new Date().toLocaleString()}] Помилка Rept send_notification:`, err.message);
    }
});

console.log("Cron-завдання запущено.");