-
-
Notifications
You must be signed in to change notification settings - Fork 655
Expand file tree
/
Copy pathAttendeeResource.php
More file actions
55 lines (50 loc) · 1.92 KB
/
AttendeeResource.php
File metadata and controls
55 lines (50 loc) · 1.92 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
<?php
namespace HiEvents\Resources\Attendee;
use HiEvents\DomainObjects\AttendeeDomainObject;
use HiEvents\DomainObjects\Enums\QuestionBelongsTo;
use HiEvents\Resources\Order\OrderResource;
use HiEvents\Resources\Question\QuestionAnswerViewResource;
use HiEvents\Resources\Product\ProductResource;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
/**
* @mixin AttendeeDomainObject
*/
class AttendeeResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'id' => $this->getId(),
'order_id' => $this->getOrderId(),
'product_id' => $this->getProductId(),
'product_price_id' => $this->getProductPriceId(),
'event_id' => $this->getEventId(),
'email' => $this->getEmail(),
'status' => $this->getStatus(),
'first_name' => $this->getFirstName(),
'last_name' => $this->getLastName(),
'public_id' => $this->getPublicId(),
'short_id' => $this->getShortId(),
'locale' => $this->getLocale(),
'notes' => $this->getNotes(),
'product' => $this->when(
!is_null($this->getProduct()),
fn() => new ProductResource($this->getProduct()),
),
'order' => $this->when(
!is_null($this->getOrder()),
fn() => new OrderResource($this->getOrder())
),
'question_answers' => $this->when(
$this->getQuestionAndAnswerViews() !== null,
fn() => QuestionAnswerViewResource::collection(
$this->getQuestionAndAnswerViews()
?->filter(fn($qav) => $qav->getBelongsTo() === QuestionBelongsTo::PRODUCT->name)
)
),
'created_at' => $this->getCreatedAt(),
'updated_at' => $this->getUpdatedAt(),
];
}
}