Add homework review workflow: statuses, audio, file attachments, tabs
- HomeworkSubmission: add status (PENDING/REVIEWING/APPROVED/REJECTED) + statusAt - HomeworkFeedback: add files (Json) + audioUrl fields - Curator detail page: meta table, content tabs, feedback history with audio/files - FeedbackForm: file upload, audio recorder (Web Audio API + S3), action buttons - AudioRecorder component: record → preview → upload to S3 - ContentTabs: toggle between homework description and lesson content (TipTap read-only) - Homework list: 4-color status badges with proper filtering - API routes: /api/curator/upload and /api/curator/audio-upload Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
ALTER TABLE "HomeworkSubmission" ADD COLUMN "status" TEXT NOT NULL DEFAULT 'PENDING';
|
||||
ALTER TABLE "HomeworkSubmission" ADD COLUMN "statusAt" TIMESTAMP(3);
|
||||
@@ -0,0 +1,2 @@
|
||||
ALTER TABLE "HomeworkFeedback" ADD COLUMN "files" JSONB;
|
||||
ALTER TABLE "HomeworkFeedback" ADD COLUMN "audioUrl" TEXT;
|
||||
+10
-6
@@ -258,12 +258,14 @@ model Homework {
|
||||
}
|
||||
|
||||
model HomeworkSubmission {
|
||||
id String @id @default(cuid())
|
||||
homeworkId String
|
||||
userId String
|
||||
text String?
|
||||
files Json?
|
||||
submittedAt DateTime @default(now())
|
||||
id String @id @default(cuid())
|
||||
homeworkId String
|
||||
userId String
|
||||
text String?
|
||||
files Json?
|
||||
status String @default("PENDING") // PENDING | REVIEWING | APPROVED | REJECTED
|
||||
statusAt DateTime?
|
||||
submittedAt DateTime @default(now())
|
||||
|
||||
homework Homework @relation(fields: [homeworkId], references: [id], onDelete: Cascade)
|
||||
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
||||
@@ -275,6 +277,8 @@ model HomeworkFeedback {
|
||||
submissionId String
|
||||
curatorId String
|
||||
text String
|
||||
files Json? // [{name, url, size}]
|
||||
audioUrl String?
|
||||
createdAt DateTime @default(now())
|
||||
|
||||
submission HomeworkSubmission @relation(fields: [submissionId], references: [id], onDelete: Cascade)
|
||||
|
||||
Reference in New Issue
Block a user