<?php namespace App\View\Components; use Illuminate\View\Component; use Modules\Appointment\Entities\Booking; use Modules\Appointment\Entities\Schedule; use Modules\Appointment\Entities\TimeSlot; use Modules\Appointment\Repositories\Interfaces\ScheduleRepositoryInterface; class AppointmentMyAppointmentPageSection extends Component { public $request; public $scheduleRepository; public function __construct( $request, ScheduleRepositoryInterface $scheduleRepository ) { $this->request = $request; $this->scheduleRepository = $scheduleRepository; } public function render() { $next_date = $this->request->next_date ?? null; $end_date = $this->request->end_date ?? null; $user_id = auth()->user()->id; $booking_list = Booking::with('schedule')->where('user_id', $user_id)->groupBy('schedule_id'); $data['booking_list'] = $booking_list->get(); $data += $this->scheduleRepository->datePeriods($next_date, $end_date); return view(theme('components.appointment-my-appointment-page-section'), $data); } }