/**
 * 数据库种子数据脚本
 * 用于初始化开发环境的测试用户
 */

import { PrismaClient } from '@prisma/client';

const prisma = new PrismaClient();

async function main() {
  console.log('🌱 开始初始化数据库种子数据...');

  // 创建测试用户
  const mockUser = await prisma.user.upsert({
    where: { id: 'user-mock-001' },
    update: {},
    create: {
      id: 'user-mock-001',
      email: 'test@example.com',
      password: '$2b$12$LQv3c1yqBWVHxkd0LHAkCOYz6TtxMQJqhN8/LewY5GyYIkYvKx7ES', // password: "password123"
      name: '测试用户',
      role: 'user',
      status: 'active',
      kbQuota: 3,
      kbUsed: 0,
      isTrial: true,
      trialEndsAt: new Date(Date.now() + 30 * 24 * 60 * 60 * 1000), // 30天后
    },
  });

  console.log('✅ 测试用户创建成功:', {
    id: mockUser.id,
    email: mockUser.email,
    name: mockUser.name,
  });

  // 可选：创建管理员用户
  const adminUser = await prisma.user.upsert({
    where: { email: 'admin@example.com' },
    update: {},
    create: {
      id: 'user-admin-001',
      email: 'admin@example.com',
      password: '$2b$12$LQv3c1yqBWVHxkd0LHAkCOYz6TtxMQJqhN8/LewY5GyYIkYvKx7ES', // password: "password123"
      name: '管理员',
      role: 'admin',
      status: 'active',
      kbQuota: 10,
      kbUsed: 0,
      isTrial: false,
    },
  });

  console.log('✅ 管理员用户创建成功:', {
    id: adminUser.id,
    email: adminUser.email,
    name: adminUser.name,
  });

  console.log('\n🎉 数据库种子数据初始化完成！\n');
  console.log('📝 测试账号信息：');
  console.log('   邮箱: test@example.com');
  console.log('   密码: password123');
  console.log('   用户ID: user-mock-001\n');
  console.log('📝 管理员账号信息：');
  console.log('   邮箱: admin@example.com');
  console.log('   密码: password123');
  console.log('   用户ID: user-admin-001\n');
}

main()
  .catch((e) => {
    console.error('❌ 初始化种子数据失败:', e);
    process.exit(1);
  })
  .finally(async () => {
    await prisma.$disconnect();
  });































