Files
hr-assessment-system/lib/database/reset-users.ts
2025-09-28 23:34:32 +08:00

89 lines
2.2 KiB
TypeScript

import { executeQuery } from './connection'
import { initializeDatabase } from './init'
import { hashPasswordSync } from '../utils/password'
// 重新建立用戶數據(使用明文密碼)
const resetUsers = [
{
name: "系統管理員",
email: "admin@company.com",
password: "admin123",
department: "人力資源部",
role: "admin",
},
{
name: "張小明",
email: "user@company.com",
password: "user123",
department: "資訊技術部",
role: "user",
},
{
name: "李經理",
email: "manager@company.com",
password: "manager123",
department: "管理部",
role: "admin",
},
{
name: "王測試",
email: "test@company.com",
password: "test123",
department: "測試部",
role: "user",
}
]
export async function resetUsersData(): Promise<void> {
try {
console.log('🔄 正在重新建立用戶數據...')
// 確保資料庫已初始化
await initializeDatabase()
// 清空現有用戶數據
await executeQuery('DELETE FROM users')
console.log('✅ 已清空現有用戶數據')
// 重新插入用戶數據
for (const user of resetUsers) {
// 生成簡單的 UUID
const userId = `user-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`
// 雜湊密碼
const hashedPassword = hashPasswordSync(user.password)
const query = `
INSERT INTO users (id, name, email, password, department, role)
VALUES (?, ?, ?, ?, ?, ?)
`
await executeQuery(query, [
userId,
user.name,
user.email,
hashedPassword,
user.department,
user.role
])
console.log(`✅ 建立用戶: ${user.name} (${user.email}) - 密碼已雜湊`)
}
console.log('✅ 用戶數據重新建立完成')
console.log('\n📋 可用帳號:')
resetUsers.forEach(user => {
console.log(` ${user.name}: ${user.email} / ${user.password} (${user.role})`)
})
} catch (error) {
console.error('❌ 重新建立用戶數據失敗:', error)
throw error
}
}
// 如果直接執行此檔案,則執行重置
if (require.main === module) {
resetUsersData().catch(console.error)
}