import 'package:flutter/material.dart'; import '../../data/models/chatbot_rule_model.dart'; class ChatbotView extends StatelessWidget { final List rules; const ChatbotView({ super.key, required this.rules, }); @override Widget build(BuildContext context) { return Padding( padding: const EdgeInsets.all(20.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ const Text( '🤖 قواعد الرد الآلي للدردشة', style: TextStyle(color: Colors.white, fontSize: 20, fontWeight: FontWeight.bold), ), const SizedBox(height: 8), const Text( 'إدارة قواعد الذكاء الاصطناعي والكلمات المفتاحية المخصصة لتلقي ومعالجة المحادثات الواردة.', style: TextStyle(color: Colors.white60, fontSize: 13), ), const SizedBox(height: 24), // English: Render list of chatbot rule cards. // Arabic: عرض قائمة ببطاقات قواعد روبوت الدردشة المكونة. if (rules.isEmpty) const Center( child: Padding( padding: EdgeInsets.symmetric(vertical: 40.0), child: Text( 'لم يتم تكوين قواعد رد آلي بعد.', style: TextStyle(color: Colors.white70), ), ), ) else ListView.builder( shrinkWrap: true, physics: const NeverScrollableScrollPhysics(), itemCount: rules.length, itemBuilder: (context, index) { final rule = rules[index]; return Container( margin: const EdgeInsets.only(bottom: 16), padding: const EdgeInsets.all(16), decoration: BoxDecoration( color: const Color(0xFF15102A), borderRadius: BorderRadius.circular(16), border: Border.all(color: Colors.white.withOpacity(0.05)), ), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ _buildTriggerBadge(rule.triggerType), _buildStatusBadge(rule.isActive), ], ), const Divider(color: Colors.white10, height: 24), if (rule.triggerType == 'keyword' && rule.keyword != null) ...[ const Text( 'الكلمة المفتاحية للمشغل:', style: TextStyle(color: Colors.white70, fontSize: 12), ), const SizedBox(height: 4), Text( rule.keyword!, style: const TextStyle(color: Colors.white, fontSize: 14, fontWeight: FontWeight.bold), ), const SizedBox(height: 12), ], const Text( 'رد الروبوت أو تعليمات موجه الذكاء الاصطناعي (AI Prompt):', style: TextStyle(color: Colors.white70, fontSize: 12), ), const SizedBox(height: 4), Text( rule.aiPrompt ?? 'لا توجد تعليمات', style: TextStyle(color: Colors.white.withOpacity(0.8), fontSize: 13, height: 1.4), ), ], ), ); }, ), ], ), ); } Widget _buildTriggerBadge(String type) { final isAi = type == 'gemini_ai'; return Container( padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 4), decoration: BoxDecoration( color: isAi ? Colors.purpleAccent.withOpacity(0.2) : Colors.blue.withOpacity(0.2), borderRadius: BorderRadius.circular(8), border: Border.all(color: isAi ? Colors.purpleAccent : Colors.blue), ), child: Text( isAi ? '🧠 ذكاء اصطناعي (Gemini)' : '⌨️ كلمات مفتاحية', style: TextStyle(color: isAi ? Colors.purpleAccent : Colors.blue, fontSize: 11, fontWeight: FontWeight.bold), ), ); } Widget _buildStatusBadge(bool isActive) { return Container( padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4), decoration: BoxDecoration( color: isActive ? Colors.green.withOpacity(0.2) : Colors.grey.withOpacity(0.2), borderRadius: BorderRadius.circular(8), border: Border.all(color: isActive ? Colors.green : Colors.grey), ), child: Text( isActive ? 'نشط' : 'غير نشط', style: TextStyle(color: isActive ? Colors.green : Colors.grey, fontSize: 10, fontWeight: FontWeight.bold), ), ); } }