TopicStatus.java
2.2 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
package com.aigeo.common.enums;
import lombok.Getter;
/**
* 话题状态枚举
* 对应数据库字段:ai_topics.status
*
* 话题在内容管理流程中的状态:
* - RAW: 原始状态,刚抓取的话题数据
* - CURATED: 已策展,经过人工筛选和编辑
* - REJECTED: 已拒绝,不适合用于内容生成
*
* @author AIGEO Team
* @since 1.0.0
*/
@Getter
public enum TopicStatus {
/**
* 原始状态 - 刚抓取或导入的话题
*/
RAW("raw", "原始"),
/**
* 已策展 - 经过筛选和编辑的高质量话题
*/
CURATED("curated", "已策展"),
/**
* 已拒绝 - 不适合或质量不佳的话题
*/
REJECTED("rejected", "已拒绝");
/**
* 数据库存储值
*/
private final String code;
/**
* 显示名称
*/
private final String displayName;
TopicStatus(String code, String displayName) {
this.code = code;
this.displayName = displayName;
}
/**
* 根据代码获取枚举
*/
public static TopicStatus fromCode(String code) {
for (TopicStatus status : values()) {
if (status.code.equals(code)) {
return status;
}
}
throw new IllegalArgumentException("未知的话题状态代码: " + code);
}
/**
* 检查是否为可用状态
*/
public boolean isUsable() {
return this == CURATED;
}
/**
* 检查是否可以编辑
*/
public boolean isEditable() {
return this == RAW || this == CURATED;
}
/**
* 检查是否需要审核
*/
public boolean needsReview() {
return this == RAW;
}
/**
* 获取下一个可能的状态
*/
public TopicStatus[] getNextPossibleStatuses() {
switch (this) {
case RAW:
return new TopicStatus[]{CURATED, REJECTED};
case CURATED:
return new TopicStatus[]{RAW, REJECTED};
case REJECTED:
return new TopicStatus[]{RAW, CURATED};
default:
return new TopicStatus[]{};
}
}
}