/** * @return Collection[TorneoPlantel] : los jugadores de la lista de buena fe que estan suspendidos */ public function getPartidosProgramadosAnterioresAttribute() { $partidos_anteriores = PartidoClub::where("club_id", $this->club_id)->get(); $partidos_ids = $partidos_anteriores->pluck("partido_id")->toArray(); $dia_partido = $this->date_latino_to_mysql($this->partido->dia_partido); $partidos_programados = Partido::whereIn("id", $partidos_ids)->whereDate("dia_partido", "<", $dia_partido)->where("estado_id", EstadoPartido::PROGRAMADO)->orderBy("dia_partido", "DESC")->get(); return $partidos_programados; }
/** * Devuelve los partidos programados anteriormente mas cercanos sin jugar, de alguno de los clubes * @return Partido */ public function getPartidosProgramadosAnterioresAttribute() { /* ESTO ES LO MISMO QUE LAS TRES LINEAS DE ABAJO, LA DIFERENCIA ES QUE ABAJO LO PIDO POR CADA PARTIDO CLUB Y ACA LO CALCULO DESDE EL PARTIDO, DB::enableQueryLog(); $partidos_programados = Partido::where("estado_id",EstadoPartido::PROGRAMADO) ->where("dia_partido","<",$this->dia_partido) ->where("id","<>",$this->id) ->get(); $clubes = PartidoClub::where("partido_id",$this->id)->get(); $partidos_clubes = PartidoClub::whereIn("club_id",$clubes->pluck("club_id")->toArray()) ->whereIn("partido_id",$partidos_programados->pluck("id")->toArray())->get(); $partidos = $partidos_clubes->pluck("partido_id")->unique(); $partidos = Partido::whereIn("id",$partidos->toArray())->orderBy("dia_partido","DESC")->get(); dd(array_sum(array_pluck(DB::getQueryLog(), 'time'))); */ $clubes = PartidoClub::where("partido_id", $this->id)->get(); $partidos = $clubes->first()->partidos_programados_anteriores; $partidos->merge($clubes->get(1)->partidos_programados_anteriores); return $partidos->unique(); }