Update: 2026-08-03 13:22:27

This commit is contained in:
Hamza-Ayed
2026-08-03 13:22:27 +03:00
parent b60129d246
commit 79333a4bee
10 changed files with 140 additions and 16 deletions
+5
View File
@@ -413,6 +413,11 @@ class AppLink {
static String withdrawalRequests =
"$paymentServerV2/ride/driverPayment/withdrawal_requests.php";
// تقارير الذكاء الاجتماعي — نقطة إدارية بديلة عن
// marketing_engine/index.php (نقطة البوت المحميّة بـ X-Bot-Token)
static String get socialReports =>
"$server/Admin/marketing/get_social_reports.php";
// وحدة الطعام — الباك إند جاهز في backend/food/admin/ ولا واجهة له
static String get foodMerchants => "$server/food/admin/merchants.php";
static String get foodMerchantApprove =>
@@ -17,7 +17,6 @@ class DriverDetailsPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
final cs = Theme.of(context).colorScheme;
controller.getDriverDetails(driverId);
return Scaffold(
@@ -14,7 +14,6 @@ class RegisterCaptain extends StatelessWidget {
@override
Widget build(BuildContext context) {
final cs = Theme.of(context).colorScheme;
final controller = Get.put(RegisterCaptainController());
// String text = '';
controller.driveInit();
@@ -1,4 +1,3 @@
import 'package:siro_admin/constant/theme.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart'; // For Get.width if needed, and .tr
import 'package:siro_admin/constant/colors.dart'; // Assuming AppColor is here
@@ -1,9 +1,10 @@
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:http/http.dart' as http;
import 'package:flutter_widget_from_html_core/flutter_widget_from_html_core.dart';
import '../../../constant/links.dart';
import '../../../controller/functions/crud.dart';
import '../../widgets/snackbar.dart';
class SocialIntelligenceController extends GetxController {
var isLoading = true.obs;
@@ -18,18 +19,32 @@ class SocialIntelligenceController extends GetxController {
Future<void> fetchReports() async {
try {
isLoading(true);
final url = Uri.parse(
'${AppLink.server}/marketing_engine/index.php?action=get_reports');
final response = await http.get(url);
if (response.statusCode == 200) {
final data = json.decode(response.body);
if (data['status'] == 'success') {
reports.value = data['data'] ?? [];
}
// كانت تستدعي marketing_engine/index.php?action=get_reports بـ
// http.get الخام: نقطة بوت محميّة بـ X-Bot-Token، بلا JWT ولا
// X-Device-FP، فترجع 401 بعد تفعيل مصادقة البوت. النقطة الإدارية
// البديلة تمرّ عبر CRUD فتحمل التوكن وبصمة الجهاز.
final res =
await CRUD().get(link: AppLink.socialReports, payload: {});
if (res == 'failure' || res == null) {
mySnackbarError('تعذّر الاتصال بخادم التقارير');
reports.value = [];
return;
}
final data = res is String ? json.decode(res) : res;
if (data['status'] == 'success') {
// jsonSuccess يغلّف الحمولة في message لا data
final payload = data['message'] ?? data['data'];
reports.value = payload is List ? payload : [];
} else {
mySnackbarError('${data['message'] ?? 'تعذّر جلب التقارير'}');
reports.value = [];
}
} catch (e) {
print('Error fetching reports: $e');
mySnackbarError('$e');
reports.value = [];
} finally {
isLoading(false);
}
@@ -651,7 +651,6 @@ class _LegendDot extends StatelessWidget {
@override
Widget build(BuildContext context) {
final cs = Theme.of(context).colorScheme;
return Row(
mainAxisSize: MainAxisSize.min,
children: [
@@ -1,4 +1,3 @@
import 'package:siro_admin/constant/theme.dart';
import 'dart:convert';
import 'dart:io';
import 'package:flutter/material.dart';
@@ -1,4 +1,3 @@
import 'package:siro_admin/constant/theme.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:get/get.dart';