Files
Laucha1312 90c5f85512 2
2026-06-04 15:15:23 -03:00

80 lines
2.0 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Jugador extends Model
{
use SoftDeletes;
protected $table = 'jugadores';
protected $primaryKey = 'id_jugador';
public $timestamps = true;
public $incrementing = false;
protected $fillable = [
'id_jugador',
'documento',
'nombre',
'apellido',
'fecha_nacimiento',
'edad',
'categoria',
'id_club_actual',
'id_club_origen',
'activo',
'email',
'telefono',
'password',
'reset_token',
'reset_expira',
];
protected $hidden = [
'password',
'reset_token',
];
protected $casts = [
'id_jugador' => 'string',
'fecha_nacimiento' => 'date',
'edad' => 'integer',
'id_club_actual' => 'integer',
'id_club_origen' => 'integer',
'activo' => 'boolean',
'reset_expira' => 'datetime',
];
public function getCategoriaCalculadaAttribute()
{
if (!$this->fecha_nacimiento) return 'Sin categoría';
// Calculate age for the current year. (Categoría U15 is for players turning 14 and 15 in the current year).
// That means current_year - birth_year
$edadCategoria = date('Y') - $this->fecha_nacimiento->format('Y');
$categoria = Categoria::where('edad_min', '<=', $edadCategoria)
->where('edad_max', '>=', $edadCategoria)
->first();
return $categoria ? $categoria->nombre : 'Sin categoría';
}
public function clubActual()
{
return $this->belongsTo(Club::class, 'id_club_actual', 'id_club');
}
public function clubOrigen()
{
return $this->belongsTo(Club::class, 'id_club_origen', 'id_club');
}
public function equipos()
{
return $this->belongsToMany(Equipo::class, 'jugador_equipo', 'id_jugador', 'id_equipo')
->withPivot('fecha_alta');
}
}