89 lines
2.6 KiB
Dart
89 lines
2.6 KiB
Dart
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 String? pinCode;
|
|
final bool? pinLocked;
|
|
final bool? pinSkip;
|
|
final BluetoothDevice? printerBT;
|
|
final String? printerEncoding;
|
|
final String? printerPaperSize;
|
|
|
|
|
|
SettingState({this.mode, this.tradeType, this.pinCode, this.pinLocked, this.pinSkip, this.printerBT,
|
|
this.printerEncoding,
|
|
this.printerPaperSize});
|
|
|
|
//read hive
|
|
factory SettingState.initial(SettingState? payload) {
|
|
return SettingState(
|
|
mode: payload?.mode ?? SettingModeKassa,
|
|
tradeType: payload?.tradeType ?? SettingTradeTypeGood,
|
|
pinCode: payload?.pinCode ?? null,
|
|
pinLocked: true,
|
|
pinSkip: false,
|
|
printerBT: payload?.printerBT ?? null,
|
|
printerEncoding:
|
|
payload?.printerEncoding ?? SettingPrinterEncodingCp866,
|
|
printerPaperSize: payload?.printerPaperSize ?? SettingPrinterPaperM58
|
|
);
|
|
}
|
|
|
|
//write hive
|
|
SettingState copyWith({
|
|
@required mode,
|
|
@required tradeType,
|
|
@required pinCode,
|
|
@required pinLocked,
|
|
@required pinSkip,
|
|
@required printerBT,
|
|
@required printerEncoding,
|
|
@required printerPaperSize,
|
|
}) {
|
|
return SettingState(
|
|
mode: mode ?? this.mode,
|
|
tradeType: tradeType ?? this.tradeType,
|
|
pinCode: pinCode ?? this.pinCode,
|
|
pinLocked: pinLocked ?? this.pinLocked,
|
|
pinSkip: pinSkip ?? this.pinSkip,
|
|
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'],
|
|
pinCode: json['pinCode'],
|
|
pinLocked: json['pinLocked'],
|
|
pinSkip: json['pinSkip'],
|
|
printerEncoding: json['printerEncoding'],
|
|
printerPaperSize: json['printerPaperSize'],
|
|
printerBT: json['printerBT'] != null
|
|
? BluetoothDevice.fromJson(json['printerBT'])
|
|
: null,
|
|
)
|
|
: null;
|
|
}
|
|
|
|
dynamic toJson() {
|
|
return {
|
|
"tradeType": tradeType,
|
|
"mode": mode,
|
|
"pinCode": pinCode,
|
|
"pinLocked" : pinLocked,
|
|
"pinSkip" : pinSkip,
|
|
"printerBT": printerBT != null ? printerBT!.toJson() : null,
|
|
"printerEncoding": printerEncoding,
|
|
"printerPaperSize": printerPaperSize,
|
|
};
|
|
}
|
|
}
|