AI Implementation feature(869): Admin Area Blog and Blog Page (#58)

This commit was merged in pull request #58.
This commit is contained in:
2026-07-23 10:17:55 +00:00
parent d468cca766
commit 294873240b
32 changed files with 1798 additions and 117 deletions
+9 -3
View File
@@ -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)