Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

CreateEmployeeContact.php 1.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. namespace App\Listeners;
  3. use App\Enums\Common\ContactType;
  4. use App\Models\Company;
  5. use App\Models\User;
  6. use Wallo\FilamentCompanies\Events\CompanyEmployeeAdded;
  7. class CreateEmployeeContact
  8. {
  9. /**
  10. * Create the event listener.
  11. */
  12. public function __construct()
  13. {
  14. //
  15. }
  16. /**
  17. * Handle the event.
  18. */
  19. public function handle(CompanyEmployeeAdded $event): void
  20. {
  21. /** @var Company $company */
  22. $company = $event->company;
  23. /** @var User $employee */
  24. $employee = $event->user;
  25. $nameParts = explode(' ', $employee->name, 2);
  26. $firstName = $nameParts[0];
  27. $lastName = $nameParts[1] ?? '';
  28. $employee->contacts()->create([
  29. 'company_id' => $company->id,
  30. 'type' => ContactType::Employee,
  31. 'first_name' => $firstName,
  32. 'last_name' => $lastName,
  33. 'email' => $employee->email,
  34. 'created_by' => $company->owner->id,
  35. 'updated_by' => $company->owner->id,
  36. ]);
  37. }
  38. }