store/app/Models/UserProfile.php

40 lines
923 B
PHP

<?php
namespace App\Models;
use App\Enums\Gender;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Attributes\Appends;
use Illuminate\Database\Eloquent\Attributes\Guarded;
use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\SoftDeletes;
#[Guarded(['id'])]
#[Appends(['birth_date_formatted'])]
class UserProfile extends Model
{
use SoftDeletes;
protected function casts(): array
{
return [
'gender' => Gender::class,
'birth_date' => 'date',
];
}
protected function birthDateFormatted(): Attribute
{
return Attribute::make(
get: fn () => Carbon::parse($this->birth_date)->format('l, d F Y'),
);
}
public function user(): BelongsTo
{
return $this->belongsTo(User::class);
}
}