import 'package:get/get.dart'; class FikoytParameter { final String name; dynamic _arguments; // private variable for arguments final dynamic defaultArguments; // Varsayılan argümanlar String? category; // Event için kategori // Bu harita, eventlerin adlarını ve bunlara karşılık gelen event nesnelerini tutacak. static final Map _eventCache = {}; // Factory constructor factory FikoytParameter( String name, { dynamic initialValue, }) { // Eğer aynı isimde bir event zaten varsa, onu döndür if (_eventCache.containsKey(name)) { return _eventCache[name]! as FikoytParameter; } // Yeni event oluşturuluyorsa, eventCache'e ekle final newEvent = FikoytParameter._internal( name, initialValue: initialValue, ); _eventCache[name] = newEvent; return newEvent; } // Özel constructor FikoytParameter._internal( this.name, { this.category, dynamic arguments = const {}, this.defaultArguments = const {}, dynamic initialValue, }) : _arguments = arguments { if (initialValue is Function) { _value = Rx(initialValue()); } else { _value = Rx(initialValue ?? null as T); } } // Değeri Valuesi late final Rx _value; // Rx olarak değer tipi belirtiliyor. // Getter for value Rx get $value => _value; T get value => _value.value; // Setter for value set value(T newValue) { _value.value = newValue; _value.refresh(); // Değer değiştikçe yenileme } }