<?php

use Illuminate\Foundation\Inspiring;
use Illuminate\Support\Facades\Artisan;



Artisan::command('inspire', function () {
    $this->comment(Inspiring::quote());
})->purpose('Display an inspiring quote');


Artisan::command('auto:scheduler', function () {
    $this->call('custom:scheduler');
})->everyMinute();


//     Schedule::command('send:invoice-report');
//   Schedule::command('send:production-report');

// app()->booted(function () {
//     $schedule = app(Schedule::class);

//     // $schedule->command('report:send-daily-production')->dailyAt('07:59');
//         // Production report scheduling
//         $productionRules = AlertMailRule::where('module', 'ProductionQuantities')
//             ->where('rule_name', 'ProductionMail')
//             ->select('plant', 'schedule_type')
//             ->distinct()
//             ->get();

//         foreach ($productionRules as $rule) {
//             $type = $rule->schedule_type;
//             $plantId = $rule->plant;

//             $command = $schedule->command('send:production-report', [$type, $plantId]);
//             // ->appendOutputTo(storage_path('logs/scheduler.log'));

//             switch ($type) {
//                 case 'Live':
//                     $command->everyMinute();
//                     break;
//                 case 'Hourly':
//                     $command->hourly();
//                     break;
//                 case 'Daily':
//                     $command->dailyAt('07:59');
//                     break;
//             }
//         }

//         // Invoice report scheduling
//         $invoiceRules = AlertMailRule::where('module', 'InvoiceValidation')
//             ->select('plant', 'schedule_type')
//             ->distinct()
//             ->get();

//         foreach ($invoiceRules as $rule) {
//             $type = $rule->schedule_type;
//             $plantId = $rule->plant;

//             $command = $schedule->command('send:invoice-report', [$type, $plantId]);

//             switch ($type) {
//                 case 'Live':
//                     $command->everyMinute();
//                     break;
//                 case 'Hourly':
//                     $command->hourly();
//                     break;
//                 case 'Daily':
//                     $command->dailyAt('07:59');
//                     break;
//             }
//         }

//         // Invoice Data Report Scheduling
//         $invoiceDataRules = AlertMailRule::where('module', 'InvoiceDataReport')
//             ->select('plant', 'schedule_type')
//             ->distinct()
//             ->get();

//         foreach ($invoiceDataRules as $rule) {
//             $type = $rule->schedule_type;
//             $plantId = $rule->plant;

//             $command = $schedule->command('send:invoice-data-report', [$type, $plantId]);

//             switch ($type) {
//                 case 'Live':
//                     $command->everyMinute();
//                     break;
//                 case 'Hourly':
//                     $command->hourly();
//                     break;
//                 case 'Daily':
//                     $command->dailyAt('10:00');
//                     break;
//             }
//         }
// });
