Files
sifatbaho-php/app/Http/Controllers/UserController.php
husanjon 73b0041643 Fix all page controllers and missing enums
- Update all controllers to pass required variables to views
- Add MediaTypeEnum, OrderTypeEnum, TrackingActionTypeEnum enums
- Fix RoleEnum, OrderStatusEnum completeness

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 05:48:11 +05:00

109 lines
3.4 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
class UserController extends Controller
{
public function index(Request $request)
{
$size = $request->get('size', 20);
$role = $request->get('role');
$status = $request->get('status');
$search = $request->get('search');
$query = DB::table('users')->orderByDesc('id');
if ($role) $query->where('role', $role);
if ($status) $query->where('status', $status);
if ($search) $query->where('name', 'like', "%$search%")->orWhere('phone', 'like', "%$search%");
$users = $query->paginate($size)->withQueryString();
$roleStats = DB::table('users')->selectRaw('role, count(*) as cnt')->groupBy('role')->pluck('cnt', 'role');
$statusStats = DB::table('users')->selectRaw('status, count(*) as cnt')->groupBy('status')->pluck('cnt', 'status');
$user = auth()->user();
$message = session('message');
return view('user.index', compact('users', 'roleStats', 'statusStats', 'user', 'message', 'size'));
}
public function create(Request $request)
{
DB::table('users')->insert([
'name' => $request->name,
'phone' => $request->phone,
'password' => Hash::make($request->password ?? '12345678'),
'avatar' => '/assets/images/users/avatar-5.jpg',
'status' => 'active',
'role' => $request->role ?? 'user',
'balance' => 0,
'created_at' => now(),
'updated_at' => now(),
]);
return redirect()->route('user.index')->with('message', 'User created');
}
public function show($id)
{
$user = DB::table('users')->find($id);
return view('user.show', compact('user'));
}
public function edit()
{
$user = auth()->user();
return view('user.edit', compact('user'));
}
public function update(Request $request)
{
return redirect()->back();
}
public function favourite($id)
{
return redirect()->back();
}
public function updatePassword(Request $request)
{
return redirect()->back();
}
public function activate($id)
{
DB::table('users')->where('id', $id)->update(['status' => 'active']);
return redirect()->back();
}
public function block($id)
{
DB::table('users')->where('id', $id)->update(['status' => 'inactive']);
return redirect()->back();
}
public function appraisers(Request $request)
{
$size = $request->get('size', 20);
$users = DB::table('users')->where('role', 'appraiser')->paginate($size);
$roleStats = DB::table('users')->selectRaw('role, count(*) as cnt')->groupBy('role')->pluck('cnt', 'role');
$statusStats = DB::table('users')->selectRaw('status, count(*) as cnt')->groupBy('status')->pluck('cnt', 'status');
$user = auth()->user();
return view('user.appraisers', compact('users', 'roleStats', 'statusStats', 'user', 'size'));
}
public function appraisersBonus()
{
$users = DB::table('users')->where('role', 'appraiser')->get();
return view('user.appraisers-bonus', compact('users'));
}
public function destroy($id)
{
return redirect()->route('user.index');
}
}