<?php

namespace App\Repositories\Eloquent;

use App\Models\ScheduleOverride;
use App\Repositories\Interfaces\ScheduleOverrideRepositoryInterface;
use Illuminate\Database\Eloquent\Model;

class ScheduleOverrideRepository extends BaseRepository implements ScheduleOverrideRepositoryInterface
{
    /**
    * ScheduleOverrideRepository constructor.
    *
    * @param ScheduleOverride $model
    */
    public function __construct(ScheduleOverride $model)
    {
       parent::__construct($model);
    }

    /**
     * @param array $payload
     * 
     * @return Model
     */
    public function checkIfHasExistingOverride(array $payload): ?Model
    {
        return $this->model->where('user_id', $payload['user_id'])
            ->where('professional_id', $payload['professional_id'])
            ->where('date', $payload['date'])
            ->first();
    }

    /**
     * @param mixed $professionalId
     * @param mixed $date
     * 
     * @return Model|null
     */
    public function getOverrideByDate($professionalId, $date): ?Model
    {
         return $this->model->where('professional_id', $professionalId)
            ->where('date', $date)
            ->first();
    }
}
