SessionRequestData.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. <?php
  2. namespace App\Data\Didit\Session;
  3. use App\Data\Didit\DiditData;
  4. use App\Data\Didit\Session\Parts\Request\ContactDetailsData;
  5. use App\Data\Didit\Session\Parts\Request\ExpectedDetailsData;
  6. final readonly class SessionRequestData extends DiditData
  7. {
  8. public function __construct(
  9. public string $workflowId,
  10. public string $vendorData,
  11. public ?string $callback = null,
  12. public string $language = 'pt',
  13. public ?ExpectedDetailsData $expectedDetails = null,
  14. public ?ContactDetailsData $contactDetails = null,
  15. ) {
  16. self::requireFilled($this->workflowId, 'workflow_id');
  17. self::requireFilled($this->vendorData, 'vendor_data');
  18. }
  19. public function toArray(): array
  20. {
  21. return $this->filterFilledRecursive([
  22. 'workflow_id' => $this->workflowId,
  23. 'vendor_data' => $this->vendorData,
  24. 'callback' => $this->callback,
  25. 'language' => $this->language,
  26. 'expected_details' => $this->expectedDetails,
  27. 'contact_details' => $this->contactDetails,
  28. ]);
  29. }
  30. }