AI Implementation feature(869): Admin Area Blog and Blog Page (#58)
This commit was merged in pull request #58.
This commit is contained in:
@@ -3,7 +3,7 @@ type: database
|
||||
title: Blog Post Table
|
||||
description: blog_post table — draft/published Markdown posts surfaced on the public landing page.
|
||||
tags: [database, blog, markdown]
|
||||
timestamp: 2026-07-21T18:28:00Z
|
||||
timestamp: 2026-07-23T10:12:24Z
|
||||
---
|
||||
|
||||
# Schema
|
||||
@@ -27,12 +27,18 @@ timestamp: 2026-07-21T18:28:00Z
|
||||
# Behavior
|
||||
|
||||
* Only rows with `status = 'published'` are exposed through the public
|
||||
endpoint `GET /api/v1/blog/posts` (see
|
||||
[REST API Overview](/api/rest-overview.md)). Drafts are hidden.
|
||||
endpoint `GET /api/v1/blog/posts` (see [Blog API](/api/blog.md)). Drafts
|
||||
are hidden from the landing page and authenticated `/blog` page.
|
||||
* The admin CRUD endpoints under `/api/v1/admin/blog/posts` expose both
|
||||
statuses and all timestamps to administrators.
|
||||
* First publication sets `published_at`. Later edits, demotion to draft,
|
||||
and republication preserve that original timestamp.
|
||||
* `BlogService.listPublished()` orders by `published_at DESC`, falling
|
||||
back to `created_at` when `published_at` is null.
|
||||
|
||||
# See also
|
||||
|
||||
- [Database Schema Overview](/database/schema.md)
|
||||
- [Blog API](/api/blog.md)
|
||||
- [Blog Publishing and Reading](/guides/blog.md)
|
||||
- [Landing Page Guide](/guides/landing-page.md)
|
||||
|
||||
Reference in New Issue
Block a user