*/ public function toArray(Request $request): array { $locale = $request->query(config('locales.query_parameter')) ?? app()->getLocale(); return [ 'id' => $this->id, 'locale' => $locale, ...TranslatablePayload::resolve($this->resource, $this->translatable, $locale), 'status' => $this->status->value, 'hours_per_week' => $this->hours_per_week, 'duration_weeks' => $this->duration_weeks, 'seniority' => $this->seniority, 'opens_at' => $this->opens_at?->toDateString(), 'closes_at' => $this->closes_at?->toDateString(), 'project_id' => $this->project_id, 'technology_ids' => $this->whenLoaded('technologies', fn () => $this->technologies->pluck('id')->values()), 'applications_count' => $this->whenCounted('applications'), 'created_at' => $this->created_at?->toIso8601String(), 'updated_at' => $this->updated_at?->toIso8601String(), 'translations' => $this->when( in_array('translations', explode(',', (string) $request->query('with')), true), fn () => TranslatablePayload::all($this->resource, $this->translatable), ), ]; } }