Files
eryao/apps/lib/shared/widgets/divination/divination_terms.dart
T

70 lines
2.0 KiB
Dart
Raw Normal View History

2026-04-03 16:56:47 +08:00
import '../../../features/divination/data/models/divination_params.dart';
abstract final class DivinationTerms {
static const yaoNames = ['初爻', '二爻', '三爻', '四爻', '五爻', '上爻'];
static const yaoTypeLabels = {
YaoTypeLabel.youngYang: '少阳',
YaoTypeLabel.youngYin: '少阴',
YaoTypeLabel.oldYang: '老阳',
YaoTypeLabel.oldYin: '老阴',
};
static const yinYang = {true: '', false: ''};
static const wuXing = ['', '', '', '', ''];
static const yuanZhi = '';
static const changeMarkOldYang = '';
static const changeMarkOldYin = '×';
static const signBest = '上上签';
static const signGood = '中上签';
static const signNormal = '中下签';
static const ganZhi = '干支';
static const ganZhiInfo = '干支信息';
static const ganZhiKongWang = '干支空亡';
static const yueJian = '月建';
static const riChen = '日辰';
static const yuePo = '月破';
static const riChong = '日冲';
static const wuXingWangShuai = '五行旺衰';
static const guaXiang = '卦象';
static const yaoXiang = '爻象';
static const qiGua = '起卦';
static const jieGua = '解卦';
}
enum YaoTypeLabel { youngYang, youngYin, oldYang, oldYin }
extension YaoTypeLabelX on YaoType {
String get label {
return switch (this) {
YaoType.youngYang =>
DivinationTerms.yaoTypeLabels[YaoTypeLabel.youngYang]!,
YaoType.youngYin => DivinationTerms.yaoTypeLabels[YaoTypeLabel.youngYin]!,
YaoType.oldYang => DivinationTerms.yaoTypeLabels[YaoTypeLabel.oldYang]!,
YaoType.oldYin => DivinationTerms.yaoTypeLabels[YaoTypeLabel.oldYin]!,
YaoType.undetermined => '',
};
}
String get changeMark {
return switch (this) {
YaoType.oldYang => DivinationTerms.changeMarkOldYang,
YaoType.oldYin => DivinationTerms.changeMarkOldYin,
_ => '',
};
}
bool get isYang {
return switch (this) {
YaoType.youngYang || YaoType.oldYang => true,
_ => false,
};
}
}