feat: publish Dever core with project scaffolding and versioned AI skills
This commit is contained in:
1 parent
70fa73cdc2
commit
ac458ffa7f
960 files changed
+221319
-1163
No files matched your search
@@ -0,0 +1,18 @@
|
||||
# 后台修订接口
|
||||
|
||||
后台修订接口创建文章修订记录。
|
||||
|
||||
- 包:`content.revision.api.admin.manage`
|
||||
- 公开类型:无
|
||||
- 公开方法:无
|
||||
- 使用:无
|
||||
|
||||
## 创建修订
|
||||
|
||||
创建修订委托给应用。
|
||||
|
||||
- 声明:`post create`
|
||||
|
||||
```dever
|
||||
post create = app.create
|
||||
```
|
||||
@@ -0,0 +1,89 @@
|
||||
# 内容修订应用
|
||||
|
||||
修订应用创建文章历史版本并返回公开视图。
|
||||
|
||||
- 包:`content.revision.app`
|
||||
- 公开类型:
|
||||
- `RevisionView`
|
||||
- 公开方法:
|
||||
- `create`
|
||||
- 使用:
|
||||
- `content.revision.create(selected_article_id, expected_version, title, body, category_id, asset_id)`
|
||||
|
||||
## 修订视图
|
||||
|
||||
不暴露存储实现细节的修订结果。
|
||||
|
||||
- 类型:`RevisionView`
|
||||
- 字段:
|
||||
- `id: model.id`:记录标识
|
||||
- `article_id: news.article.model.id`:文章标识
|
||||
- `version: Int`:当前编辑版本
|
||||
- `title: Text`:文章标题
|
||||
- `body: Text`:正文
|
||||
- `status: Text`:业务状态
|
||||
|
||||
```dever
|
||||
type RevisionView {
|
||||
id: model.id
|
||||
article_id: news.article.model.id
|
||||
version: Int
|
||||
title: Text
|
||||
body: Text
|
||||
status: Text
|
||||
}
|
||||
```
|
||||
|
||||
## 创建修订
|
||||
|
||||
按文章已有版本数生成下一个版本。
|
||||
|
||||
- 函数:`create`
|
||||
- 输入:
|
||||
- `selected_article_id: news.article.model.id`:待编辑文章标识
|
||||
- `expected_version: Int`:调用者读取的编辑版本
|
||||
- `title: Text`:文章标题
|
||||
- `body: Text`:正文
|
||||
- `category_id: content.category.model.id?`:可选分类引用
|
||||
- `asset_id: media.asset.model.id?`:可选媒体引用
|
||||
- 输出:
|
||||
- `revision: RevisionView`:该声明的业务值
|
||||
|
||||
```dever
|
||||
transaction create(
|
||||
selected_article_id: news.article.model.id,
|
||||
expected_version: Int,
|
||||
title: Text,
|
||||
body: Text,
|
||||
category_id: content.category.model.id?,
|
||||
asset_id: media.asset.model.id?
|
||||
) (revision: RevisionView) {
|
||||
edited = news.article.edit(
|
||||
selected_article_id,
|
||||
expected_version,
|
||||
title,
|
||||
body,
|
||||
category_id,
|
||||
asset_id
|
||||
)
|
||||
stored = model.create(
|
||||
{
|
||||
article_id = selected_article_id
|
||||
version = edited.version
|
||||
title = edited.title
|
||||
body = edited.body
|
||||
category_id = edited.category_id
|
||||
asset_id = edited.asset_id
|
||||
status = model.RevisionStatus.Draft
|
||||
}
|
||||
)
|
||||
revision = RevisionView {
|
||||
id = stored.id
|
||||
article_id = stored.article_id
|
||||
version = stored.version
|
||||
title = stored.title
|
||||
body = stored.body
|
||||
status = "draft"
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,62 @@
|
||||
# 内容修订模型
|
||||
|
||||
修订记录保存文章历史内容和版本。
|
||||
|
||||
- 包:`content.revision.model`
|
||||
- 公开类型:
|
||||
- `RevisionStatus`
|
||||
- `Revision`
|
||||
- 公开方法:无
|
||||
- 使用:无
|
||||
|
||||
## 修订状态
|
||||
|
||||
修订状态枚举。
|
||||
|
||||
- 类型:`RevisionStatus`
|
||||
- 分支:
|
||||
- `Draft`:该声明的业务值
|
||||
- `Published`:该声明的业务值
|
||||
|
||||
```dever
|
||||
type RevisionStatus {
|
||||
Draft = "草稿"
|
||||
Published = "已发布"
|
||||
}
|
||||
```
|
||||
|
||||
## 修订记录
|
||||
|
||||
文章的一个历史版本。
|
||||
|
||||
- 类型:`Revision`
|
||||
- 字段:
|
||||
- `article_id: news.article.model.id`:文章标识
|
||||
- `version: Int`:当前编辑版本
|
||||
- `title: Text(1, 160)`:文章标题
|
||||
- `body: Text`:正文
|
||||
- `category_id: content.category.model.id?`:可选分类引用
|
||||
- `asset_id: media.asset.model.id?`:可选媒体引用
|
||||
- `status: RevisionStatus`:业务状态
|
||||
|
||||
```dever
|
||||
type Revision {
|
||||
article_id: news.article.model.id index
|
||||
version: Int
|
||||
title: Text(1, 160)
|
||||
body: Text
|
||||
category_id: content.category.model.id?
|
||||
asset_id: media.asset.model.id?
|
||||
status: RevisionStatus default RevisionStatus.Draft index
|
||||
}
|
||||
```
|
||||
|
||||
## 版本唯一约束
|
||||
|
||||
同一文章的版本号唯一。
|
||||
|
||||
- 声明:`unique(article_id, version)`
|
||||
|
||||
```dever
|
||||
unique(article_id, version)
|
||||
```
|
||||
Reference in new issue
Block a user