feat: FAQ management from admin, public /faq, homepage section, llms.txt
- Backend: faq_questions table (schema + migration), CRUD + reorder API, Swagger docs - Admin: FAQ page with create/edit, enable/disable, show on homepage, drag reorder - Public /faq page fetches enabled FAQs from API; layout builds dynamic JSON-LD - Homepage: FAQ section under Stay updated (homepage-enabled only) with See full FAQ link - llms.txt: FAQ section uses homepage FAQs from API - i18n: home.faq title/seeFull, admin FAQ nav Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -421,6 +421,22 @@ async function migrate() {
|
||||
created_at TEXT NOT NULL
|
||||
)
|
||||
`);
|
||||
|
||||
// FAQ questions table
|
||||
await (db as any).run(sql`
|
||||
CREATE TABLE IF NOT EXISTS faq_questions (
|
||||
id TEXT PRIMARY KEY,
|
||||
question TEXT NOT NULL,
|
||||
question_es TEXT,
|
||||
answer TEXT NOT NULL,
|
||||
answer_es TEXT,
|
||||
enabled INTEGER NOT NULL DEFAULT 1,
|
||||
show_on_homepage INTEGER NOT NULL DEFAULT 0,
|
||||
rank INTEGER NOT NULL DEFAULT 0,
|
||||
created_at TEXT NOT NULL,
|
||||
updated_at TEXT NOT NULL
|
||||
)
|
||||
`);
|
||||
} else {
|
||||
// PostgreSQL migrations
|
||||
await (db as any).execute(sql`
|
||||
@@ -790,6 +806,22 @@ async function migrate() {
|
||||
created_at TIMESTAMP NOT NULL
|
||||
)
|
||||
`);
|
||||
|
||||
// FAQ questions table
|
||||
await (db as any).execute(sql`
|
||||
CREATE TABLE IF NOT EXISTS faq_questions (
|
||||
id UUID PRIMARY KEY,
|
||||
question TEXT NOT NULL,
|
||||
question_es TEXT,
|
||||
answer TEXT NOT NULL,
|
||||
answer_es TEXT,
|
||||
enabled INTEGER NOT NULL DEFAULT 1,
|
||||
show_on_homepage INTEGER NOT NULL DEFAULT 0,
|
||||
rank INTEGER NOT NULL DEFAULT 0,
|
||||
created_at TIMESTAMP NOT NULL,
|
||||
updated_at TIMESTAMP NOT NULL
|
||||
)
|
||||
`);
|
||||
}
|
||||
|
||||
console.log('Migrations completed successfully!');
|
||||
|
||||
Reference in New Issue
Block a user