| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 | <?php
namespace App\Listeners;
use App\Enums\Common\ContactType;
use App\Models\Company;
use App\Models\User;
use Wallo\FilamentCompanies\Events\CompanyEmployeeAdded;
class CreateEmployeeContact
{
    /**
     * Create the event listener.
     */
    public function __construct()
    {
        //
    }
    /**
     * Handle the event.
     */
    public function handle(CompanyEmployeeAdded $event): void
    {
        /** @var Company $company */
        $company = $event->company;
        /** @var User $employee */
        $employee = $event->user;
        $nameParts = explode(' ', $employee->name, 2);
        $firstName = $nameParts[0];
        $lastName = $nameParts[1] ?? '';
        $employee->contacts()->create([
            'company_id' => $company->id,
            'type' => ContactType::Employee,
            'first_name' => $firstName,
            'last_name' => $lastName,
            'email' => $employee->email,
            'created_by' => $company->owner->id,
            'updated_by' => $company->owner->id,
        ]);
    }
}
 |