diff --git a/src/app/(student)/courses/[slug]/lessons/[lessonId]/homework-actions.ts b/src/app/(student)/courses/[slug]/lessons/[lessonId]/homework-actions.ts index 46711fe..72293e7 100644 --- a/src/app/(student)/courses/[slug]/lessons/[lessonId]/homework-actions.ts +++ b/src/app/(student)/courses/[slug]/lessons/[lessonId]/homework-actions.ts @@ -4,7 +4,7 @@ import { prisma } from "@/lib/prisma"; import { auth } from "@/lib/auth"; import { headers } from "next/headers"; import { revalidatePath } from "next/cache"; -import { sendHomeworkSubmittedEmail } from "@/lib/email"; +import { sendHomeworkSubmittedEmail, sendHomeworkUpdatedEmail } from "@/lib/email"; interface HomeworkFile { name: string; @@ -40,6 +40,27 @@ export async function submitHomework( data: { text, files: files as object[], audioUrl: audioUrl ?? null, submittedAt: new Date() }, }); submissionId = updated.id; + + // Notify admins/curators when student edits an existing submission + const [lessonRecord, staff] = await Promise.all([ + prisma.homework.findUnique({ + where: { id: homeworkId }, + include: { lesson: { select: { title: true } } }, + }), + prisma.user.findMany({ + where: { role: { in: ["admin", "curator"] } }, + select: { email: true, name: true }, + }), + ]); + if (lessonRecord) { + await Promise.all( + staff.map((s) => + sendHomeworkUpdatedEmail(s.email, s.name, session.user.name, lessonRecord.lesson.title, submissionId).catch( + (e) => console.error("[email] homework-updated:", e) + ) + ) + ); + } } else { const created = await prisma.homeworkSubmission.create({ data: { homeworkId, userId: session.user.id, text, files: files as object[], audioUrl: audioUrl ?? null },