*/ public function toArray(Request $request): array { if ($this->resource instanceof TicketLink) { $currentTicketId = (int) ($this->resource->getAttribute('current_ticket_id') ?? 0); $linkedTicket = $this->source_ticket_id === $currentTicketId ? $this->targetTicket : $this->sourceTicket; return [ 'id' => $this->id, 'linked_ticket' => TicketReferenceResource::make($linkedTicket)->resolve(), 'source_ticket_id' => $this->source_ticket_id, 'target_ticket_id' => $this->target_ticket_id, 'ticket_link_type' => TicketLinkTypeResource::make($this->ticketLinkType)->resolve(), 'ticket_link_type_id' => $this->ticket_link_type_id, 'created_at' => $this->created_at?->toISOString(), 'updated_at' => $this->updated_at?->toISOString(), ]; } return [ 'id' => Arr::get($this->resource, 'id'), 'linked_ticket' => TicketReferenceResource::make(Arr::get($this->resource, 'linked_ticket'))->resolve(), 'source_ticket_id' => Arr::get($this->resource, 'source_ticket_id'), 'target_ticket_id' => Arr::get($this->resource, 'target_ticket_id'), 'ticket_link_type' => TicketLinkTypeResource::make(Arr::get($this->resource, 'ticket_link_type'))->resolve(), 'ticket_link_type_id' => Arr::get($this->resource, 'ticket_link_type_id'), 'created_at' => Arr::get($this->resource, 'created_at'), 'updated_at' => Arr::get($this->resource, 'updated_at'), ]; } }