tenantId; $users = $this->userModel->findAllByTenant($tenantId); Response::json([ 'success' => true, 'data' => $users ]); } public function detail(Request $request, array $vars): void { $tenantId = $request->tenantId; $userId = $vars['id']; $user = $this->userModel->findById($userId, $tenantId); if (!$user) { Response::error('المستخدم غير موجود', 'NOT_FOUND', 404); return; } Response::json([ 'success' => true, 'data' => $user ]); public function create(Request $request): void { $tenantId = $request->tenantId; $data = $request->getBody(); if (empty($data['email']) || empty($data['password']) || empty($data['name']) || empty($data['role'])) { Response::error('جميع الحقول مطلوبة', 'VALIDATION_ERROR', 422); return; } if ($this->userModel->findByEmail($data['email'])) { Response::error('البريد الإلكتروني مستخدم مسبقاً', 'DUPLICATE_EMAIL', 409); return; } $userId = \Ramsey\Uuid\Uuid::uuid4()->toString(); $this->userModel->create([ 'id' => $userId, 'tenant_id' => $tenantId, 'name' => $data['name'], 'email' => $data['email'], 'password_hash' => password_hash($data['password'], PASSWORD_ARGON2ID), 'role' => $data['role'], 'assigned_company_id' => $data['assigned_company_id'] ?? null, 'is_active' => 1 ]); Response::json([ 'success' => true, 'message' => 'تم إضافة المستخدم بنجاح', 'data' => ['id' => $userId] ], 201); } }