feat(pages): add pages table schema and sqlc queries
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
620ab6c6fa
commit
f17597e4b8
4 changed files with 284 additions and 0 deletions
34
sql/queries/pages.sql
Normal file
34
sql/queries/pages.sql
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
-- name: SelectPagesOfSite :many
|
||||
SELECT * FROM pages
|
||||
WHERE site_id = ? ORDER BY sort_order ASC;
|
||||
|
||||
-- name: SelectPage :one
|
||||
SELECT * FROM pages WHERE id = ? LIMIT 1;
|
||||
|
||||
-- name: SelectPageByGUID :one
|
||||
SELECT * FROM pages WHERE guid = ? LIMIT 1;
|
||||
|
||||
-- name: SelectPageBySlugAndSite :one
|
||||
SELECT * FROM pages WHERE site_id = ? AND slug = ? LIMIT 1;
|
||||
|
||||
-- name: InsertPage :one
|
||||
INSERT INTO pages (
|
||||
site_id, guid, title, slug, body, page_type, show_in_nav, sort_order, created_at, updated_at
|
||||
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||
RETURNING id;
|
||||
|
||||
-- name: UpdatePage :exec
|
||||
UPDATE pages SET
|
||||
title = ?,
|
||||
slug = ?,
|
||||
body = ?,
|
||||
page_type = ?,
|
||||
show_in_nav = ?,
|
||||
updated_at = ?
|
||||
WHERE id = ?;
|
||||
|
||||
-- name: UpdatePageSortOrder :exec
|
||||
UPDATE pages SET sort_order = ? WHERE id = ?;
|
||||
|
||||
-- name: DeletePage :exec
|
||||
DELETE FROM pages WHERE id = ?;
|
||||
17
sql/schema/06_pages.up.sql
Normal file
17
sql/schema/06_pages.up.sql
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
CREATE TABLE pages (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
site_id INTEGER NOT NULL,
|
||||
guid TEXT NOT NULL,
|
||||
title TEXT NOT NULL,
|
||||
slug TEXT NOT NULL,
|
||||
body TEXT NOT NULL,
|
||||
page_type INTEGER NOT NULL DEFAULT 0,
|
||||
show_in_nav INTEGER NOT NULL DEFAULT 0,
|
||||
sort_order INTEGER NOT NULL DEFAULT 0,
|
||||
created_at INTEGER NOT NULL,
|
||||
updated_at INTEGER NOT NULL,
|
||||
FOREIGN KEY (site_id) REFERENCES sites (id) ON DELETE CASCADE
|
||||
);
|
||||
CREATE INDEX idx_pages_site ON pages (site_id);
|
||||
CREATE UNIQUE INDEX idx_pages_guid ON pages (guid);
|
||||
CREATE UNIQUE INDEX idx_pages_site_slug ON pages (site_id, slug);
|
||||
Loading…
Add table
Add a link
Reference in a new issue