97 lines
2.3 KiB
PHP
97 lines
2.3 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
|
use Carbon\Carbon;
|
|
|
|
class Evento extends Model
|
|
{
|
|
use SoftDeletes;
|
|
protected $table = 'eventos';
|
|
protected $primaryKey = 'id_evento';
|
|
public $timestamps = true;
|
|
public $incrementing = false;
|
|
|
|
public const FASE_REGULAR = 0;
|
|
public const FASE_CUARTOS = 1;
|
|
public const FASE_SEMIS = 2;
|
|
public const FASE_FINAL = 3;
|
|
|
|
protected $fillable = [
|
|
'id_evento',
|
|
'nombre_evento',
|
|
'fecha_evento',
|
|
'hora_inicio',
|
|
'hora_fin',
|
|
'sede',
|
|
'id_equipo_local',
|
|
'id_equipo_visitante',
|
|
'marcador_local',
|
|
'marcador_visitante',
|
|
'id_torneo',
|
|
'precio',
|
|
'limite_qr_jugador',
|
|
'fase',
|
|
'numero_partido_bracket',
|
|
];
|
|
|
|
protected $casts = [
|
|
'id_evento' => 'string',
|
|
'id_torneo' => 'integer',
|
|
'id_equipo_local' => 'integer',
|
|
'id_equipo_visitante' => 'integer',
|
|
'marcador_local' => 'integer',
|
|
'marcador_visitante' => 'integer',
|
|
'precio' => 'decimal:2',
|
|
'fase' => 'integer',
|
|
'numero_partido_bracket' => 'integer',
|
|
];
|
|
|
|
public function getFechaEventoAttribute($value)
|
|
{
|
|
return $value ? Carbon::parse($value) : null;
|
|
}
|
|
|
|
public function getHoraInicioAttribute($value)
|
|
{
|
|
return $value ? Carbon::parse($value) : null;
|
|
}
|
|
|
|
public function getHoraFinAttribute($value)
|
|
{
|
|
return $value ? Carbon::parse($value) : null;
|
|
}
|
|
|
|
public function torneo()
|
|
{
|
|
return $this->belongsTo(Torneo::class, 'id_torneo');
|
|
}
|
|
|
|
public function equipoLocal()
|
|
{
|
|
return $this->belongsTo(Equipo::class, 'id_equipo_local', 'id_equipo');
|
|
}
|
|
|
|
public function equipoVisitante()
|
|
{
|
|
return $this->belongsTo(Equipo::class, 'id_equipo_visitante', 'id_equipo');
|
|
}
|
|
|
|
public function pagos()
|
|
{
|
|
return $this->hasMany(PagoMp::class, 'event_id', 'id_evento');
|
|
}
|
|
|
|
public function qrCodes()
|
|
{
|
|
return $this->hasMany(QrCode::class, 'id_evento', 'id_evento');
|
|
}
|
|
|
|
public function jugadoresPuntos()
|
|
{
|
|
return $this->hasMany(EventoJugador::class, 'id_evento', 'id_evento');
|
|
}
|
|
}
|