87 lines
2.1 KiB
TypeScript
87 lines
2.1 KiB
TypeScript
import type { FamilyMember, FamilyTreeData } from "@/types/family"
|
|
|
|
// Helper to create a member quickly
|
|
const createMember = (
|
|
id: string,
|
|
name: string,
|
|
gender: "male" | "female",
|
|
generation: number,
|
|
props: Partial<FamilyMember> = {},
|
|
): FamilyMember => {
|
|
const surname = "李"
|
|
return {
|
|
id,
|
|
surname,
|
|
givenName: name,
|
|
fullName: surname + name,
|
|
gender,
|
|
generation,
|
|
spouseIds: [],
|
|
childrenIds: [],
|
|
createdAt: new Date().toISOString(),
|
|
updatedAt: new Date().toISOString(),
|
|
...props,
|
|
}
|
|
}
|
|
|
|
const members: Record<string, FamilyMember> = {
|
|
"1": createMember("1", "文德", "male", 1, {
|
|
courtesyName: "博远",
|
|
ancestralHome: "陇西",
|
|
bio: "李氏入闽始祖,洪武年间迁居福建。",
|
|
tags: ["始祖", "进士"],
|
|
birthDate: "1350-01-01",
|
|
deathDate: "1410-05-20",
|
|
}),
|
|
"2": createMember("2", "氏(王)", "female", 1, {
|
|
fullName: "王氏",
|
|
surname: "王",
|
|
givenName: "氏",
|
|
spouseIds: ["1"],
|
|
}),
|
|
// Generation 2
|
|
"3": createMember("3", "世昌", "male", 2, {
|
|
fatherId: "1",
|
|
motherId: "2",
|
|
courtesyName: "继业",
|
|
}),
|
|
"4": createMember("4", "世盛", "male", 2, {
|
|
fatherId: "1",
|
|
motherId: "2",
|
|
courtesyName: "继荣",
|
|
}),
|
|
// Generation 3
|
|
"5": createMember("5", "宗仁", "male", 3, {
|
|
fatherId: "3",
|
|
generationName: "宗",
|
|
}),
|
|
"6": createMember("6", "宗义", "male", 3, {
|
|
fatherId: "3",
|
|
generationName: "宗",
|
|
}),
|
|
// Generation 24 (Modern)
|
|
"100": createMember("100", "建国", "male", 23, {
|
|
generationName: "建",
|
|
}),
|
|
"101": createMember("101", "明远", "male", 24, {
|
|
fatherId: "100",
|
|
generationName: "明",
|
|
birthDate: "1985-06-15",
|
|
tags: ["户主"],
|
|
}),
|
|
"102": createMember("102", "子豪", "male", 25, {
|
|
fatherId: "101",
|
|
birthDate: "2015-09-01",
|
|
}),
|
|
}
|
|
|
|
// Link relationships bi-directionally for the mock data
|
|
members["1"].spouseIds = ["2"]
|
|
members["1"].childrenIds = ["3", "4"]
|
|
members["3"].childrenIds = ["5", "6"]
|
|
|
|
export const mockFamilyData: FamilyTreeData = {
|
|
members,
|
|
rootId: "1",
|
|
}
|