<?php

use Illuminate\Foundation\Inspiring;
use Illuminate\Support\Facades\Artisan;
use App\Models\Backoffice\MediaItem;
use Illuminate\Support\Facades\Schedule;

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

Artisan::command('media:rebuild-search', function () {
    $this->info('Rebuilding search_content for media_items...');
    $count = 0;
    MediaItem::chunkById(1000, function ($items) use (&$count) {
        foreach ($items as $item) {
            // Model's save listener takes care of the data inside the search_content
            $item->save();
            $count++;
        }
    });
    $this->info("Updated {$count} records.");
})->describe('Rebuild search_content for all media items');

Schedule::command('accounts:process-programmed-cancellations')->dailyAt('00:00');

// Scheduled tasks
if (config('app.tedImport')) {
    Schedule::command('competitions:import-from-ted')->dailyAt('01:00');
}

if (config('app.searchProfileProcessing')) {
    Schedule::command('search-profiles:process-email-updates')->dailyAt('03:00');
}
