| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- <?php
- namespace App\Http\Resources;
- use Illuminate\Http\Request;
- use Illuminate\Http\Resources\Json\JsonResource;
- class ReviewDetailResource extends JsonResource
- {
- public function toArray(Request $request): array
- {
- $schedule = $this->schedule;
- $customSchedule = $schedule?->customSchedule;
- $address = $schedule?->address;
- return [
- 'id' => $this->id,
- 'origin' => $this->origin,
- 'origin_id' => $this->origin_id,
- 'stars' => $this->stars,
- 'comment' => $this->comment,
- 'created_at' => $this->created_at?->format('Y-m-d H:i'),
- 'improvements' => $this->whenLoaded('improvements', function () {
- return $this->improvements->map(fn($imp) => [
- 'id' => $imp->id,
- 'description' => $imp->description,
- ]);
- }),
- 'schedule' => $schedule ? [
- 'id' => $schedule->id,
- 'schedule_type' => $schedule->schedule_type,
- 'status' => $schedule->status,
- 'date' => $schedule->date?->format('d/m/Y'),
- 'start_time' => $schedule->start_time,
- 'end_time' => $schedule->end_time,
- 'period_type' => $schedule->period_type,
- 'total_amount' => $schedule->total_amount,
- 'code' => $schedule->code,
- 'client' => $schedule->client ? [
- 'id' => $schedule->client->id,
- 'name' => $schedule->client->user?->name,
- 'email' => $schedule->client->user?->email,
- 'phone' => $schedule->client->user?->phone,
- ] : null,
- 'provider' => $schedule->provider ? [
- 'id' => $schedule->provider->id,
- 'name' => $schedule->provider->user?->name,
- 'email' => $schedule->provider->user?->email,
- 'phone' => $schedule->provider->user?->phone,
- ] : null,
- 'address' => $address ? [
- 'street' => $address->street,
- 'number' => $address->number,
- 'complement' => $address->complement,
- 'neighborhood' => $address->neighborhood,
- 'city' => $address->city?->name,
- 'state' => $address->state?->name,
- ] : null,
- 'custom_schedule' => $customSchedule ? [
- 'address_type' => $customSchedule->address_type,
- 'service_type' => $customSchedule->serviceType?->description,
- 'specialities' => $customSchedule->specialities
- ? $customSchedule->specialities->map(fn($s) => [
- 'id' => $s->id,
- 'description' => $s->description,
- ])
- : [],
- 'min_price' => $customSchedule->min_price,
- 'max_price' => $customSchedule->max_price,
- 'offers_meal' => $customSchedule->offers_meal,
- 'description' => $customSchedule->description,
- ] : null,
- ] : null,
- ];
- }
- }
|