1469 lines
39 KiB
TypeScript
1469 lines
39 KiB
TypeScript
import { PrismaClient } from '@prisma/client'
|
|
import bcrypt from 'bcryptjs'
|
|
|
|
const prisma = new PrismaClient()
|
|
|
|
async function main() {
|
|
console.log('开始清理数据库...')
|
|
|
|
// 清理所有数据
|
|
await prisma.activityLog.deleteMany()
|
|
await prisma.familyMember.deleteMany()
|
|
await prisma.treeCollaborator.deleteMany()
|
|
await prisma.familyTree.deleteMany()
|
|
await prisma.user.deleteMany()
|
|
|
|
console.log('数据库清理完成')
|
|
console.log('开始创建测试用户和家族树...')
|
|
|
|
// 创建管理员账号
|
|
const adminHashedPassword = await bcrypt.hash('why701208', 10)
|
|
const adminUser = await prisma.user.create({
|
|
data: {
|
|
email: 'freedak@163.com',
|
|
name: '管理员',
|
|
password: adminHashedPassword,
|
|
isAdmin: true,
|
|
},
|
|
})
|
|
console.log('✓ 创建管理员账号: freedak@163.com')
|
|
|
|
// 创建用户1: 王先生
|
|
const hashedPassword1 = await bcrypt.hash('123456', 10)
|
|
const user1 = await prisma.user.create({
|
|
data: {
|
|
email: 'wang@example.com',
|
|
name: '王先生',
|
|
password: hashedPassword1,
|
|
},
|
|
})
|
|
console.log('✓ 创建用户: 王先生')
|
|
|
|
// 创建用户2: 虞女士
|
|
const hashedPassword2 = await bcrypt.hash('123456', 10)
|
|
const user2 = await prisma.user.create({
|
|
data: {
|
|
email: 'yu@example.com',
|
|
name: '虞女士',
|
|
password: hashedPassword2,
|
|
},
|
|
})
|
|
console.log('✓ 创建用户: 虞女士')
|
|
|
|
// 为王先生创建家族树
|
|
const wangTree = await prisma.familyTree.create({
|
|
data: {
|
|
name: '王氏家族',
|
|
description: '王氏家族世系谱',
|
|
ownerId: user1.id,
|
|
},
|
|
})
|
|
console.log('✓ 创建家族树: 王氏家族')
|
|
|
|
// 王氏家族成员
|
|
// 第一代 - 始祖
|
|
const wang1 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: wangTree.id,
|
|
surname: '王',
|
|
givenName: '德厚',
|
|
fullName: '王德厚',
|
|
gender: 'MALE',
|
|
generation: 1,
|
|
generationName: '德',
|
|
isFounder: true,
|
|
birthDate: '1880-03-15',
|
|
deathDate: '1955-08-20',
|
|
ancestralHome: '山东省济南市',
|
|
birthPlace: '山东省济南市历城区',
|
|
bio: '王氏家族始祖,清末秀才,以教书为业。',
|
|
tags: ['教书先生'],
|
|
},
|
|
})
|
|
|
|
const wang1Wife = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: wangTree.id,
|
|
surname: '李',
|
|
givenName: '秀英',
|
|
fullName: '李秀英',
|
|
gender: 'FEMALE',
|
|
generation: 1,
|
|
birthDate: '1882-05-10',
|
|
deathDate: '1960-12-05',
|
|
ancestralHome: '山东省济南市',
|
|
birthPlace: '山东省济南市天桥区',
|
|
spouseIds: [wang1.id],
|
|
bio: '贤妻良母,持家有道。',
|
|
},
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: wang1.id },
|
|
data: { spouseIds: [wang1Wife.id] },
|
|
})
|
|
|
|
// 第二代
|
|
const wang2_1 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: wangTree.id,
|
|
surname: '王',
|
|
givenName: '建国',
|
|
fullName: '王建国',
|
|
gender: 'MALE',
|
|
generation: 2,
|
|
generationName: '建',
|
|
birthDate: '1910-01-20',
|
|
deathDate: '1985-06-15',
|
|
ancestralHome: '山东省济南市',
|
|
birthPlace: '山东省济南市历城区',
|
|
fatherId: wang1.id,
|
|
motherId: wang1Wife.id,
|
|
bio: '参加过抗日战争,新中国成立后在政府部门工作。',
|
|
tags: ['抗战老兵', '公务员'],
|
|
},
|
|
})
|
|
|
|
const wang2_1Wife = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: wangTree.id,
|
|
surname: '张',
|
|
givenName: '淑贞',
|
|
fullName: '张淑贞',
|
|
gender: 'FEMALE',
|
|
generation: 2,
|
|
birthDate: '1915-07-08',
|
|
deathDate: '1990-03-22',
|
|
ancestralHome: '山东省青岛市',
|
|
birthPlace: '山东省青岛市市南区',
|
|
spouseIds: [wang2_1.id],
|
|
bio: '小学教师,教书育人三十载。',
|
|
},
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: wang2_1.id },
|
|
data: {
|
|
spouseIds: [wang2_1Wife.id],
|
|
childrenIds: [],
|
|
},
|
|
})
|
|
|
|
const wang2_2 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: wangTree.id,
|
|
surname: '王',
|
|
givenName: '建华',
|
|
fullName: '王建华',
|
|
gender: 'MALE',
|
|
generation: 2,
|
|
generationName: '建',
|
|
birthDate: '1918-11-12',
|
|
deathDate: '1995-09-08',
|
|
ancestralHome: '山东省济南市',
|
|
birthPlace: '山东省济南市历城区',
|
|
fatherId: wang1.id,
|
|
motherId: wang1Wife.id,
|
|
bio: '医生,在济南市立医院工作。',
|
|
tags: ['医生'],
|
|
},
|
|
})
|
|
|
|
const wang2_2Wife = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: wangTree.id,
|
|
surname: '赵',
|
|
givenName: '玉兰',
|
|
fullName: '赵玉兰',
|
|
gender: 'FEMALE',
|
|
generation: 2,
|
|
birthDate: '1920-03-25',
|
|
deathDate: '1998-11-15',
|
|
ancestralHome: '河北省石家庄市',
|
|
birthPlace: '河北省石家庄市长安区',
|
|
spouseIds: [wang2_2.id],
|
|
bio: '护士,与丈夫在同一医院工作。',
|
|
},
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: wang2_2.id },
|
|
data: { spouseIds: [wang2_2Wife.id] },
|
|
})
|
|
|
|
const wang2_3 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: wangTree.id,
|
|
surname: '王',
|
|
givenName: '建英',
|
|
fullName: '王建英',
|
|
gender: 'FEMALE',
|
|
generation: 2,
|
|
generationName: '建',
|
|
birthDate: '1922-06-18',
|
|
deathDate: '2005-02-10',
|
|
ancestralHome: '山东省济南市',
|
|
birthPlace: '山东省济南市历城区',
|
|
fatherId: wang1.id,
|
|
motherId: wang1Wife.id,
|
|
bio: '纺织女工,勤劳朴实。',
|
|
tags: ['工人'],
|
|
},
|
|
})
|
|
|
|
// 更新第一代的子女关系
|
|
await prisma.familyMember.update({
|
|
where: { id: wang1.id },
|
|
data: { childrenIds: [wang2_1.id, wang2_2.id, wang2_3.id] },
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: wang1Wife.id },
|
|
data: { childrenIds: [wang2_1.id, wang2_2.id, wang2_3.id] },
|
|
})
|
|
|
|
// 第三代
|
|
const wang3_1 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: wangTree.id,
|
|
surname: '王',
|
|
givenName: '明',
|
|
fullName: '王明',
|
|
gender: 'MALE',
|
|
generation: 3,
|
|
generationName: '明',
|
|
birthDate: '1945-04-18',
|
|
ancestralHome: '山东省济南市',
|
|
birthPlace: '山东省济南市历下区',
|
|
fatherId: wang2_1.id,
|
|
motherId: wang2_1Wife.id,
|
|
phone: '13800138001',
|
|
email: 'wangming@example.com',
|
|
address: '山东省济南市历下区解放路123号',
|
|
bio: '工程师,从事机械制造行业。',
|
|
tags: ['工程师', '在世'],
|
|
},
|
|
})
|
|
|
|
const wang3_1Wife = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: wangTree.id,
|
|
surname: '刘',
|
|
givenName: '芳',
|
|
fullName: '刘芳',
|
|
gender: 'FEMALE',
|
|
generation: 3,
|
|
birthDate: '1948-08-25',
|
|
ancestralHome: '河北省石家庄市',
|
|
birthPlace: '河北省石家庄市长安区',
|
|
spouseIds: [wang3_1.id],
|
|
phone: '13800138002',
|
|
bio: '会计师,已退休。',
|
|
},
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: wang3_1.id },
|
|
data: { spouseIds: [wang3_1Wife.id] },
|
|
})
|
|
|
|
// 第三代 - 更多子女
|
|
const wang3_2 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: wangTree.id,
|
|
surname: '王',
|
|
givenName: '亮',
|
|
fullName: '王亮',
|
|
gender: 'MALE',
|
|
generation: 3,
|
|
generationName: '明',
|
|
birthDate: '1950-09-12',
|
|
ancestralHome: '山东省济南市',
|
|
birthPlace: '山东省济南市历下区',
|
|
fatherId: wang2_1.id,
|
|
motherId: wang2_1Wife.id,
|
|
phone: '13800138003',
|
|
bio: '教师,在中学任教。',
|
|
tags: ['教师', '在世'],
|
|
},
|
|
})
|
|
|
|
const wang3_3 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: wangTree.id,
|
|
surname: '王',
|
|
givenName: '强',
|
|
fullName: '王强',
|
|
gender: 'MALE',
|
|
generation: 3,
|
|
generationName: '明',
|
|
birthDate: '1952-02-28',
|
|
ancestralHome: '山东省济南市',
|
|
birthPlace: '山东省济南市历城区',
|
|
fatherId: wang2_2.id,
|
|
motherId: wang2_2Wife.id,
|
|
phone: '13800138004',
|
|
bio: '医生,继承父业。',
|
|
tags: ['医生', '在世'],
|
|
},
|
|
})
|
|
|
|
const wang3_3Wife = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: wangTree.id,
|
|
surname: '孙',
|
|
givenName: '丽',
|
|
fullName: '孙丽',
|
|
gender: 'FEMALE',
|
|
generation: 3,
|
|
birthDate: '1955-11-05',
|
|
ancestralHome: '江苏省南京市',
|
|
birthPlace: '江苏省南京市玄武区',
|
|
spouseIds: [wang3_3.id],
|
|
phone: '13800138005',
|
|
bio: '药剂师。',
|
|
},
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: wang3_3.id },
|
|
data: { spouseIds: [wang3_3Wife.id] },
|
|
})
|
|
|
|
const wang3_4 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: wangTree.id,
|
|
surname: '王',
|
|
givenName: '丽',
|
|
fullName: '王丽',
|
|
gender: 'FEMALE',
|
|
generation: 3,
|
|
generationName: '明',
|
|
birthDate: '1954-07-20',
|
|
ancestralHome: '山东省济南市',
|
|
birthPlace: '山东省济南市历城区',
|
|
fatherId: wang2_2.id,
|
|
motherId: wang2_2Wife.id,
|
|
phone: '13800138006',
|
|
bio: '护士,在医院工作。',
|
|
tags: ['护士', '在世'],
|
|
},
|
|
})
|
|
|
|
const wang3_5 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: wangTree.id,
|
|
surname: '王',
|
|
givenName: '军',
|
|
fullName: '王军',
|
|
gender: 'MALE',
|
|
generation: 3,
|
|
generationName: '明',
|
|
birthDate: '1956-12-08',
|
|
ancestralHome: '山东省济南市',
|
|
birthPlace: '山东省济南市历城区',
|
|
fatherId: wang2_2.id,
|
|
motherId: wang2_2Wife.id,
|
|
phone: '13800138007',
|
|
bio: '军人,服役20年后转业。',
|
|
tags: ['军人', '在世'],
|
|
},
|
|
})
|
|
|
|
// 更新第二代的子女关系
|
|
await prisma.familyMember.update({
|
|
where: { id: wang2_1.id },
|
|
data: { childrenIds: [wang3_1.id, wang3_2.id] },
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: wang2_1Wife.id },
|
|
data: { childrenIds: [wang3_1.id, wang3_2.id] },
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: wang2_2.id },
|
|
data: { childrenIds: [wang3_3.id, wang3_4.id, wang3_5.id] },
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: wang2_2Wife.id },
|
|
data: { childrenIds: [wang3_3.id, wang3_4.id, wang3_5.id] },
|
|
})
|
|
|
|
// 第四代
|
|
const wang4_1 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: wangTree.id,
|
|
surname: '王',
|
|
givenName: '浩',
|
|
fullName: '王浩',
|
|
gender: 'MALE',
|
|
generation: 4,
|
|
generationName: '浩',
|
|
birthDate: '1975-06-10',
|
|
ancestralHome: '山东省济南市',
|
|
birthPlace: '山东省济南市历下区',
|
|
fatherId: wang3_1.id,
|
|
motherId: wang3_1Wife.id,
|
|
phone: '13900139001',
|
|
email: 'wanghao@example.com',
|
|
address: '山东省济南市高新区科技路456号',
|
|
bio: '软件工程师,在互联网公司工作。',
|
|
tags: ['程序员', '在世'],
|
|
},
|
|
})
|
|
|
|
const wang4_1Wife = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: wangTree.id,
|
|
surname: '陈',
|
|
givenName: '静',
|
|
fullName: '陈静',
|
|
gender: 'FEMALE',
|
|
generation: 4,
|
|
birthDate: '1978-09-15',
|
|
ancestralHome: '江苏省南京市',
|
|
birthPlace: '江苏省南京市玄武区',
|
|
spouseIds: [wang4_1.id],
|
|
phone: '13900139002',
|
|
email: 'chenjing@example.com',
|
|
bio: '设计师,从事UI/UX设计工作。',
|
|
},
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: wang4_1.id },
|
|
data: { spouseIds: [wang4_1Wife.id] },
|
|
})
|
|
|
|
// 第四代 - 更多子女(迁徙到不同城市)
|
|
const wang4_2 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: wangTree.id,
|
|
surname: '王',
|
|
givenName: '磊',
|
|
fullName: '王磊',
|
|
gender: 'MALE',
|
|
generation: 4,
|
|
generationName: '浩',
|
|
birthDate: '1978-03-22',
|
|
ancestralHome: '山东省济南市',
|
|
birthPlace: '上海市浦东新区', // 迁徙到上海
|
|
fatherId: wang3_1.id,
|
|
motherId: wang3_1Wife.id,
|
|
phone: '13900139003',
|
|
email: 'wanglei@example.com',
|
|
address: '上海市浦东新区陆家嘴环路1000号',
|
|
bio: '金融分析师,在投资银行工作。',
|
|
tags: ['金融', '在世', '上海'],
|
|
},
|
|
})
|
|
|
|
const wang4_3 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: wangTree.id,
|
|
surname: '王',
|
|
givenName: '超',
|
|
fullName: '王超',
|
|
gender: 'MALE',
|
|
generation: 4,
|
|
generationName: '浩',
|
|
birthDate: '1980-11-08',
|
|
ancestralHome: '山东省济南市',
|
|
birthPlace: '广东省深圳市', // 迁徙到深圳
|
|
fatherId: wang3_2.id,
|
|
phone: '13900139004',
|
|
email: 'wangchao@example.com',
|
|
address: '广东省深圳市南山区科技园',
|
|
bio: '创业者,经营科技公司。',
|
|
tags: ['创业者', '在世', '深圳'],
|
|
},
|
|
})
|
|
|
|
const wang4_4 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: wangTree.id,
|
|
surname: '王',
|
|
givenName: '鹏',
|
|
fullName: '王鹏',
|
|
gender: 'MALE',
|
|
generation: 4,
|
|
generationName: '浩',
|
|
birthDate: '1982-05-15',
|
|
ancestralHome: '山东省济南市',
|
|
birthPlace: '浙江省杭州市', // 迁徙到杭州
|
|
fatherId: wang3_3.id,
|
|
motherId: wang3_3Wife.id,
|
|
phone: '13900139005',
|
|
email: 'wangpeng@example.com',
|
|
address: '浙江省杭州市西湖区文三路',
|
|
bio: '医生,在浙江大学附属医院工作。',
|
|
tags: ['医生', '在世', '杭州'],
|
|
},
|
|
})
|
|
|
|
const wang4_5 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: wangTree.id,
|
|
surname: '王',
|
|
givenName: '婷',
|
|
fullName: '王婷',
|
|
gender: 'FEMALE',
|
|
generation: 4,
|
|
generationName: '浩',
|
|
birthDate: '1984-08-20',
|
|
ancestralHome: '山东省济南市',
|
|
birthPlace: '四川省成都市', // 迁徙到成都
|
|
fatherId: wang3_3.id,
|
|
motherId: wang3_3Wife.id,
|
|
phone: '13900139006',
|
|
email: 'wangting@example.com',
|
|
address: '四川省成都市武侯区天府大道',
|
|
bio: '教师,在大学任教。',
|
|
tags: ['教师', '在世', '成都'],
|
|
},
|
|
})
|
|
|
|
const wang4_6 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: wangTree.id,
|
|
surname: '王',
|
|
givenName: '娜',
|
|
fullName: '王娜',
|
|
gender: 'FEMALE',
|
|
generation: 4,
|
|
generationName: '浩',
|
|
birthDate: '1986-02-14',
|
|
ancestralHome: '山东省济南市',
|
|
birthPlace: '江苏省苏州市', // 迁徙到苏州
|
|
fatherId: wang3_4.id,
|
|
phone: '13900139007',
|
|
email: 'wangna@example.com',
|
|
address: '江苏省苏州市工业园区',
|
|
bio: '护士,在医院工作。',
|
|
tags: ['护士', '在世', '苏州'],
|
|
},
|
|
})
|
|
|
|
const wang4_7 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: wangTree.id,
|
|
surname: '王',
|
|
givenName: '涛',
|
|
fullName: '王涛',
|
|
gender: 'MALE',
|
|
generation: 4,
|
|
generationName: '浩',
|
|
birthDate: '1988-07-30',
|
|
ancestralHome: '山东省济南市',
|
|
birthPlace: '陕西省西安市', // 迁徙到西安
|
|
fatherId: wang3_5.id,
|
|
phone: '13900139008',
|
|
email: 'wangtao@example.com',
|
|
address: '陕西省西安市雁塔区高新路',
|
|
bio: '工程师,在航天企业工作。',
|
|
tags: ['工程师', '在世', '西安'],
|
|
},
|
|
})
|
|
|
|
// 更新第三代的子女关系
|
|
await prisma.familyMember.update({
|
|
where: { id: wang3_1.id },
|
|
data: { childrenIds: [wang4_1.id, wang4_2.id] },
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: wang3_1Wife.id },
|
|
data: { childrenIds: [wang4_1.id, wang4_2.id] },
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: wang3_2.id },
|
|
data: { childrenIds: [wang4_3.id] },
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: wang3_3.id },
|
|
data: { childrenIds: [wang4_4.id, wang4_5.id] },
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: wang3_3Wife.id },
|
|
data: { childrenIds: [wang4_4.id, wang4_5.id] },
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: wang3_4.id },
|
|
data: { childrenIds: [wang4_6.id] },
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: wang3_5.id },
|
|
data: { childrenIds: [wang4_7.id] },
|
|
})
|
|
|
|
// 第五代
|
|
const wang5_1 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: wangTree.id,
|
|
surname: '王',
|
|
givenName: '子轩',
|
|
fullName: '王子轩',
|
|
gender: 'MALE',
|
|
generation: 5,
|
|
generationName: '子',
|
|
birthDate: '2005-03-20',
|
|
ancestralHome: '山东省济南市',
|
|
birthPlace: '山东省济南市高新区',
|
|
fatherId: wang4_1.id,
|
|
motherId: wang4_1Wife.id,
|
|
bio: '在读大学生,就读于计算机科学专业。',
|
|
tags: ['学生', '在世'],
|
|
},
|
|
})
|
|
|
|
// 第五代 - 更多子女
|
|
const wang5_2 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: wangTree.id,
|
|
surname: '王',
|
|
givenName: '梓涵',
|
|
fullName: '王梓涵',
|
|
gender: 'FEMALE',
|
|
generation: 5,
|
|
generationName: '子',
|
|
birthDate: '2008-07-15',
|
|
ancestralHome: '山东省济南市',
|
|
birthPlace: '山东省济南市高新区',
|
|
fatherId: wang4_1.id,
|
|
motherId: wang4_1Wife.id,
|
|
bio: '在读高中生。',
|
|
tags: ['学生', '在世'],
|
|
},
|
|
})
|
|
|
|
const wang5_3 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: wangTree.id,
|
|
surname: '王',
|
|
givenName: '宇轩',
|
|
fullName: '王宇轩',
|
|
gender: 'MALE',
|
|
generation: 5,
|
|
generationName: '子',
|
|
birthDate: '2010-11-22',
|
|
ancestralHome: '山东省济南市',
|
|
birthPlace: '上海市浦东新区',
|
|
fatherId: wang4_2.id,
|
|
bio: '在读中学生。',
|
|
tags: ['学生', '在世'],
|
|
},
|
|
})
|
|
|
|
const wang5_4 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: wangTree.id,
|
|
surname: '王',
|
|
givenName: '思远',
|
|
fullName: '王思远',
|
|
gender: 'MALE',
|
|
generation: 5,
|
|
generationName: '子',
|
|
birthDate: '2012-04-08',
|
|
ancestralHome: '山东省济南市',
|
|
birthPlace: '广东省深圳市',
|
|
fatherId: wang4_3.id,
|
|
bio: '在读小学生。',
|
|
tags: ['学生', '在世'],
|
|
},
|
|
})
|
|
|
|
const wang5_5 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: wangTree.id,
|
|
surname: '王',
|
|
givenName: '雨萱',
|
|
fullName: '王雨萱',
|
|
gender: 'FEMALE',
|
|
generation: 5,
|
|
generationName: '子',
|
|
birthDate: '2014-09-18',
|
|
ancestralHome: '山东省济南市',
|
|
birthPlace: '浙江省杭州市',
|
|
fatherId: wang4_4.id,
|
|
bio: '在读小学生。',
|
|
tags: ['学生', '在世'],
|
|
},
|
|
})
|
|
|
|
// 更新第四代的子女关系
|
|
await prisma.familyMember.update({
|
|
where: { id: wang4_1.id },
|
|
data: { childrenIds: [wang5_1.id, wang5_2.id] },
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: wang4_1Wife.id },
|
|
data: { childrenIds: [wang5_1.id, wang5_2.id] },
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: wang4_2.id },
|
|
data: { childrenIds: [wang5_3.id] },
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: wang4_3.id },
|
|
data: { childrenIds: [wang5_4.id] },
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: wang4_4.id },
|
|
data: { childrenIds: [wang5_5.id] },
|
|
})
|
|
|
|
// 更新王氏家族树的 rootMemberId
|
|
await prisma.familyTree.update({
|
|
where: { id: wangTree.id },
|
|
data: { rootMemberId: wang1.id }
|
|
})
|
|
|
|
console.log('✓ 创建王氏家族成员: 5代共32人')
|
|
|
|
// 为虞女士创建家族树
|
|
const yuTree = await prisma.familyTree.create({
|
|
data: {
|
|
name: '虞氏家族',
|
|
description: '虞氏家族世系谱',
|
|
ownerId: user2.id,
|
|
},
|
|
})
|
|
console.log('✓ 创建家族树: 虞氏家族')
|
|
|
|
// 虞氏家族成员
|
|
// 第一代 - 始祖
|
|
const yu1 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: yuTree.id,
|
|
surname: '虞',
|
|
givenName: '文昌',
|
|
fullName: '虞文昌',
|
|
gender: 'MALE',
|
|
generation: 1,
|
|
generationName: '文',
|
|
isFounder: true,
|
|
birthDate: '1885-07-08',
|
|
deathDate: '1960-11-15',
|
|
ancestralHome: '浙江省杭州市',
|
|
birthPlace: '浙江省杭州市西湖区',
|
|
bio: '虞氏家族始祖,清末举人,民国时期从商。',
|
|
tags: ['商人'],
|
|
},
|
|
})
|
|
|
|
const yu1Wife = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: yuTree.id,
|
|
surname: '周',
|
|
givenName: '婉仪',
|
|
fullName: '周婉仪',
|
|
gender: 'FEMALE',
|
|
generation: 1,
|
|
birthDate: '1888-02-20',
|
|
deathDate: '1965-05-10',
|
|
ancestralHome: '浙江省杭州市',
|
|
birthPlace: '浙江省杭州市上城区',
|
|
spouseIds: [yu1.id],
|
|
bio: '大家闺秀,知书达理。',
|
|
},
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: yu1.id },
|
|
data: { spouseIds: [yu1Wife.id] },
|
|
})
|
|
|
|
// 第二代
|
|
const yu2_1 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: yuTree.id,
|
|
surname: '虞',
|
|
givenName: '国栋',
|
|
fullName: '虞国栋',
|
|
gender: 'MALE',
|
|
generation: 2,
|
|
generationName: '国',
|
|
birthDate: '1915-09-12',
|
|
deathDate: '1988-07-25',
|
|
ancestralHome: '浙江省杭州市',
|
|
birthPlace: '浙江省杭州市西湖区',
|
|
fatherId: yu1.id,
|
|
motherId: yu1Wife.id,
|
|
bio: '大学教授,从事文学研究。',
|
|
tags: ['教授', '学者'],
|
|
},
|
|
})
|
|
|
|
const yu2_1Wife = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: yuTree.id,
|
|
surname: '林',
|
|
givenName: '雅芳',
|
|
fullName: '林雅芳',
|
|
gender: 'FEMALE',
|
|
generation: 2,
|
|
birthDate: '1920-04-18',
|
|
deathDate: '1992-12-08',
|
|
ancestralHome: '福建省福州市',
|
|
birthPlace: '福建省福州市鼓楼区',
|
|
spouseIds: [yu2_1.id],
|
|
bio: '中学教师,教授语文。',
|
|
},
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: yu2_1.id },
|
|
data: { spouseIds: [yu2_1Wife.id] },
|
|
})
|
|
|
|
// 第二代 - 更多子女
|
|
const yu2_2 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: yuTree.id,
|
|
surname: '虞',
|
|
givenName: '国华',
|
|
fullName: '虞国华',
|
|
gender: 'MALE',
|
|
generation: 2,
|
|
generationName: '国',
|
|
birthDate: '1918-06-20',
|
|
deathDate: '1996-03-15',
|
|
ancestralHome: '浙江省杭州市',
|
|
birthPlace: '浙江省杭州市西湖区',
|
|
fatherId: yu1.id,
|
|
motherId: yu1Wife.id,
|
|
bio: '医生,在杭州市第一人民医院工作。',
|
|
tags: ['医生'],
|
|
},
|
|
})
|
|
|
|
const yu2_2Wife = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: yuTree.id,
|
|
surname: '周',
|
|
givenName: '婉仪',
|
|
fullName: '周婉仪',
|
|
gender: 'FEMALE',
|
|
generation: 2,
|
|
birthDate: '1922-08-10',
|
|
deathDate: '1999-11-20',
|
|
ancestralHome: '江苏省苏州市',
|
|
birthPlace: '江苏省苏州市姑苏区',
|
|
spouseIds: [yu2_2.id],
|
|
bio: '护士,与丈夫在同一医院工作。',
|
|
},
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: yu2_2.id },
|
|
data: { spouseIds: [yu2_2Wife.id] },
|
|
})
|
|
|
|
const yu2_3 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: yuTree.id,
|
|
surname: '虞',
|
|
givenName: '国英',
|
|
fullName: '虞国英',
|
|
gender: 'FEMALE',
|
|
generation: 2,
|
|
generationName: '国',
|
|
birthDate: '1925-12-05',
|
|
deathDate: '2008-05-18',
|
|
ancestralHome: '浙江省杭州市',
|
|
birthPlace: '浙江省杭州市西湖区',
|
|
fatherId: yu1.id,
|
|
motherId: yu1Wife.id,
|
|
bio: '教师,在小学任教。',
|
|
tags: ['教师'],
|
|
},
|
|
})
|
|
|
|
// 更新第一代的子女关系
|
|
await prisma.familyMember.update({
|
|
where: { id: yu1.id },
|
|
data: { childrenIds: [yu2_1.id, yu2_2.id, yu2_3.id] },
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: yu1Wife.id },
|
|
data: { childrenIds: [yu2_1.id, yu2_2.id, yu2_3.id] },
|
|
})
|
|
|
|
// 第三代
|
|
const yu3_1 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: yuTree.id,
|
|
surname: '虞',
|
|
givenName: '晓梅',
|
|
fullName: '虞晓梅',
|
|
gender: 'FEMALE',
|
|
generation: 3,
|
|
generationName: '晓',
|
|
birthDate: '1950-06-25',
|
|
ancestralHome: '浙江省杭州市',
|
|
birthPlace: '浙江省杭州市西湖区',
|
|
fatherId: yu2_1.id,
|
|
motherId: yu2_1Wife.id,
|
|
phone: '13700137001',
|
|
email: 'yuxiaomei@example.com',
|
|
address: '浙江省杭州市西湖区文三路789号',
|
|
bio: '医生,在浙江大学附属医院工作。',
|
|
tags: ['医生', '在世'],
|
|
},
|
|
})
|
|
|
|
const yu3_1Husband = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: yuTree.id,
|
|
surname: '赵',
|
|
givenName: '建平',
|
|
fullName: '赵建平',
|
|
gender: 'MALE',
|
|
generation: 3,
|
|
birthDate: '1948-03-15',
|
|
ancestralHome: '浙江省宁波市',
|
|
birthPlace: '浙江省宁波市海曙区',
|
|
spouseIds: [yu3_1.id],
|
|
spouseFatherName: '赵国强',
|
|
spouseMotherName: '李秀芳',
|
|
phone: '13700137002',
|
|
bio: '工程师,已退休。',
|
|
},
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: yu3_1.id },
|
|
data: { spouseIds: [yu3_1Husband.id] },
|
|
})
|
|
|
|
// 第三代 - 更多子女
|
|
const yu3_2 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: yuTree.id,
|
|
surname: '虞',
|
|
givenName: '晓东',
|
|
fullName: '虞晓东',
|
|
gender: 'MALE',
|
|
generation: 3,
|
|
generationName: '晓',
|
|
birthDate: '1953-11-20',
|
|
ancestralHome: '浙江省杭州市',
|
|
birthPlace: '浙江省杭州市上城区',
|
|
fatherId: yu2_1.id,
|
|
motherId: yu2_1Wife.id,
|
|
phone: '13700137003',
|
|
bio: '建筑师,设计过多个知名建筑。',
|
|
tags: ['建筑师', '在世'],
|
|
},
|
|
})
|
|
|
|
const yu3_3 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: yuTree.id,
|
|
surname: '虞',
|
|
givenName: '晓华',
|
|
fullName: '虞晓华',
|
|
gender: 'MALE',
|
|
generation: 3,
|
|
generationName: '晓',
|
|
birthDate: '1955-04-08',
|
|
ancestralHome: '浙江省杭州市',
|
|
birthPlace: '浙江省杭州市西湖区',
|
|
fatherId: yu2_2.id,
|
|
motherId: yu2_2Wife.id,
|
|
phone: '13700137004',
|
|
bio: '医生,继承父业。',
|
|
tags: ['医生', '在世'],
|
|
},
|
|
})
|
|
|
|
const yu3_3Wife = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: yuTree.id,
|
|
surname: '钱',
|
|
givenName: '丽',
|
|
fullName: '钱丽',
|
|
gender: 'FEMALE',
|
|
generation: 3,
|
|
birthDate: '1958-09-15',
|
|
ancestralHome: '江苏省南京市',
|
|
birthPlace: '江苏省南京市鼓楼区',
|
|
spouseIds: [yu3_3.id],
|
|
phone: '13700137005',
|
|
bio: '药剂师。',
|
|
},
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: yu3_3.id },
|
|
data: { spouseIds: [yu3_3Wife.id] },
|
|
})
|
|
|
|
const yu3_4 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: yuTree.id,
|
|
surname: '虞',
|
|
givenName: '晓英',
|
|
fullName: '虞晓英',
|
|
gender: 'FEMALE',
|
|
generation: 3,
|
|
generationName: '晓',
|
|
birthDate: '1957-07-12',
|
|
ancestralHome: '浙江省杭州市',
|
|
birthPlace: '浙江省杭州市西湖区',
|
|
fatherId: yu2_2.id,
|
|
motherId: yu2_2Wife.id,
|
|
phone: '13700137006',
|
|
bio: '护士,在医院工作。',
|
|
tags: ['护士', '在世'],
|
|
},
|
|
})
|
|
|
|
const yu3_5 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: yuTree.id,
|
|
surname: '虞',
|
|
givenName: '晓军',
|
|
fullName: '虞晓军',
|
|
gender: 'MALE',
|
|
generation: 3,
|
|
generationName: '晓',
|
|
birthDate: '1959-12-25',
|
|
ancestralHome: '浙江省杭州市',
|
|
birthPlace: '浙江省杭州市西湖区',
|
|
fatherId: yu2_2.id,
|
|
motherId: yu2_2Wife.id,
|
|
phone: '13700137007',
|
|
bio: '企业家,经营贸易公司。',
|
|
tags: ['企业家', '在世'],
|
|
},
|
|
})
|
|
|
|
// 更新第二代的子女关系
|
|
await prisma.familyMember.update({
|
|
where: { id: yu2_1.id },
|
|
data: { childrenIds: [yu3_1.id, yu3_2.id] },
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: yu2_1Wife.id },
|
|
data: { childrenIds: [yu3_1.id, yu3_2.id] },
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: yu2_2.id },
|
|
data: { childrenIds: [yu3_3.id, yu3_4.id, yu3_5.id] },
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: yu2_2Wife.id },
|
|
data: { childrenIds: [yu3_3.id, yu3_4.id, yu3_5.id] },
|
|
})
|
|
|
|
// 第四代
|
|
const yu4_1 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: yuTree.id,
|
|
surname: '虞',
|
|
givenName: '雨欣',
|
|
fullName: '虞雨欣',
|
|
gender: 'FEMALE',
|
|
generation: 4,
|
|
generationName: '雨',
|
|
birthDate: '1980-11-08',
|
|
ancestralHome: '浙江省杭州市',
|
|
birthPlace: '浙江省杭州市西湖区',
|
|
motherId: yu3_1.id,
|
|
phone: '13800138003',
|
|
email: 'yuyuxin@example.com',
|
|
address: '浙江省杭州市滨江区江南大道321号',
|
|
bio: '律师,在知名律师事务所工作。',
|
|
tags: ['律师', '在世'],
|
|
},
|
|
})
|
|
|
|
const yu4_1Husband = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: yuTree.id,
|
|
surname: '钱',
|
|
givenName: '俊杰',
|
|
fullName: '钱俊杰',
|
|
gender: 'MALE',
|
|
generation: 4,
|
|
birthDate: '1978-05-20',
|
|
ancestralHome: '江苏省苏州市',
|
|
birthPlace: '江苏省苏州市姑苏区',
|
|
spouseIds: [yu4_1.id],
|
|
spouseFatherName: '钱文华',
|
|
spouseMotherName: '陈美玲',
|
|
phone: '13800138004',
|
|
email: 'qianjunjie@example.com',
|
|
bio: '企业家,经营进出口贸易公司。',
|
|
},
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: yu4_1.id },
|
|
data: { spouseIds: [yu4_1Husband.id] },
|
|
})
|
|
|
|
// 第四代 - 更多子女(迁徙到不同城市)
|
|
const yu4_2 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: yuTree.id,
|
|
surname: '虞',
|
|
givenName: '雨辰',
|
|
fullName: '虞雨辰',
|
|
gender: 'MALE',
|
|
generation: 4,
|
|
generationName: '雨',
|
|
birthDate: '1983-03-15',
|
|
ancestralHome: '浙江省杭州市',
|
|
birthPlace: '上海市黄浦区', // 迁徙到上海
|
|
motherId: yu3_1.id,
|
|
phone: '13800138005',
|
|
email: 'yuyuchen@example.com',
|
|
address: '上海市黄浦区南京东路888号',
|
|
bio: '金融分析师,在投资银行工作。',
|
|
tags: ['金融', '在世', '上海'],
|
|
},
|
|
})
|
|
|
|
const yu4_3 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: yuTree.id,
|
|
surname: '虞',
|
|
givenName: '雨轩',
|
|
fullName: '虞雨轩',
|
|
gender: 'MALE',
|
|
generation: 4,
|
|
generationName: '雨',
|
|
birthDate: '1985-07-22',
|
|
ancestralHome: '浙江省杭州市',
|
|
birthPlace: '北京市朝阳区', // 迁徙到北京
|
|
fatherId: yu3_2.id,
|
|
phone: '13800138006',
|
|
email: 'yuyuxuan@example.com',
|
|
address: '北京市朝阳区建国门外大街100号',
|
|
bio: '软件工程师,在科技公司工作。',
|
|
tags: ['程序员', '在世', '北京'],
|
|
},
|
|
})
|
|
|
|
const yu4_4 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: yuTree.id,
|
|
surname: '虞',
|
|
givenName: '雨婷',
|
|
fullName: '虞雨婷',
|
|
gender: 'FEMALE',
|
|
generation: 4,
|
|
generationName: '雨',
|
|
birthDate: '1987-11-10',
|
|
ancestralHome: '浙江省杭州市',
|
|
birthPlace: '广东省深圳市', // 迁徙到深圳
|
|
fatherId: yu3_3.id,
|
|
motherId: yu3_3Wife.id,
|
|
phone: '13800138007',
|
|
email: 'yuyuting@example.com',
|
|
address: '广东省深圳市福田区中心区',
|
|
bio: '设计师,从事UI/UX设计工作。',
|
|
tags: ['设计师', '在世', '深圳'],
|
|
},
|
|
})
|
|
|
|
const yu4_5 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: yuTree.id,
|
|
surname: '虞',
|
|
givenName: '雨萱',
|
|
fullName: '虞雨萱',
|
|
gender: 'FEMALE',
|
|
generation: 4,
|
|
generationName: '雨',
|
|
birthDate: '1989-04-18',
|
|
ancestralHome: '浙江省杭州市',
|
|
birthPlace: '四川省成都市', // 迁徙到成都
|
|
fatherId: yu3_3.id,
|
|
motherId: yu3_3Wife.id,
|
|
phone: '13800138008',
|
|
email: 'yuyuxuan2@example.com',
|
|
address: '四川省成都市锦江区红星路',
|
|
bio: '文化工作者,在博物馆工作。',
|
|
tags: ['文化', '在世', '成都'],
|
|
},
|
|
})
|
|
|
|
const yu4_6 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: yuTree.id,
|
|
surname: '虞',
|
|
givenName: '雨涵',
|
|
fullName: '虞雨涵',
|
|
gender: 'FEMALE',
|
|
generation: 4,
|
|
generationName: '雨',
|
|
birthDate: '1991-09-05',
|
|
ancestralHome: '浙江省杭州市',
|
|
birthPlace: '江苏省南京市', // 迁徙到南京
|
|
motherId: yu3_4.id,
|
|
phone: '13800138009',
|
|
email: 'yuyuhan@example.com',
|
|
address: '江苏省南京市鼓楼区中山路',
|
|
bio: '教师,在大学任教。',
|
|
tags: ['教师', '在世', '南京'],
|
|
},
|
|
})
|
|
|
|
const yu4_7 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: yuTree.id,
|
|
surname: '虞',
|
|
givenName: '雨泽',
|
|
fullName: '虞雨泽',
|
|
gender: 'MALE',
|
|
generation: 4,
|
|
generationName: '雨',
|
|
birthDate: '1993-12-20',
|
|
ancestralHome: '浙江省杭州市',
|
|
birthPlace: '浙江省宁波市', // 迁徙到宁波
|
|
fatherId: yu3_5.id,
|
|
phone: '13800138010',
|
|
email: 'yuyuze@example.com',
|
|
address: '浙江省宁波市海曙区天一广场',
|
|
bio: '企业家,经营贸易公司。',
|
|
tags: ['企业家', '在世', '宁波'],
|
|
},
|
|
})
|
|
|
|
// 更新第三代的子女关系
|
|
await prisma.familyMember.update({
|
|
where: { id: yu3_1.id },
|
|
data: { childrenIds: [yu4_1.id, yu4_2.id] },
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: yu3_1Husband.id },
|
|
data: { childrenIds: [yu4_1.id, yu4_2.id] },
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: yu3_2.id },
|
|
data: { childrenIds: [yu4_3.id] },
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: yu3_3.id },
|
|
data: { childrenIds: [yu4_4.id, yu4_5.id] },
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: yu3_3Wife.id },
|
|
data: { childrenIds: [yu4_4.id, yu4_5.id] },
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: yu3_4.id },
|
|
data: { childrenIds: [yu4_6.id] },
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: yu3_5.id },
|
|
data: { childrenIds: [yu4_7.id] },
|
|
})
|
|
|
|
// 第五代
|
|
const yu5_1 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: yuTree.id,
|
|
surname: '虞',
|
|
givenName: '诗涵',
|
|
fullName: '虞诗涵',
|
|
gender: 'FEMALE',
|
|
generation: 5,
|
|
generationName: '诗',
|
|
birthDate: '2008-08-08',
|
|
ancestralHome: '浙江省杭州市',
|
|
birthPlace: '浙江省杭州市滨江区',
|
|
motherId: yu4_1.id,
|
|
bio: '在读中学生,品学兼优。',
|
|
tags: ['学生', '在世'],
|
|
},
|
|
})
|
|
|
|
// 第五代 - 更多子女
|
|
const yu5_2 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: yuTree.id,
|
|
surname: '虞',
|
|
givenName: '诗雅',
|
|
fullName: '虞诗雅',
|
|
gender: 'FEMALE',
|
|
generation: 5,
|
|
generationName: '诗',
|
|
birthDate: '2011-05-12',
|
|
ancestralHome: '浙江省杭州市',
|
|
birthPlace: '浙江省杭州市滨江区',
|
|
motherId: yu4_1.id,
|
|
bio: '在读小学生。',
|
|
tags: ['学生', '在世'],
|
|
},
|
|
})
|
|
|
|
const yu5_3 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: yuTree.id,
|
|
surname: '虞',
|
|
givenName: '诗轩',
|
|
fullName: '虞诗轩',
|
|
gender: 'MALE',
|
|
generation: 5,
|
|
generationName: '诗',
|
|
birthDate: '2013-09-20',
|
|
ancestralHome: '浙江省杭州市',
|
|
birthPlace: '上海市黄浦区',
|
|
fatherId: yu4_2.id,
|
|
bio: '在读小学生。',
|
|
tags: ['学生', '在世'],
|
|
},
|
|
})
|
|
|
|
const yu5_4 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: yuTree.id,
|
|
surname: '虞',
|
|
givenName: '诗语',
|
|
fullName: '虞诗语',
|
|
gender: 'FEMALE',
|
|
generation: 5,
|
|
generationName: '诗',
|
|
birthDate: '2015-11-08',
|
|
ancestralHome: '浙江省杭州市',
|
|
birthPlace: '北京市朝阳区',
|
|
fatherId: yu4_3.id,
|
|
bio: '在读小学生。',
|
|
tags: ['学生', '在世'],
|
|
},
|
|
})
|
|
|
|
const yu5_5 = await prisma.familyMember.create({
|
|
data: {
|
|
treeId: yuTree.id,
|
|
surname: '虞',
|
|
givenName: '诗琪',
|
|
fullName: '虞诗琪',
|
|
gender: 'FEMALE',
|
|
generation: 5,
|
|
generationName: '诗',
|
|
birthDate: '2017-03-25',
|
|
ancestralHome: '浙江省杭州市',
|
|
birthPlace: '广东省深圳市',
|
|
motherId: yu4_4.id,
|
|
bio: '幼儿园学生。',
|
|
tags: ['学生', '在世'],
|
|
},
|
|
})
|
|
|
|
// 更新第四代的子女关系
|
|
await prisma.familyMember.update({
|
|
where: { id: yu4_1.id },
|
|
data: { childrenIds: [yu5_1.id, yu5_2.id] },
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: yu4_1Husband.id },
|
|
data: { childrenIds: [yu5_1.id, yu5_2.id] },
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: yu4_2.id },
|
|
data: { childrenIds: [yu5_3.id] },
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: yu4_3.id },
|
|
data: { childrenIds: [yu5_4.id] },
|
|
})
|
|
|
|
await prisma.familyMember.update({
|
|
where: { id: yu4_4.id },
|
|
data: { childrenIds: [yu5_5.id] },
|
|
})
|
|
|
|
// 更新虞氏家族树的 rootMemberId
|
|
await prisma.familyTree.update({
|
|
where: { id: yuTree.id },
|
|
data: { rootMemberId: yu1.id }
|
|
})
|
|
|
|
console.log('✓ 创建虞氏家族成员: 5代共33人')
|
|
|
|
// 创建一些活动日志
|
|
await prisma.activityLog.create({
|
|
data: {
|
|
treeId: wangTree.id,
|
|
userId: user1.id,
|
|
action: 'CREATE',
|
|
entityType: 'MEMBER',
|
|
entityId: wang1.id,
|
|
entityName: '王德厚',
|
|
timestamp: new Date(),
|
|
},
|
|
})
|
|
|
|
await prisma.activityLog.create({
|
|
data: {
|
|
treeId: yuTree.id,
|
|
userId: user2.id,
|
|
action: 'CREATE',
|
|
entityType: 'MEMBER',
|
|
entityId: yu1.id,
|
|
entityName: '虞文昌',
|
|
timestamp: new Date(),
|
|
},
|
|
})
|
|
|
|
console.log('✓ 创建活动日志')
|
|
|
|
console.log('\n========================================')
|
|
console.log('数据库初始化完成!')
|
|
console.log('========================================')
|
|
console.log('\n测试账号信息:')
|
|
console.log('1. 管理员')
|
|
console.log(' 邮箱: freedak@163.com')
|
|
console.log(' 密码: why701208')
|
|
console.log(' 角色: 管理员')
|
|
console.log('\n2. 王先生')
|
|
console.log(' 邮箱: wang@example.com')
|
|
console.log(' 密码: 123456')
|
|
console.log(' 家族树: 王氏家族 (5代32人)')
|
|
console.log(' 迁徙城市: 济南→北京、上海、深圳、杭州、成都、苏州、西安')
|
|
console.log('\n3. 虞女士')
|
|
console.log(' 邮箱: yu@example.com')
|
|
console.log(' 密码: 123456')
|
|
console.log(' 家族树: 虞氏家族 (5代33人)')
|
|
console.log(' 迁徙城市: 杭州→上海、北京、深圳、成都、南京、宁波')
|
|
console.log('========================================\n')
|
|
}
|
|
|
|
main()
|
|
.catch((e) => {
|
|
console.error('数据库初始化失败:', e)
|
|
process.exit(1)
|
|
})
|
|
.finally(async () => {
|
|
await prisma.$disconnect()
|
|
})
|