where('key', 'canned_responses')->get(); } public function allTickets() { $tickets = get_current_company_tickets(); return view('all-tickets', ['tickets' => $tickets]); } public function waiting() { $tickets = get_current_company_tickets(['status' => 'waiting']); return view('waiting', ['tickets' => $tickets]); } public function showTicket($id) { $tickets = get_current_company_tickets([ 'type' => 'inbox', 'orderby' => 'id', 'order' => 'desc', 'with' => 'lastResponse' ]); $single_ticket = Ticket::find($id); $messages = []; $canned_response = $this->get_canned_responses(); return view('show-ticket', ['tickets' => $tickets, 'single_ticket' => $single_ticket, 'messages' => $messages, 'canned_response' => $canned_response]); } public function updateStatus(Request $request, $ticketId) { $request->validate([ 'status' => 'required|in:open,waiting,done', ]); $ticket = Ticket::find($ticketId); $ticket->status = $request->status; $ticket->save(); // Return a response if necessary return response()->json(['message' => 'Ticket status updated successfully']); } public function updateTicket(Request $request, $ticketId) { $ticket = Ticket::find($ticketId); //Update Ticket if(isset($request->priority)) { $ticket->priority = $request->priority; } if(isset($request->user_assigned)) { $ticket->user_assigned = $request->user_assigned; } $ticket->save(); return response()->json(['success' => true, 'message' => 'Ticket Updated successfully!']); } public function storeTags(Request $request) { $company = getSelectedCompany(); $tags = json_decode($request->tags); foreach($tags as $tag) { //Update Tags Table Tag::updateOrCreate([ 'company_id' => $company, 'name' => $tag->value ],[ 'company_id' => $company, 'name' => $tag->value, 'type' => 'inbox' ]); //Update Company Meta Table CompanyMeta::updateOrCreate([ 'company_id' => $company, 'value' => $tag->value ],[ 'company_id' => $company, 'value' => $tag->value, 'key' => 'tag', 'type' => 'tags' ]); } return response()->json(['success' => true, 'message' => 'Tags Added Successfully']); } }