feat(faq): implement FAQ moderation workflow with import, review, and publish functionalities
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
-- FAQ moderation workflow based on student AI chats
|
||||
|
||||
CREATE TABLE IF NOT EXISTS faq_entries (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
organization_id UUID NOT NULL,
|
||||
question TEXT NOT NULL,
|
||||
answer TEXT NOT NULL,
|
||||
tags TEXT[] DEFAULT '{}',
|
||||
source VARCHAR(50) NOT NULL DEFAULT 'human-reviewed',
|
||||
created_by UUID,
|
||||
is_published BOOLEAN NOT NULL DEFAULT TRUE,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_faq_entries_org_published
|
||||
ON faq_entries (organization_id, is_published, created_at DESC);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS faq_review_queue (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
organization_id UUID NOT NULL,
|
||||
source_ai_usage_log_id UUID UNIQUE,
|
||||
user_id UUID NOT NULL,
|
||||
lesson_id UUID,
|
||||
session_id UUID,
|
||||
question_text TEXT NOT NULL,
|
||||
ai_response TEXT,
|
||||
rag_context_found BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
status VARCHAR(20) NOT NULL DEFAULT 'pending',
|
||||
reviewer_id UUID,
|
||||
reviewer_note TEXT,
|
||||
human_answer TEXT,
|
||||
faq_entry_id UUID,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||
reviewed_at TIMESTAMPTZ,
|
||||
CONSTRAINT chk_faq_review_status CHECK (status IN ('pending', 'answered', 'published', 'dismissed')),
|
||||
CONSTRAINT fk_faq_review_faq_entry FOREIGN KEY (faq_entry_id) REFERENCES faq_entries(id)
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_faq_review_org_status
|
||||
ON faq_review_queue (organization_id, status, created_at DESC);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_faq_review_source_log
|
||||
ON faq_review_queue (source_ai_usage_log_id);
|
||||
Reference in New Issue
Block a user