<?php

namespace App\Console;


use App\Jobs\Cron\BlackCompany;
use App\Jobs\Cron\AutoRefreshJobsJob;
use App\Jobs\Cron\CanselOrder;
use App\Jobs\Cron\ClearExpiredJobsJob;
use App\Jobs\Cron\ClearExpiredSetmealJob;
use App\Jobs\Cron\ClearPromotionJob;
use App\Jobs\Cron\DeleteLogsJob;
use App\Jobs\Cron\DemoJob;
use App\Jobs\Cron\Blacklist;
use App\Jobs\Cron\Jobfair;
use App\Jobs\Cron\ResumeAutoRefresh;
use App\Jobs\Cron\ResumeEntrust;
use App\Jobs\Cron\ResumeExpires;
use App\Jobs\Cron\ResumeStick;
use App\Jobs\Cron\SubscribeF;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;

class Kernel extends ConsoleKernel
{
    /**
     * The Artisan commands provided by your application.
     *
     * @var array
     */
    protected $commands = [
        //
    ];

    /**
     * Define the application's command schedule.
     *
     * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
     * @return void
     */
    protected function schedule(Schedule $schedule)
    {
        $schedule->job(new Blacklist())->daily()->description("黑名单(未签到或迟到/早退超过3次[包含3次]的企业)")->withoutOverlapping();
        $schedule->job(new BlackCompany())->monthly()->description("黑名单(清除3个月前系统拉黑的企业)")->withoutOverlapping();
        $schedule->job(new AutoRefreshJobsJob())->hourly()->description("智能刷新职位")->withoutOverlapping();
        $schedule->job(new ClearExpiredSetmealJob())->dailyAt('0:30')->description("清除过期企业会员套餐")->withoutOverlapping();
        $schedule->job(new ClearExpiredJobsJob())->dailyAt('1:30')->description("清除过期职位")->withoutOverlapping();
        $schedule->job(new ClearPromotionJob())->dailyAt('2:30')->description("清除过期职位推广")->withoutOverlapping();
        $schedule->job(new ResumeStick())->dailyAt('0:00')->description("清除过期简历置顶")->withoutOverlapping();
        $schedule->job(new Jobfair())->hourly()->description("招聘会停止预定")->withoutOverlapping();
        $schedule->job(new SubscribeF())->dailyAt('2:00')->description("职位订阅")->withoutOverlapping();
        $schedule->job(new DeleteLogsJob())->dailyAt('1:00')->description('删除一个月之前的日志')->withoutOverlapping();
        $schedule->job(new ResumeAutoRefresh())->dailyAt('1:15')->description("简历自动刷新(3天)")->withoutOverlapping();
        //$schedule->job(new ResumeEntrust())->hourly()->description("简历委托投递")->withoutOverlapping();
        $schedule->job(new CanselOrder())->everyMinute()->description("取消订单(超过5分钟没有完成支付)")->withoutOverlapping();
    }

    /**
     * Register the commands for the application.
     *
     * @return void
     */
    protected function commands()
    {
        $this->load(__DIR__.'/Commands');

        require base_path('routes/console.php');
    }
}