authorize('update', $submission); $valid = $request->validated(); $data = [ 'diagnosis' => $valid['diagnosis'], 'doctor_note' => $valid['doctorNote'], 'doctor_id' => $request->user()->id, 'status' => 'verified', 'verified_at' => now(), ]; $submission->update($data); return new SubmissionDetailResource( $submission->fresh()->load('patient') ); } public function pending(Request $request) { $user = $request->user(); $request->merge(['only_percentage' => true]); $subs = Submission::pending() ->where('doctor_id', $user->id) ->whereHas('patient', function ($q) use ($request) { if ($search = $request->query('search')) { $q->where('name', 'like', "%{$search}%"); } }) ->with('patient:id,name') ->orderBy('submitted_at','desc') ->get(); return SubmissionListResource::collection($subs); } public function history(Request $request) { $this->authorize('viewAny', Submission::class); $doctorId = $request->user()->id; $limit = (int) $request->query('limit', 0); $query = Submission::where('status', 'verified') ->where('doctor_id', $doctorId) ->whereHas('patient', function ($q) use ($request) { if ($search = $request->query('search')) { $q->where('name', 'like', "%{$search}%"); } }) ->with('patient:id,name') ->orderBy('verified_at', 'desc'); if ($limit > 0) { $subs = $query->limit($limit)->get(); } else { $subs = $query->get(); } return DoctorHistorySubmissionResource::collection($subs); } public function detail($id) { $sub = Submission::with('patient') ->findOrFail($id); return new SubmissionDetailResource($sub); } }