feat: 新增追问模式和iOS本地化,重构后端输出模型
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
import 'divination_params.dart';
|
||||
|
||||
enum DivinationRunStatus { success, failed, refused }
|
||||
|
||||
class DivinationResultData {
|
||||
const DivinationResultData({
|
||||
this.threadId,
|
||||
@@ -20,6 +22,7 @@ class DivinationResultData {
|
||||
required this.wuXingStatus,
|
||||
required this.yaoLines,
|
||||
required this.targetYaoLines,
|
||||
this.status = DivinationRunStatus.success,
|
||||
});
|
||||
|
||||
final DivinationParams params;
|
||||
@@ -40,8 +43,10 @@ class DivinationResultData {
|
||||
final Map<String, String> wuXingStatus;
|
||||
final List<YaoLineData> yaoLines;
|
||||
final List<YaoLineData> targetYaoLines;
|
||||
final DivinationRunStatus status;
|
||||
|
||||
bool get hasChangingYao => binaryCode != changedBinaryCode;
|
||||
bool get isSuccess => status == DivinationRunStatus.success;
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
return <String, dynamic>{
|
||||
@@ -65,6 +70,7 @@ class DivinationResultData {
|
||||
'targetYaoLines': targetYaoLines
|
||||
.map((line) => line.toJson())
|
||||
.toList(growable: false),
|
||||
'status': status.name,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -117,8 +123,21 @@ class DivinationResultData {
|
||||
return YaoLineData.fromJson(raw);
|
||||
})
|
||||
.toList(growable: false),
|
||||
status: _parseStatus(json['status']),
|
||||
);
|
||||
}
|
||||
|
||||
static DivinationRunStatus _parseStatus(Object? value) {
|
||||
if (value is! String) {
|
||||
return DivinationRunStatus.success;
|
||||
}
|
||||
return switch (value) {
|
||||
'success' => DivinationRunStatus.success,
|
||||
'failed' => DivinationRunStatus.failed,
|
||||
'refused' => DivinationRunStatus.refused,
|
||||
_ => DivinationRunStatus.success,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
List<String> _requiredStringList(Map<String, dynamic> json, String key) {
|
||||
|
||||
Reference in New Issue
Block a user