ldc-legaulois/app/Models/OcbBreeder.php

62 lines
1.7 KiB
PHP
Raw Permalink Normal View History

2024-12-05 10:51:19 +01:00
<?php
namespace App\Models;
use App\Enums\Breeders\OCBType;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
/**
2026-09-25 16:25:31 +02:00
* @property string $first_name OCB breeder first name.
* @property string $last_name OCB breeder last name.
* @property string $department OCB breeder department.
* @property string $postal_code OCB breeder postal code.
* @property \App\Enums\Breeders\OCBType $type OCB breeder type.
2024-12-05 10:51:19 +01:00
* @property-read \Carbon\Carbon $created_at Created date.
* @property-read \Carbon\Carbon $updated_at Updated date.
*/
class OcbBreeder extends Model
{
/**
* The attributes that are mass assignable.
*
2026-09-25 16:25:31 +02:00
* @var array<int, string>
2024-12-05 10:51:19 +01:00
*/
protected $fillable = [
'first_name',
'last_name',
'department',
'postal_code',
'type',
];
/**
* The attributes that should be cast.
*
* @var array<string,string>
*/
protected $casts = [
2026-09-25 16:25:31 +02:00
'type' => OCBType::class,
2024-12-05 10:51:19 +01:00
];
// * METHODS.
/**
* Created at nice date.
*/
2026-09-25 16:25:31 +02:00
public static function getOcbBreederCards(int $page = 1, ?string $search = null): array
2024-12-05 10:51:19 +01:00
{
return OcbBreeder::query()
->when($search, function (Builder $query) use ($search) {
$query->where('first_name', 'like', '%' . $search . '%')
->orWhere('last_name', 'like', '%' . $search . '%');
})
->paginate(perPage: 9, page: $page)
->through(function (OcbBreeder $ocbBreederModel) {
return view('components.fo.breeding.card-ocb-breeder', [
2026-09-25 16:25:31 +02:00
'ocbBreederModel' => $ocbBreederModel,
])->render();
2024-12-05 10:51:19 +01:00
})->toArray();
}
}