ContentStatus.java
2.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
package com.aigeo.common.enums;
import lombok.Getter;
/**
* 内容状态枚举
* 对应数据库字段:
* - ai_keywords.status
* - ai_topics.status
* - ai_articles.status
* - ai_landing_page_projects.status
* - ai_website_projects.status
*
* @author AIGEO Team
* @since 1.0.0
*/
@Getter
public enum ContentStatus {
/**
* 待处理 - 内容已创建,等待处理
*/
PENDING("pending", "待处理"),
/**
* 已计划 - 内容已安排进入生成计划
*/
PLANNED("planned", "已计划"),
/**
* 已生成 - 内容生成完成
*/
GENERATED("generated", "已生成"),
/**
* 已发布 - 内容已发布到目标平台
*/
PUBLISHED("published", "已发布"),
/**
* 草稿 - 内容处于草稿状态
*/
DRAFT("draft", "草稿"),
/**
* 已审核 - 内容已通过审核
*/
APPROVED("approved", "已审核"),
/**
* 已归档 - 内容已归档
*/
ARCHIVED("archived", "已归档"),
/**
* 已删除 - 内容已标记删除
*/
DELETED("deleted", "已删除"),
/**
* 配置中 - 正在配置参数
*/
CONFIGURING("configuring", "配置中"),
/**
* 生成中 - 正在生成内容
*/
GENERATING("generating", "生成中"),
/**
* 已完成 - 所有流程完成
*/
COMPLETED("completed", "已完成");
/**
* 数据库存储值
*/
private final String code;
/**
* 显示名称
*/
private final String displayName;
ContentStatus(String code, String displayName) {
this.code = code;
this.displayName = displayName;
}
/**
* 根据代码获取枚举
*/
public static ContentStatus fromCode(String code) {
for (ContentStatus status : values()) {
if (status.code.equals(code)) {
return status;
}
}
throw new IllegalArgumentException("未知的内容状态代码: " + code);
}
/**
* 检查是否为最终状态
*/
public boolean isFinalStatus() {
return this == PUBLISHED || this == ARCHIVED || this == DELETED || this == COMPLETED;
}
/**
* 检查是否可以编辑
*/
public boolean isEditable() {
return this == DRAFT || this == PENDING;
}
/**
* 检查是否正在处理中
*/
public boolean isProcessing() {
return this == CONFIGURING || this == GENERATING;
}
/**
* 检查是否可以发布
*/
public boolean canPublish() {
return this == APPROVED || this == GENERATED || this == COMPLETED;
}
}