where('lotacao_id', auth()->payload()->get('lotacao_id')) ->when($isObservacao, function ($query) { $query->whereIn('servico_id', [ Servico::CONSULTA_MEDICA, Servico::ENFERMAGEM, Servico::EXAME_RAIO_X ]); }, function ($query) { $query->whereHas('servico', function ($query) { $query->whereHas('setores', function ($query) { $query->whereHas('centrosCusto', function($query) { $query->where('id', auth()->payload()->get('centro_custo_id')); }); }); }); } ) ->where('inicio', '<=', $now->format('Y-m-d H:i:s')) ->where('fim', '>', $now->subMinutes($parametrizacao->tempo_adicional_plantao ?? 0)->format('Y-m-d H:i:s')) ->first(); return $plantao; } public static function setStatusComAtendimento($plantaoId) { $plantao = Plantao::findOrFail($plantaoId); if ($plantao->status_id !== Status::COM_ATENDIMENTO_AGENDADO) { $plantao->status_id = Status::COM_ATENDIMENTO_AGENDADO; $plantao->save(); } } public static function setStatusConfirmado($plantaoId) { $plantao = Plantao::findOrFail($plantaoId); if ($plantao->status_id !== Status::CONFIRMADO) { $plantao->status_id = Status::CONFIRMADO; $plantao->save(); } } }