Task 002: add shared domain contracts
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from .enums import ArticleWorkflowStatus
|
||||
|
||||
|
||||
ARTICLE_WORKFLOW_STATUSES: tuple[ArticleWorkflowStatus, ...] = (
|
||||
ArticleWorkflowStatus.ARTICLE_BRIEF_CREATED,
|
||||
ArticleWorkflowStatus.BOUNDARY_QUESTIONS_GENERATED,
|
||||
ArticleWorkflowStatus.BOUNDARY_ANSWERS_SUBMITTED,
|
||||
ArticleWorkflowStatus.PLAN_GENERATED,
|
||||
ArticleWorkflowStatus.PLAN_REVIEW_REQUIRED,
|
||||
ArticleWorkflowStatus.PLAN_REVISION_REQUIRED,
|
||||
ArticleWorkflowStatus.RESEARCH_RUNNING,
|
||||
ArticleWorkflowStatus.EVIDENCE_MATRIX_READY,
|
||||
ArticleWorkflowStatus.PARALLEL_PRODUCTION_RUNNING,
|
||||
ArticleWorkflowStatus.DRAFT_ASSEMBLED,
|
||||
ArticleWorkflowStatus.SEO_AND_LANGUAGE_REVIEW_READY,
|
||||
ArticleWorkflowStatus.FINAL_REVIEW_REQUIRED,
|
||||
ArticleWorkflowStatus.FINAL_REVISION_REQUIRED,
|
||||
ArticleWorkflowStatus.PUBLISH_DRY_RUN_REQUIRED,
|
||||
ArticleWorkflowStatus.PUBLISH_COMMIT_READY,
|
||||
ArticleWorkflowStatus.PUBLISH_COMMIT_CREATED,
|
||||
)
|
||||
|
||||
|
||||
ARTICLE_WORKFLOW_TRANSITIONS: dict[
|
||||
ArticleWorkflowStatus, tuple[ArticleWorkflowStatus, ...]
|
||||
] = {
|
||||
ArticleWorkflowStatus.ARTICLE_BRIEF_CREATED: (
|
||||
ArticleWorkflowStatus.BOUNDARY_QUESTIONS_GENERATED,
|
||||
),
|
||||
ArticleWorkflowStatus.BOUNDARY_QUESTIONS_GENERATED: (
|
||||
ArticleWorkflowStatus.BOUNDARY_ANSWERS_SUBMITTED,
|
||||
),
|
||||
ArticleWorkflowStatus.BOUNDARY_ANSWERS_SUBMITTED: (
|
||||
ArticleWorkflowStatus.PLAN_GENERATED,
|
||||
),
|
||||
ArticleWorkflowStatus.PLAN_GENERATED: (
|
||||
ArticleWorkflowStatus.PLAN_REVIEW_REQUIRED,
|
||||
),
|
||||
ArticleWorkflowStatus.PLAN_REVIEW_REQUIRED: (
|
||||
ArticleWorkflowStatus.PLAN_REVISION_REQUIRED,
|
||||
ArticleWorkflowStatus.RESEARCH_RUNNING,
|
||||
),
|
||||
ArticleWorkflowStatus.PLAN_REVISION_REQUIRED: (
|
||||
ArticleWorkflowStatus.PLAN_GENERATED,
|
||||
),
|
||||
ArticleWorkflowStatus.RESEARCH_RUNNING: (
|
||||
ArticleWorkflowStatus.EVIDENCE_MATRIX_READY,
|
||||
),
|
||||
ArticleWorkflowStatus.EVIDENCE_MATRIX_READY: (
|
||||
ArticleWorkflowStatus.PARALLEL_PRODUCTION_RUNNING,
|
||||
),
|
||||
ArticleWorkflowStatus.PARALLEL_PRODUCTION_RUNNING: (
|
||||
ArticleWorkflowStatus.DRAFT_ASSEMBLED,
|
||||
),
|
||||
ArticleWorkflowStatus.DRAFT_ASSEMBLED: (
|
||||
ArticleWorkflowStatus.SEO_AND_LANGUAGE_REVIEW_READY,
|
||||
),
|
||||
ArticleWorkflowStatus.SEO_AND_LANGUAGE_REVIEW_READY: (
|
||||
ArticleWorkflowStatus.FINAL_REVIEW_REQUIRED,
|
||||
),
|
||||
ArticleWorkflowStatus.FINAL_REVIEW_REQUIRED: (
|
||||
ArticleWorkflowStatus.FINAL_REVISION_REQUIRED,
|
||||
ArticleWorkflowStatus.PUBLISH_DRY_RUN_REQUIRED,
|
||||
),
|
||||
ArticleWorkflowStatus.FINAL_REVISION_REQUIRED: (
|
||||
ArticleWorkflowStatus.DRAFT_ASSEMBLED,
|
||||
),
|
||||
ArticleWorkflowStatus.PUBLISH_DRY_RUN_REQUIRED: (
|
||||
ArticleWorkflowStatus.PUBLISH_COMMIT_READY,
|
||||
),
|
||||
ArticleWorkflowStatus.PUBLISH_COMMIT_READY: (
|
||||
ArticleWorkflowStatus.PUBLISH_COMMIT_CREATED,
|
||||
),
|
||||
ArticleWorkflowStatus.PUBLISH_COMMIT_CREATED: (),
|
||||
}
|
||||
|
||||
|
||||
def next_workflow_statuses(
|
||||
status: ArticleWorkflowStatus,
|
||||
) -> tuple[ArticleWorkflowStatus, ...]:
|
||||
return ARTICLE_WORKFLOW_TRANSITIONS[status]
|
||||
Reference in New Issue
Block a user