use crate::data::stars::StarKey;
use crate::data::types::*;
pub fn star_name(key: StarKey) -> &'static str {
match key {
StarKey::ZiweiMaj => "Tử Vi",
StarKey::TianjiMaj => "Thiên Cơ",
StarKey::TaiyangMaj => "Thái Dương",
StarKey::WuquMaj => "Vũ Khúc",
StarKey::TiantongMaj => "Thiên Đồng",
StarKey::LianzhenMaj => "Liêm Trinh",
StarKey::TianfuMaj => "Thiên Phủ",
StarKey::TaiyinMaj => "Thái Âm",
StarKey::TanlangMaj => "Tham Lang",
StarKey::JumenMaj => "Cự Môn",
StarKey::TianxiangMaj => "Thiên Tướng",
StarKey::TianliangMaj => "Thiên Lương",
StarKey::QishaMaj => "Thất Sát",
StarKey::PojunMaj => "Phá Quân",
StarKey::ZuofuMin => "Tả Phù",
StarKey::YoubiMin => "Hữu Bật",
StarKey::WenchangMin => "Văn Xương",
StarKey::WenquMin => "Văn Khúc",
StarKey::LucunMin => "Lộc Tồn",
StarKey::TianmaMin => "Thiên Mã",
StarKey::QingyangMin => "Kình Dương",
StarKey::TuoluoMin => "Đà La",
StarKey::HuoxingMin => "Hỏa Tinh",
StarKey::LingxingMin => "Linh Tinh",
StarKey::TiankuiMin => "Thiên Khôi",
StarKey::TianyueMin => "Thiên Việt",
StarKey::DikongMin => "Địa Không",
StarKey::DijieMin => "Địa Kiếp",
StarKey::JieshaAdj => "Kiếp Sát",
StarKey::Tiankong => "Thiên Không",
StarKey::Tianxing => "Thiên Hình",
StarKey::Tianyao => "Thiên Diêu",
StarKey::Jieshen => "Giải Thần",
StarKey::Yinsha => "Âm Sát",
StarKey::Tianxi => "Thiên Hỷ",
StarKey::Tianguan => "Thiên Quan",
StarKey::Tianfu => "Thiên Phúc",
StarKey::Tianku => "Thiên Khốc",
StarKey::Tianxu => "Thiên Hư",
StarKey::Longchi => "Long Trì",
StarKey::Fengge => "Phụng Các",
StarKey::Hongluan => "Hồng Loan",
StarKey::Guchen => "Cô Thần",
StarKey::Guasu => "Quả Tú",
StarKey::Feilian => "Phi Liêm",
StarKey::Posui => "Phá Toái",
StarKey::Taifu => "Đài Phụ",
StarKey::Fenggao => "Phong Cáo",
StarKey::Tianwu => "Thiên Vu",
StarKey::Tianyue2 => "Thiên Nguyệt",
StarKey::Santai => "Tam Thai",
StarKey::Bazuo => "Bát Tọa",
StarKey::Engguang => "Ân Quang",
StarKey::Tiangui => "Thiên Quý",
StarKey::Tiancai => "Thiên Tài",
StarKey::Tianshou => "Thiên Thọ",
StarKey::Jiekong => "Triệt Không",
StarKey::Xunzhong => "Tuần Trung",
StarKey::Xunkong => "Tuần Không",
StarKey::Kongwang => "Không Vong",
StarKey::Jielu => "Triệt Lộ",
StarKey::Yuede => "Nguyệt Đức",
StarKey::Tianshang => "Thiên Thương",
StarKey::Tianshi => "Thiên Sứ",
StarKey::Tianchu => "Thiên Trù",
StarKey::Changsheng => "Trường Sinh",
StarKey::Muyu => "Mục Dục",
StarKey::Guandai => "Quan Đới",
StarKey::Linguan => "Lâm Quan",
StarKey::Diwang => "Đế Vượng",
StarKey::Shuai => "Suy",
StarKey::Bing => "Bệnh",
StarKey::Si => "Tử",
StarKey::Mu => "Mộ",
StarKey::Jue => "Tuyệt",
StarKey::Tai => "Thai",
StarKey::Yang => "Dưỡng",
StarKey::Boshi => "Bác Sỹ",
StarKey::Lishi => "Lực Sỹ",
StarKey::Qinglong => "Thanh Long",
StarKey::Xiaohao => "Tiểu Hao",
StarKey::Jiangjun => "Tướng Quân",
StarKey::Zhoushu => "Tấu Thư",
StarKey::Faylian => "Phi Liêm",
StarKey::Xishen => "Hỷ Thần",
StarKey::Bingfu => "Bệnh Phù",
StarKey::Dahao => "Đại Hao",
StarKey::Suipo => "Tuế Phá",
StarKey::Fubing => "Phục Binh",
StarKey::Guanfu => "Quan Phủ",
StarKey::Suijian => "Tuế Kiện",
StarKey::Huiqi => "Hối Khí",
StarKey::Sangmen => "Tang Môn",
StarKey::Guansuo => "Quán Tác",
StarKey::Gwanfu => "Quan Phù",
StarKey::Longde => "Long Đức",
StarKey::Baihu => "Bạch Hổ",
StarKey::Tiande => "Thiên Đức",
StarKey::Diaoke => "Điếu Khách",
StarKey::Jiangxing => "Tướng Tinh",
StarKey::Panan => "Phan Án",
StarKey::Suiyi => "Tuế Dịch",
StarKey::Xiishen => "Tức Thần",
StarKey::Huagai => "Hoa Cái",
StarKey::Jiesha => "Kiếp Sát",
StarKey::Zhaisha => "Tai Sát",
StarKey::Tiansha => "Thiên Sát",
StarKey::Zhibei => "Chỉ Bối",
StarKey::Xianchi => "Hàm Trì",
StarKey::Yuesha => "Nguyệt Sát",
StarKey::Wangshen => "Vong Thần",
StarKey::Yunkui => "Vận Khôi",
StarKey::Yunyue => "Vận Việt",
StarKey::Yunchang => "Vận Xương",
StarKey::Yunqu => "Vận Khúc",
StarKey::Yunluan => "Vận Loan",
StarKey::Yunxi => "Vận Hỷ",
StarKey::Yunlu => "Vận Lộc",
StarKey::Yunyang => "Vận Dương",
StarKey::Yuntuo => "Vận Đà",
StarKey::Yunma => "Vận Mã",
StarKey::Liukui => "Lưu Khôi",
StarKey::Liuyue => "Lưu Việt",
StarKey::Liuchang => "Lưu Xương",
StarKey::Liuqu => "Lưu Khúc",
StarKey::Liuluan => "Lưu Loan",
StarKey::Liuxi => "Lưu Hỷ",
StarKey::Liulu => "Lưu Lộc",
StarKey::Liuyang => "Lưu Dương",
StarKey::Liutuo => "Lưu Đà",
StarKey::Liuma => "Lưu Mã",
StarKey::Nianjie => "Niên Giải",
StarKey::Yuekui => "Thiên Khôi(M)",
StarKey::Yueyue => "Thiên Nguyệt(M)",
StarKey::Yuechang => "Văn Xương(M)",
StarKey::Yuequ => "Văn Khúc(M)",
StarKey::Yueluan => "Hồng Loan(M)",
StarKey::Yuexi => "Thiên Hỷ(M)",
StarKey::Yuelu => "Lộc Tồn(M)",
StarKey::Yueyang => "Kình Dương(M)",
StarKey::Yuetuo => "Đà La(M)",
StarKey::Yuema => "Thiên Mã(M)",
StarKey::Rikui => "Thiên Khôi(d)",
StarKey::Riyue => "Thiên Nguyệt(d)",
StarKey::Richang => "Văn Xương(d)",
StarKey::Riqu => "Văn Khúc(d)",
StarKey::Riluan => "Hồng Loan(d)",
StarKey::Rixi => "Thiên Hỷ(d)",
StarKey::Rilu => "Lộc Tồn(d)",
StarKey::Riyang => "Kình Dương(d)",
StarKey::Rituo => "Đà La(d)",
StarKey::Rima => "Thiên Mã(d)",
StarKey::Shikui => "Thiên Khôi(H)",
StarKey::Shiyue => "Thiên Nguyệt(H)",
StarKey::Shichang => "Văn Xương(H)",
StarKey::Shiqu => "Văn Khúc(H)",
StarKey::Shiluan => "Hồng Loan(H)",
StarKey::Shixi => "Thiên Hỷ(H)",
StarKey::Shilu => "Lộc Tồn(H)",
StarKey::Shiyang => "Kình Dương(H)",
StarKey::Shituo => "Đà La(H)",
StarKey::Shima => "Thiên Mã(H)",
}
}
pub fn palace_name(palace: Palace) -> &'static str {
match palace {
Palace::Soul => "Mệnh",
Palace::Parents => "Phụ Mẫu",
Palace::Spirit => "Phúc Đức",
Palace::Property => "Điền Trạch",
Palace::Career => "Quan Lộc",
Palace::Friends => "Nô Bộc",
Palace::Surface => "Thiên Di",
Palace::Health => "Tật Ách",
Palace::Wealth => "Tài Bạch",
Palace::Children => "Tử Nữ",
Palace::Spouse => "Phu Thê",
Palace::Siblings => "Huynh Đệ",
}
}
pub fn heavenly_stem_name(stem: HeavenlyStem) -> &'static str {
match stem {
HeavenlyStem::Jia => "Giáp",
HeavenlyStem::Yi => "Ất",
HeavenlyStem::Bing => "Bính",
HeavenlyStem::Ding => "Đinh",
HeavenlyStem::Wu => "Mậu",
HeavenlyStem::Ji => "Kỷ",
HeavenlyStem::Geng => "Canh",
HeavenlyStem::Xin => "Tân",
HeavenlyStem::Ren => "Nhâm",
HeavenlyStem::Gui => "Quý",
}
}
pub fn earthly_branch_name(branch: EarthlyBranch) -> &'static str {
match branch {
EarthlyBranch::Zi => "Tý",
EarthlyBranch::Chou => "Sửu",
EarthlyBranch::Yin => "Dần",
EarthlyBranch::Mao => "Mão",
EarthlyBranch::Chen => "Thìn",
EarthlyBranch::Si => "Tỵ",
EarthlyBranch::Wu => "Ngọ",
EarthlyBranch::Wei => "Mùi",
EarthlyBranch::Shen => "Thân",
EarthlyBranch::You => "Dậu",
EarthlyBranch::Xu => "Tuất",
EarthlyBranch::Hai => "Hợi",
}
}
pub fn brightness_name(b: Brightness) -> &'static str {
match b {
Brightness::Miao => "Miếu",
Brightness::Wang => "Vượng",
Brightness::De => "Đắc",
Brightness::Li => "Lợi",
Brightness::Ping => "Bình",
Brightness::Bu => "Bất",
Brightness::Xian => "Hạn",
}
}
pub fn mutagen_name(m: Mutagen) -> &'static str {
match m {
Mutagen::Lu => "Lộc",
Mutagen::Quan => "Quyền",
Mutagen::Ke => "Khoa",
Mutagen::Ji => "Kỵ",
}
}
pub fn five_elements_class_name(c: FiveElementsClass) -> &'static str {
match c {
FiveElementsClass::Water2nd => "Thủy Nhị Cục",
FiveElementsClass::Wood3rd => "Mộc Tam Cục",
FiveElementsClass::Metal4th => "Kim Tứ Cục",
FiveElementsClass::Earth5th => "Thổ Ngũ Cục",
FiveElementsClass::Fire6th => "Hỏa Lục Cục",
}
}
pub fn gender_name(g: Gender) -> &'static str {
match g {
Gender::Male => "Nam",
Gender::Female => "Nữ",
}
}
const TIME_NAMES: [&str; 13] = [
"Giờ tý sớm",
"Giờ sửu",
"Giờ dần",
"Giờ mão",
"Giờ thìn",
"Giờ tỵ",
"Giờ ngọ",
"Giờ mùi",
"Giờ thân",
"Giờ dậu",
"Giờ tuất",
"Giờ hợi",
"Giờ tý muộn",
];
const SIGN_NAMES: [&str; 12] = [
"Cung Bạch Dương",
"Cung Kim Ngưu",
"Cung Song Tử",
"Cung Cự Giải",
"Cung Sư Tử",
"Cung Xử Nữ",
"Cung Thiên Bình",
"Cung Thiên Yết",
"Cung Xạ Thủ",
"Cung Ma Kết",
"Cung Thủy Bình",
"Cung Song Ngư",
];
const ZODIAC_NAMES: [&str; 12] = [
"Chuột", "Trâu", "Hổ", "Mèo", "Rồng", "Rắn", "Ngựa", "Dê", "Khỉ", "Gà", "Chó", "Lợn",
];
pub fn time_name(time_index: u8) -> &'static str {
TIME_NAMES[time_index as usize]
}
pub fn sign_name(sign_index: usize) -> &'static str {
SIGN_NAMES[sign_index]
}
pub fn zodiac_name(branch: EarthlyBranch) -> &'static str {
ZODIAC_NAMES[branch.index()]
}
pub fn horoscope_name(n: HoroscopeName) -> &'static str {
match n {
HoroscopeName::Decadal => "Đại Hạn",
HoroscopeName::Childhood => "đứa trẻ Hạn",
HoroscopeName::Age => "Tiểu Hạn",
HoroscopeName::Yearly => "Lưu Niên",
HoroscopeName::Monthly => "Lưu Nguyệt",
HoroscopeName::Daily => "Lưu Nhật",
HoroscopeName::Hourly => "Lưu Thì",
}
}