* * @version 1.0.0 */ class User extends Authenticatable { use HasApiTokens, HasFactory, HasRoles, HasProfilePhoto, IsNotifiable; /** * Atributos permitidos */ protected $fillable = [ 'name', 'paternal', 'maternal', 'email', 'phone', 'password', 'profile_photo_path', ]; /** * Atributos ocultos */ protected $hidden = [ 'password', 'remember_token', ]; /** * Atributos que se deben convertir */ protected function casts(): array { return [ 'email_verified_at' => 'datetime', 'password' => 'hashed', ]; } /** * Los accesores a añadir al modelo en su forma de array */ protected $appends = [ 'full_name', 'last_name', 'profile_photo_url', ]; /** * Nombre completo del usuario */ public function fullName(): Attribute { return Attribute::make( get: fn () => $this->name . ' ' . $this->paternal . ' ' . $this->maternal, ); } /** * Apellido paterno y materno del usuario */ public function lastName(): Attribute { return Attribute::make( get: fn () => $this->paternal . ' ' . $this->maternal, ); } }