import 'package:aman_kassa_flutter/redux/constants/setting_const.dart'; import 'package:meta/meta.dart'; import 'package:flutter_bluetooth_basic/src/bluetooth_device.dart'; @immutable class SettingState { final String mode; final String tradeType; final BluetoothDevice printerBT; final String printerEncoding; final String printerPaperSize; SettingState( {this.mode, this.tradeType, this.printerBT, this.printerEncoding, this.printerPaperSize}); //read hive factory SettingState.initial(SettingState payload) { return SettingState( mode: payload?.mode ?? SettingModeKassa, tradeType: payload?.tradeType ?? SettingTradeTypeGood, printerBT: payload?.printerBT ?? null, printerEncoding: payload?.printerEncoding ?? SettingPrinterEncodingCp866, printerPaperSize: payload?.printerPaperSize ?? SettingPrinterPaperM58); } //write hive SettingState copyWith({ @required mode, @required tradeType, @required printerBT, @required printerEncoding, @required printerPaperSize, }) { return SettingState( mode: mode ?? this.mode, tradeType: tradeType ?? this.tradeType, printerBT: printerBT ?? this.printerBT, printerEncoding: printerEncoding ?? this.printerEncoding, printerPaperSize: printerPaperSize ?? this.printerPaperSize); } static SettingState fromJson(dynamic json) { return json != null ? SettingState( tradeType: json['tradeType'], mode: json['mode'], printerEncoding: json['printerEncoding'], printerPaperSize: json['printerPaperSize'], printerBT: json['printerBT'] != null ? BluetoothDevice.fromJson(json['printerBT']) : null, ) : null; } dynamic toJson() { return { "tradeType": tradeType, "mode": mode, "printerBT": printerBT != null ? printerBT.toJson() : null, "printerEncoding": printerEncoding, "printerPaperSize": printerPaperSize, }; } }