-
-
Notifications
You must be signed in to change notification settings - Fork 655
Expand file tree
/
Copy pathEventResource.php
More file actions
58 lines (55 loc) · 2.42 KB
/
EventResource.php
File metadata and controls
58 lines (55 loc) · 2.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php
namespace HiEvents\Resources\Event;
use HiEvents\DomainObjects\EventDomainObject;
use HiEvents\Resources\BaseResource;
use HiEvents\Resources\Image\ImageResource;
use HiEvents\Resources\Organizer\OrganizerResource;
use HiEvents\Resources\Product\ProductResource;
use HiEvents\Resources\ProductCategory\ProductCategoryResource;
use Illuminate\Http\Request;
/**
* @mixin EventDomainObject
*/
class EventResource extends BaseResource
{
public function toArray(Request $request): array
{
return [
'id' => $this->getId(),
'organizer_id' => $this->getOrganizerId(),
'title' => $this->getTitle(),
'category' => $this->getCategory(),
'description' => $this->getDescription(),
'start_date' => $this->getStartDate(),
'end_date' => $this->getEndDate(),
'status' => $this->getStatus(),
'lifecycle_status' => $this->getLifeCycleStatus(),
'currency' => $this->getCurrency(),
'timezone' => $this->getTimezone(),
'slug' => $this->getSlug(),
'products' => $this->when(
condition: (bool)$this->getProducts(),
value: fn() => ProductResource::collection($this->getProducts()),
),
'product_categories' => $this->when(
condition: (bool)$this->getProductCategories(),
value: fn() => ProductCategoryResource::collection($this->getProductCategories()),
),
'attributes' => $this->when((bool)$this->getAttributes(), fn() => $this->getAttributes()),
'images' => $this->when((bool)$this->getImages(), fn() => ImageResource::collection($this->getImages())),
'location_details' => $this->when((bool)$this->getLocationDetails(), fn() => $this->getLocationDetails()),
'settings' => $this->when(
condition: !is_null($this->getEventSettings()),
value: fn() => new EventSettingsResource($this->getEventSettings())
),
'organizer' => $this->when(
condition: !is_null($this->getOrganizer()),
value: fn() => new OrganizerResource($this->getOrganizer())
),
'statistics' => $this->when(
condition: !is_null($this->getEventStatistics()),
value: fn() => new EventStatisticsResource($this->getEventStatistics())
),
];
}
}