feat(task-005): complete article intake dashboard detail flow
This commit is contained in:
@@ -386,6 +386,13 @@
|
||||
}
|
||||
],
|
||||
"default": null
|
||||
},
|
||||
"workflow_events": {
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/WorkflowEventSummary"
|
||||
},
|
||||
"title": "Workflow Events",
|
||||
"type": "array"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -1998,6 +2005,79 @@
|
||||
],
|
||||
"title": "ValidationError",
|
||||
"type": "object"
|
||||
},
|
||||
"WorkflowEventSummary": {
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"actor_user_id": {
|
||||
"anyOf": [
|
||||
{
|
||||
"format": "uuid",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": null,
|
||||
"title": "Actor User Id"
|
||||
},
|
||||
"article_id": {
|
||||
"format": "uuid",
|
||||
"title": "Article Id",
|
||||
"type": "string"
|
||||
},
|
||||
"created_at": {
|
||||
"format": "date-time",
|
||||
"title": "Created At",
|
||||
"type": "string"
|
||||
},
|
||||
"event_type": {
|
||||
"minLength": 1,
|
||||
"title": "Event Type",
|
||||
"type": "string"
|
||||
},
|
||||
"from_status": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/components/schemas/ArticleWorkflowStatus"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": null
|
||||
},
|
||||
"id": {
|
||||
"format": "uuid",
|
||||
"title": "Id",
|
||||
"type": "string"
|
||||
},
|
||||
"payload": {
|
||||
"additionalProperties": true,
|
||||
"title": "Payload",
|
||||
"type": "object"
|
||||
},
|
||||
"to_status": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/components/schemas/ArticleWorkflowStatus"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": null
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"id",
|
||||
"article_id",
|
||||
"event_type",
|
||||
"created_at"
|
||||
],
|
||||
"title": "WorkflowEventSummary",
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -2008,8 +2088,55 @@
|
||||
"openapi": "3.1.0",
|
||||
"paths": {
|
||||
"/api/articles": {
|
||||
"get": {
|
||||
"operationId": "list_articles_route_api_articles_get",
|
||||
"parameters": [
|
||||
{
|
||||
"in": "header",
|
||||
"name": "X-Demo-User-Email",
|
||||
"required": false,
|
||||
"schema": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "X-Demo-User-Email"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/ArticleListResponse"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Successful Response"
|
||||
},
|
||||
"422": {
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/HTTPValidationError"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Validation Error"
|
||||
}
|
||||
},
|
||||
"summary": "List Articles Route",
|
||||
"tags": [
|
||||
"articles"
|
||||
]
|
||||
},
|
||||
"post": {
|
||||
"operationId": "create_article_api_articles_post",
|
||||
"operationId": "post_article_api_articles_post",
|
||||
"parameters": [
|
||||
{
|
||||
"in": "header",
|
||||
@@ -2060,7 +2187,66 @@
|
||||
"description": "Validation Error"
|
||||
}
|
||||
},
|
||||
"summary": "Create Article",
|
||||
"summary": "Post Article",
|
||||
"tags": [
|
||||
"articles"
|
||||
]
|
||||
}
|
||||
},
|
||||
"/api/articles/{article_id}": {
|
||||
"get": {
|
||||
"operationId": "get_article_api_articles__article_id__get",
|
||||
"parameters": [
|
||||
{
|
||||
"in": "path",
|
||||
"name": "article_id",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"format": "uuid",
|
||||
"title": "Article Id",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"in": "header",
|
||||
"name": "X-Demo-User-Email",
|
||||
"required": false,
|
||||
"schema": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "X-Demo-User-Email"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/ArticleDetailResponse"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Successful Response"
|
||||
},
|
||||
"422": {
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/HTTPValidationError"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Validation Error"
|
||||
}
|
||||
},
|
||||
"summary": "Get Article",
|
||||
"tags": [
|
||||
"articles"
|
||||
]
|
||||
|
||||
@@ -57,6 +57,7 @@ export type ArticleDetailResponse = {
|
||||
research_manifests?: ResearchArtifactManifestSummary[];
|
||||
reviews?: ReviewSummary[];
|
||||
target_site?: TargetSiteConfig | null;
|
||||
workflow_events?: WorkflowEventSummary[];
|
||||
};
|
||||
|
||||
export type ArticleListResponse = {
|
||||
@@ -335,3 +336,14 @@ export type ValidationError = {
|
||||
msg: string;
|
||||
type: string;
|
||||
};
|
||||
|
||||
export type WorkflowEventSummary = {
|
||||
actor_user_id?: string | null;
|
||||
article_id: string;
|
||||
created_at: string;
|
||||
event_type: string;
|
||||
from_status?: ArticleWorkflowStatus | null;
|
||||
id: string;
|
||||
payload?: Record<string, unknown>;
|
||||
to_status?: ArticleWorkflowStatus | null;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user