ScheduleResource.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?php
  2. namespace App\Http\Resources;
  3. use Illuminate\Http\Request;
  4. use Illuminate\Http\Resources\Json\JsonResource;
  5. class ScheduleResource extends JsonResource
  6. {
  7. public function toArray(Request $request): array
  8. {
  9. return [
  10. 'id' => $this->id,
  11. 'client_id' => $this->client_id,
  12. 'client_name' => $this->client?->user?->name,
  13. 'provider_id' => $this->provider_id,
  14. 'provider_name' => $this->provider?->user?->name,
  15. 'address_id' => $this->address_id,
  16. 'address_full' => $this->address ?
  17. "{$this->address->address}" .
  18. ($this->address->complement ? " - {$this->address->complement}" : '') .
  19. " , {$this->address->city->name}/{$this->address->state->code}"
  20. : null,
  21. 'address' => new AddressResource($this->whenLoaded('address')),
  22. 'date' => $this->date?->format('Y-m-d'),
  23. 'period_type' => $this->period_type,
  24. 'schedule_type' => $this->schedule_type,
  25. 'start_time' => $this->start_time,
  26. 'end_time' => $this->end_time,
  27. 'status' => $this->status,
  28. 'total_amount' => $this->total_amount,
  29. 'code' => $this->code,
  30. 'code_verified' => $this->code_verified,
  31. 'created_at' => $this->created_at?->toISOString(),
  32. 'updated_at' => $this->updated_at?->toISOString(),
  33. 'deleted_at' => $this->deleted_at?->toISOString(),
  34. ];
  35. }
  36. }