Send homework-updated email to staff on submission edit

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-19 13:52:04 +05:00
parent bd1e77c2a3
commit 12e1785ff2
@@ -4,7 +4,7 @@ import { prisma } from "@/lib/prisma";
import { auth } from "@/lib/auth"; import { auth } from "@/lib/auth";
import { headers } from "next/headers"; import { headers } from "next/headers";
import { revalidatePath } from "next/cache"; import { revalidatePath } from "next/cache";
import { sendHomeworkSubmittedEmail } from "@/lib/email"; import { sendHomeworkSubmittedEmail, sendHomeworkUpdatedEmail } from "@/lib/email";
interface HomeworkFile { interface HomeworkFile {
name: string; name: string;
@@ -40,6 +40,27 @@ export async function submitHomework(
data: { text, files: files as object[], audioUrl: audioUrl ?? null, submittedAt: new Date() }, data: { text, files: files as object[], audioUrl: audioUrl ?? null, submittedAt: new Date() },
}); });
submissionId = updated.id; 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 { } else {
const created = await prisma.homeworkSubmission.create({ const created = await prisma.homeworkSubmission.create({
data: { homeworkId, userId: session.user.id, text, files: files as object[], audioUrl: audioUrl ?? null }, data: { homeworkId, userId: session.user.id, text, files: files as object[], audioUrl: audioUrl ?? null },