<?php

namespace App\Modules\Company\Whiteboard;

use App\Jobs\Company\ProcessTimesheetReminder;
use App\Jobs\Company\ProcessWorkerTimesheet;
use App\Models\ProjectWorkersTimesheet;
use Illuminate\Support\Facades\DB;
use App\Traits\ValidatorTraits;

class Reminders
{
    use ValidatorTraits;

    public function remindAll($payload)
    {
        // validation
        $rules = array(
            'project_id' => 'required',
            'date' => 'required',
        );
        $validate = $this->validateRequest($payload, $rules);
        if ($validate) {
            return $validate;
        }

        $notifDetails = (object)[
            'project_id' => $payload->project_id,
            'date' => $payload->date,
        ];
        ProcessTimesheetReminder::dispatch($notifDetails, 'all')->onConnection('jobs_sms_reminders')->onQueue('sendsmsreminders');
        return response()->json(['success' => 'Reminders sent successfully.'])->setStatusCode(201);
    }

    public function remindWorker($payload)
    {
        // validation
        $rules = array(
            'worker_id' => 'required',
            'project_id' => 'required',
            'date' => 'required',
        );
        $validate = $this->validateRequest($payload, $rules);
        if ($validate) {
            return $validate;
        }

        $notifDetails = (object)[
            'worker_id' => $payload->worker_id,
            'project_id' => $payload->project_id,
            'date' => $payload->date,
        ];

        ProcessTimesheetReminder::dispatch($notifDetails, 'specific')->onConnection('jobs_sms_reminders')->onQueue('sendsmsreminders');
        return response()->json(['success' => 'Reminder sent successfully.'])->setStatusCode(201);

    }
}
