quiniela-sembradores-backend/app/Models/Team.php

55 lines
1.2 KiB
PHP
Raw Permalink Normal View History

2026-03-19 18:18:18 -06:00
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Attributes\Fillable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
2026-03-19 23:45:46 -06:00
use Illuminate\Support\Str;
2026-03-19 18:18:18 -06:00
#[Fillable([
'name',
'short_name',
'slug',
'fifa_code',
'flag_url',
'is_active',
])]
class Team extends Model
{
2026-03-19 23:45:46 -06:00
protected static function booted(): void
{
static::creating(function (self $team): void {
if (blank($team->slug) && filled($team->name)) {
$team->slug = Str::slug($team->name);
}
});
static::updating(function (self $team): void {
if (blank($team->slug) && filled($team->name)) {
$team->slug = Str::slug($team->name);
}
});
}
2026-03-19 18:18:18 -06:00
/**
* @return array<string, string>
*/
protected function casts(): array
{
return [
'is_active' => 'boolean',
];
}
public function homeFixtures(): HasMany
{
return $this->hasMany(Fixture::class, 'home_team_id');
}
public function awayFixtures(): HasMany
{
return $this->hasMany(Fixture::class, 'away_team_id');
}
}