import 'package:flutter/material.dart'; import 'package:get/get.dart'; import '../controllers/add_company_controller.dart'; class AddCompanyView extends StatelessWidget { const AddCompanyView({super.key}); @override Widget build(BuildContext context) { final controller = Get.put(AddCompanyController()); 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, ), body: SingleChildScrollView( padding: const EdgeInsets.all(24), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ const Text( 'بيانات الشركة الأساسية', style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold), ), const SizedBox(height: 24), _buildTextField( controller: controller.nameController, label: 'اسم الشركة', icon: Icons.business, isDark: isDark, ), const SizedBox(height: 16), _buildTextField( controller: controller.tinController, label: 'الرقم الضريبي', icon: Icons.numbers, keyboardType: TextInputType.number, isDark: isDark, ), const SizedBox(height: 16), _buildTextField( controller: controller.crnController, label: 'رقم السجل التجاري (اختياري)', icon: Icons.article, keyboardType: TextInputType.number, isDark: isDark, ), Obx(() { if (controller.isSuperAdmin.value) { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ const SizedBox(height: 16), const Text('المكتب المحاسبي التابعة له', style: TextStyle(fontWeight: FontWeight.bold)), const SizedBox(height: 8), if (controller.isLoadingTenants.value) const CircularProgressIndicator() else Container( padding: const EdgeInsets.symmetric(horizontal: 12), decoration: BoxDecoration( color: isDark ? Colors.white.withValues(alpha: 0.05) : Colors.white, borderRadius: BorderRadius.circular(12), border: Border.all(color: isDark ? Colors.white24 : Colors.grey.shade300), ), child: DropdownButtonHideUnderline( child: DropdownButton( value: controller.selectedTenantId.value, isExpanded: true, dropdownColor: isDark ? const Color(0xFF1E1E2E) : Colors.white, items: controller.tenants.map((tenant) { return DropdownMenuItem( value: tenant['id'], child: Text(tenant['name'] ?? 'مكتب غير معروف'), ); }).toList(), onChanged: (val) { if (val != null) controller.selectedTenantId.value = val; }, ), ), ), ], ); } return const SizedBox.shrink(); }), const SizedBox(height: 40), SizedBox( width: double.infinity, height: 54, child: Obx( () => ElevatedButton( onPressed: controller.isSubmitting.value ? null : controller.submit, style: ElevatedButton.styleFrom( backgroundColor: const Color(0xFF0F4C81), shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(14)), ), child: controller.isSubmitting.value ? const CircularProgressIndicator(color: Colors.white) : const Text( 'حفظ وإضافة', style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold, color: Colors.white), ), ), ), ), ], ), ), ); } Widget _buildTextField({ required TextEditingController controller, required String label, required IconData icon, TextInputType? keyboardType, required bool isDark, }) { return TextField( controller: controller, keyboardType: keyboardType, decoration: InputDecoration( labelText: label, prefixIcon: Icon(icon, color: const Color(0xFF0F4C81)), border: OutlineInputBorder( borderRadius: BorderRadius.circular(12), borderSide: BorderSide(color: isDark ? Colors.white24 : Colors.grey.shade300), ), enabledBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(12), borderSide: BorderSide(color: isDark ? Colors.white24 : Colors.grey.shade300), ), focusedBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(12), borderSide: const BorderSide(color: Color(0xFF0F4C81), width: 2), ), filled: true, fillColor: isDark ? Colors.white.withValues(alpha: 0.05) : Colors.white, ), ); } }