AggregationsDTO.php 989 B

123456789101112131415161718192021222324252627282930313233
  1. <?php
  2. namespace App\DTO\Search;
  3. class AggregationsDTO
  4. {
  5. public function __construct(
  6. public AggregationDTO $granularity,
  7. public AggregationDTO $resource_type,
  8. public AggregationDTO $language,
  9. public AggregationDTO $category,
  10. ) {}
  11. public static function fromArray(array $data): self
  12. {
  13. return new self(
  14. granularity: AggregationDTO::fromArray($data['granularity']),
  15. resource_type: AggregationDTO::fromArray($data['resource_type']),
  16. language: AggregationDTO::fromArray($data['language']),
  17. category: AggregationDTO::fromArray($data['category']),
  18. );
  19. }
  20. public function toArray(): array
  21. {
  22. return [
  23. 'granularity' => $this->granularity->toArray(),
  24. 'resource_type' => $this->resource_type->toArray(),
  25. 'language' => $this->language->toArray(),
  26. 'category' => $this->category->toArray(),
  27. ];
  28. }
  29. }