import 'package:flutter/material.dart'; import 'package:get/get.dart'; import '../controllers/users_management_controller.dart'; import 'add_user_view.dart'; class UsersManagementView extends StatelessWidget { const UsersManagementView({super.key}); @override Widget build(BuildContext context) { final controller = Get.put(UsersManagementController()); final isDark = Theme.of(context).brightness == Brightness.dark; return Scaffold( appBar: AppBar( title: const Text('إدارة مستخدمي النظام', style: TextStyle(fontFamily: 'El Messiri')), centerTitle: true, backgroundColor: const Color(0xFF0F4C81), foregroundColor: Colors.white, elevation: 0, actions: [ IconButton( icon: const Icon(Icons.add), onPressed: () { Get.to(() => const AddUserView()); }, ), ], ), body: Obx(() { if (controller.isLoading.value) { return const Center(child: CircularProgressIndicator()); } if (controller.users.isEmpty) { return Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Icon(Icons.people_outline, size: 80, color: Colors.grey.shade400), const SizedBox(height: 16), const Text('لا يوجد موظفين مسجلين', style: TextStyle(fontSize: 18, color: Colors.grey)), ], ), ); } return RefreshIndicator( onRefresh: controller.fetchUsers, child: ListView.builder( padding: const EdgeInsets.all(16), itemCount: controller.users.length, itemBuilder: (context, index) { final user = controller.users[index]; return Card( elevation: 2, margin: const EdgeInsets.only(bottom: 12), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(12)), child: ListTile( leading: CircleAvatar( backgroundColor: const Color(0xFF0F4C81).withValues(alpha: 0.1), child: const Icon(Icons.person, color: Color(0xFF0F4C81)), ), title: Text( user['name'] ?? 'مستخدم', style: const TextStyle(fontWeight: FontWeight.bold), ), trailing: Container( padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4), decoration: BoxDecoration( color: const Color(0xFF10B981).withValues(alpha: 0.1), borderRadius: BorderRadius.circular(6), ), child: Text( user['role'] ?? '', style: const TextStyle( color: Color(0xFF10B981), fontSize: 12), ), ), isThreeLine: user['tenant_name'] != null, subtitle: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text(user['email'] ?? ''), if (user['tenant_name'] != null) ...[ const SizedBox(height: 4), Row( children: [ const Icon(Icons.account_balance, size: 12, color: Colors.grey), const SizedBox(width: 4), Text( user['tenant_name'], style: const TextStyle( fontSize: 12, color: Colors.grey), ), ], ), ], ], ), ), ); }, ), ); }), ); } }