where('id', \Auth::user()->id)->get(); $totalRolesAssigned = array(); foreach ($checkRole as $data) { foreach ($data->manyRoles as $role) { array_push($totalRolesAssigned, $role->roles->name); } } // echo "
";
        // print_r($totalRolesAssigned);
        // die;
        $principalGroupLinks = PrincipalGroupsLink::has('users')->with('groups')->get();
        // $principalGroupLinks = PrincipalGroupsLink::with('users')->get();
        return view('Admin.principal_groups_link.index', compact('principalGroupLinks'));
    }

    public function create()
    {
        $principals = User::all();
        $prinipalGroups = UserGroup::all();
        return view('Admin.principal_groups_link.create', compact('principals', 'prinipalGroups'));
    }

    public function store(Request $request)
    {
       
        $validated = $request->validate([
            'principal_xid' => ['required'],
            'principal_group_xid' => ['required'],
        ]);

        $addPrincipalGroupsLink = PrincipalGroupsLink::create([
            'principal_xid' => $request->principal_xid,
            'principal_group_xid' => $request->principal_group_xid,
        ]);

        if($addPrincipalGroupsLink){
            return response()->json(['status'=>200,'message'=>'Principal Group Link Added Successfully.']);
        }else{
            return response()->json(['status'=>200,'message'=>'Error Creating Principal Group Link.']);
        }
        // $request->session()->flash('message', 'Prinicpal Group Link  Added successfully');
        // return redirect()->route('admin.principal_groups_link')->with('success', 'Permission created successfully.');
    }

    public function edit(Request $request, $id)
    {


        $principalGroupLink = PrincipalGroupsLink::find($id);
        $principals = User::all();
        $prinipalGroups = UserGroup::all();

        return view('Admin.principal_groups_link.edit', compact('principalGroupLink', 'principals', 'prinipalGroups'));
    }

    public function update(Request $request, $id)
    {
        // $data = PrincipalGroupsLink::find($id);
        $request->validate([
            'principal_xid' => ['required'],
            'principal_group_xid' => ['required'],
        ]);

        // $data->principal_xid = $request->input("principal_xid", $data->principal_xid);
        // $data->principal_group_xid = $request->input("principal_group_xid", $data->principal_group_xid);
        // $data->save();

        $updatePrincipalGroupsLink = PrincipalGroupsLink::where('id',$id)->update([
            'principal_xid' => $request->principal_xid,
            'principal_group_xid' => $request->principal_group_xid,
        ]);
        if($updatePrincipalGroupsLink){
            return response()->json(['status'=>200,'message'=>'Principal Group Link Updated Successfully.']);
        }else{
            return response()->json(['status'=>400,'message'=>'Error Updating Principal Group Link.']);
        }

        // $request->session()->flash('message', 'Prinicpal Group Link updated successfully');
        // return redirect()->route('admin.principal_groups_link')->with('success', ' Prinicpal Group Link updated successfully.');
    }


    public function delete(Request $request, $id)
    {
        $Project = PrincipalGroupsLink::where('id', $id)->delete();
        $request->session()->flash('message', 'Prinicpal Group Link Deleted successfully');
        return redirect()->back()->with(['success' => 'Prinicpal Group Link Deleted Successfully.']);
    }
}