sync-docs-and-fixes
All checks were successful
CI / build-deploy (push) Successful in 4m39s

This commit is contained in:
SpecialX
2026-03-03 17:32:26 +08:00
parent 538805bad0
commit eb08c0ab68
73 changed files with 2218 additions and 422 deletions

View File

@@ -18,6 +18,7 @@ import {
import { createId } from "@paralleldrive/cuid2";
import { faker } from "@faker-js/faker";
import { sql } from "drizzle-orm";
import { hash } from "bcryptjs";
/**
* Enterprise-Grade Seed Script for Next_Edu
@@ -77,27 +78,31 @@ async function seed() {
]);
// Users
const passwordHash = await hash("123456", 10);
const usersData = [
{
id: "user_admin",
name: "Admin User",
email: "admin@next-edu.com",
role: "admin", // Legacy field
image: "https://api.dicebear.com/7.x/avataaars/svg?seed=Admin"
image: "https://api.dicebear.com/7.x/avataaars/svg?seed=Admin",
password: passwordHash
},
{
id: "user_teacher_math",
name: "Mr. Math",
email: "math@next-edu.com",
role: "teacher",
image: "https://api.dicebear.com/7.x/avataaars/svg?seed=Math"
image: "https://api.dicebear.com/7.x/avataaars/svg?seed=Math",
password: passwordHash
},
{
id: "user_student_1",
name: "Alice Student",
email: "alice@next-edu.com",
role: "student",
image: "https://api.dicebear.com/7.x/avataaars/svg?seed=Alice"
image: "https://api.dicebear.com/7.x/avataaars/svg?seed=Alice",
password: passwordHash
}
];
@@ -122,6 +127,7 @@ async function seed() {
email: faker.internet.email().toLowerCase(),
role: "student",
image: `https://api.dicebear.com/7.x/avataaars/svg?seed=${studentId}`,
password: passwordHash,
});
await db.insert(usersToRoles).values({ userId: studentId, roleId: roleMap.student });
}
@@ -136,13 +142,14 @@ async function seed() {
// --- Seeding Subjects ---
await db.insert(subjects).values([
{ id: createId(), name: "Mathematics", code: "MATH", order: 1 },
{ id: createId(), name: "Physics", code: "PHYS", order: 2 },
{ id: createId(), name: "Chemistry", code: "CHEM", order: 3 },
{ id: createId(), name: "English", code: "ENG", order: 4 },
{ id: createId(), name: "History", code: "HIST", order: 5 },
{ id: createId(), name: "Geography", code: "GEO", order: 6 },
{ id: createId(), name: "Biology", code: "BIO", order: 7 },
{ id: createId(), name: "语文", code: "CHINESE", order: 1 },
{ id: createId(), name: "数学", code: "MATH", order: 2 },
{ id: createId(), name: "英语", code: "ENG", order: 3 },
{ id: createId(), name: "美术", code: "ART", order: 4 },
{ id: createId(), name: "体育", code: "PE", order: 5 },
{ id: createId(), name: "科学", code: "SCI", order: 6 },
{ id: createId(), name: "社会", code: "SOC", order: 7 },
{ id: createId(), name: "音乐", code: "MUSIC", order: 8 },
])
await db.insert(grades).values([