src/data/types/palace.ts
import { IFunctionalPalace } from '../../astro/FunctionalPalace';
import { EarthlyBranchName, HeavenlyStemName, PalaceName, StarName } from '../../i18n';
import FunctionalStar from '../../star/FunctionalStar';
import { Decadal } from './astro';
/**
* 命宫、身宫对象
*
* @property
* - soulIndex 命宫索引
* - bodyIndex 身宫索引
* - heavenlyStemOfSoul 命宫天干
* - earthlyBranchOfSoul 命宫地支
*/
export type SoulAndBody = {
/** 命宫索引 */
soulIndex: number;
/** 身宫索引 */
bodyIndex: number;
/** 命宫天干 */
heavenlyStemOfSoul: HeavenlyStemName;
/** 命宫地支 */
earthlyBranchOfSoul: EarthlyBranchName;
};
/**
* 宫位对象
*
* @property
* - name 宫位名称
* - isBodyPalace 是否身宫
* - isOriginalPalace 是否来因宫
* - heavenlyStem 宫位天干
* - earthlyBranch 宫位地支
* - majorStars 主星
* - minorStars 辅星
* - adjectiveStars 杂耀
* - changsheng12 长生12神之一
* - boshi12 博士12神之一
* - jiangqian12 将前12神之一
* - suiqian12 岁前12神之一
* - decadal 大限
* - ages 小限
*/
export type Palace = {
/** 宫位索引 */
index: number;
/** 宫位名称 */
name: PalaceName;
/** 是否身宫 */
isBodyPalace: boolean;
/** 是否来因宫 */
isOriginalPalace: boolean;
/** 宫位天干 */
heavenlyStem: HeavenlyStemName;
/** 宫位地支 */
earthlyBranch: EarthlyBranchName;
/** 主星 */
majorStars: FunctionalStar[];
/** 辅星 */
minorStars: FunctionalStar[];
/** 杂耀 */
adjectiveStars: FunctionalStar[];
/** 长生12神 */
changsheng12: StarName;
/** 博士12神 */
boshi12: StarName;
/** 流年将前12神 */
jiangqian12: StarName;
/** 流年岁前12神 */
suiqian12: StarName;
/** 大限 */
decadal: Decadal;
/** 小限 */
ages: number[];
};
/**
* 三方四正宫位
*
* @property
* - target 目标宫位
* - career 三方位(官禄位)
* - opposite 对宫
* - wealth 三方位(财帛位)
*/
export type SurroundedPalaces = {
/** 本宫 */
target: IFunctionalPalace;
/** 对宫 */
opposite: IFunctionalPalace;
/** 财帛位 */
wealth: IFunctionalPalace;
/** 官禄位 */
career: IFunctionalPalace;
};