* }>, * seconds: int, * cost: int * } */ class DetailedWithDataReportResource extends BaseResource { /** * @var Data */ private array $data; /** * @var Data */ private array $historyData; /** * @param Data $data * @param Data $historyData */ public function __construct(Report $resource, array $data, array $historyData) { parent::__construct($resource); $this->data = $data; $this->historyData = $historyData; } /** * Transform the resource into an array. * * @return array>> */ public function toArray(Request $request): array { return [ /** @var string $name Name */ 'name' => $this->resource->name, /** @var string|null $email Description */ 'description' => $this->resource->description, /** @var string|null $public_until Date until the report is public */ 'public_until' => $this->resource->public_until?->toIso8601ZuluString(), /** @var string $currency Currency code (ISO 4217) */ 'currency' => $this->resource->organization->currency, 'properties' => [ /** @var string $group Type of first grouping */ 'group' => $this->resource->properties->group->value, /** @var string $sub_group Type of second grouping */ 'sub_group' => $this->resource->properties->subGroup->value, /** @var string $history_group Type of grouping of the historic aggregation (time chart) */ 'history_group' => $this->resource->properties->historyGroup->value, /** @var string $start Start date of the report */ 'start' => $this->resource->properties->start->toIso8601ZuluString(), /** @var string $end End date of the report */ 'end' => $this->resource->properties->end->toIso8601ZuluString(), ], /** @var array{ * grouped_type: string|null, * grouped_data: null|array * }>, * seconds: int, * cost: int * } $data Aggregated data */ 'data' => $this->data, /** @var array{ * grouped_type: string|null, * grouped_data: null|array * }>, * seconds: int, * cost: int * } $history_data Historic aggregated data */ 'history_data' => $this->historyData, ]; } }