diff --git a/packages/admin/src/Models/Staff.php b/packages/admin/src/Models/Staff.php index 2feac6e4a..8e75f58bf 100644 --- a/packages/admin/src/Models/Staff.php +++ b/packages/admin/src/Models/Staff.php @@ -62,6 +62,22 @@ class Staff extends Authenticatable implements FilamentUser, HasName 'full_name', ]; + protected function firstName(): Attribute + { + return Attribute::make( + get: fn (): string => $this->first_name, + set: fn (?string $value) => $this->first_name = $value, + ); + } + + protected function lastName(): Attribute + { + return Attribute::make( + get: fn (): string => $this->last_name, + set: fn (?string $value) => $this->last_name = $value, + ); + } + protected function fullName(): Attribute { return Attribute::get( diff --git a/tests/admin/Unit/Models/StaffTest.php b/tests/admin/Unit/Models/StaffTest.php index fa4ac0047..bdaad0606 100644 --- a/tests/admin/Unit/Models/StaffTest.php +++ b/tests/admin/Unit/Models/StaffTest.php @@ -32,3 +32,41 @@ ->and(\Lunar\Admin\Models\Staff::search('Bill')->get())->toHaveCount(1) ->and(\Lunar\Admin\Models\Staff::search('Joe Bloggs')->get())->toHaveCount(1); }); + +test('can get first name by old key without underscore', function () { + $staff = \Lunar\Admin\Models\Staff::factory()->create([ + 'first_name' => 'Joe', + ]); + + expect($staff->firstname)->toBe('Joe'); +}); + +test('can get last name by old key without underscore', function () { + $staff = \Lunar\Admin\Models\Staff::factory()->create([ + 'last_name' => 'Bloggs', + ]); + + expect($staff->lastname)->toBe('Bloggs'); +}); + +test('can set first name by old key without underscore', function () { + $staff = \Lunar\Admin\Models\Staff::factory()->create([ + 'first_name' => 'Joe', + ]); + + $staff->firstname = 'Tim'; + + expect($staff->firstname)->toBe('Tim'); + expect($staff->first_name)->toBe('Tim'); +}); + +test('can set last name by old key without underscore', function () { + $staff = \Lunar\Admin\Models\Staff::factory()->create([ + 'last_name' => 'Bloggs', + ]); + + $staff->lastname = 'Chance'; + + expect($staff->lastname)->toBe('Chance'); + expect($staff->last_name)->toBe('Chance'); +});