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; } } }