using CloudBuilder.Core.Authorization;
namespace CloudBuilder.Master.Data
{
///
/// 族谱「统计」tab 的聚合数据:总数/男/女/世代层数 + 各世代人数分布。
/// 后端单次遍历算完(族员表 + 亲子边表 + 始祖 BFS),避免前端拉全表再算;
/// 世代 = 始祖起 BFS 深度(始祖=1 世),未连到始祖的旁支不入世代桶,只计入 Total。
///
[TypeScript]
public class FamilyTreeStatisticsData
{
/// 入树成员总数(family_person 按 TreeId 过滤后的行数)
public int Total { get; set; }
/// 男性族员数(Gender=M)
public int Male { get; set; }
/// 女性族员数(Gender=W,GenderPolicy 里女= W 而非 F)
public int Female { get; set; }
/// 世代层数(本谱出现过的最大世代号;空谱为 0)
public int GenerationCount { get; set; }
/// 各世代人数分布(按世代升序;空档世代也占位,图表柱不连续)
public FamilyTreeGenerationCountData[] PerGeneration { get; set; } = [];
}
/// 单个世代的人数条目(世代号 + 该世代族员数)
[TypeScript]
public class FamilyTreeGenerationCountData
{
public int Generation { get; set; }
public int Count { get; set; }
}
}