has('admin_id')) { return redirect()->route('admin.login')->with('error', 'Please login first.'); } // DB එකේ තියෙන ඔක්කොම Timetable entries ගන්නවා $allTimetables = Timetable::all(); // ඊට පස්සේ Time Slot එකයි Day එකයි අනුව Map කරගන්නවා $grid = []; foreach ($allTimetables as $item) { $grid[$item->time_slot][$item->day] = $item; } $days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']; $timeSlots = [ '08:30 - 10:00', '10:45 - 12:15', '12:15 - 01:00', // Lunch / Interval '01:00 - 03:00' ]; // Today's Day Name $today = Carbon::now()->format('l'); $todaySchedule = Timetable::where('day', $today)->get(); return view('admin.admintimetable', compact('allTimetables', 'days', 'timeSlots', 'grid', 'todaySchedule', 'today')); } // Save or Update Entry public function store(Request $request) { $request->validate([ 'time_slot' => 'required|string', 'day' => 'required|string', 'subject_name' => 'required|string|max:255', 'type' => 'required|string', ]); // අදාළ Day එකටයි Time Slot එකටයි කලින් Data තිබුණොත් Update කරනවා, නැත්නම් අලුතෙන් Add කරනවා Timetable::updateOrCreate( [ 'day' => $request->day, 'time_slot' => $request->time_slot, ], [ 'subject_name' => $request->subject_name, 'type' => $request->type, 'student_log_id' => $request->student_log_id, ] ); return redirect()->back()->with('success', 'Timetable updated successfully!'); } // Delete Single Slot public function destroy($id) { $timetable = Timetable::findOrFail($id); $timetable->delete(); return redirect()->back()->with('success', 'Timetable slot cleared successfully!'); } }