prepare($query); $stmt->execute($params); $company = $stmt->fetch(); if (!$company) json_error('الشركة غير موجودة', 404); $fields = []; $values = []; if (isset($data['name'])) { $fields[] = 'name = ?'; $values[] = Encryption::encrypt($data['name']); } if (isset($data['name_en'])) { $fields[] = 'name_en = ?'; $values[] = !empty($data['name_en']) ? Encryption::encrypt($data['name_en']) : null; } if (isset($data['tax_identification_number'])) { $fields[] = 'tax_identification_number = ?'; $values[] = $data['tax_identification_number']; } if (isset($data['commercial_registration_number'])) { $fields[] = 'commercial_registration_number = ?'; $values[] = $data['commercial_registration_number']; } if (isset($data['address'])) { $fields[] = 'address = ?'; $values[] = $data['address']; } if (isset($data['city'])) { $fields[] = 'city = ?'; $values[] = $data['city']; } if (isset($data['contact_email'])) { $fields[] = 'contact_email = ?'; $values[] = $data['contact_email']; } if (isset($data['contact_phone'])) { $fields[] = 'contact_phone = ?'; $values[] = $data['contact_phone']; } if (empty($fields)) json_error('لا توجد بيانات للتحديث', 422); $fields[] = 'updated_at = NOW()'; $values[] = $id; $sql = "UPDATE companies SET " . implode(', ', $fields) . " WHERE id = ?"; $db->prepare($sql)->execute($values); AuditLogger::log('company.updated', 'company', $id, null, ['fields' => array_keys($data)], $decoded); json_success(null, 'تم تحديث بيانات الشركة بنجاح');