Files
ainovel-clients/domain/review.go
voocel 27bd85ef90 init
2026-03-07 21:25:55 +08:00

52 lines
1.8 KiB
Go

package domain
// TimelineEvent 时间线事件。
type TimelineEvent struct {
Chapter int `json:"chapter"`
Time string `json:"time"`
Event string `json:"event"`
Characters []string `json:"characters,omitempty"`
}
// ForeshadowEntry 伏笔条目。
type ForeshadowEntry struct {
ID string `json:"id"`
Description string `json:"description"`
PlantedAt int `json:"planted_at"`
Status string `json:"status"` // planted / advanced / resolved
ResolvedAt int `json:"resolved_at,omitempty"`
}
// ForeshadowUpdate 伏笔增量操作。
type ForeshadowUpdate struct {
ID string `json:"id"`
Action string `json:"action"` // plant / advance / resolve
Description string `json:"description,omitempty"`
}
// RelationshipEntry 人物关系条目。
type RelationshipEntry struct {
CharacterA string `json:"character_a"`
CharacterB string `json:"character_b"`
Relation string `json:"relation"`
Chapter int `json:"chapter"`
}
// ConsistencyIssue 一致性问题。
type ConsistencyIssue struct {
Type string `json:"type"` // timeline / foreshadow / relationship / character
Severity string `json:"severity"` // error / warning
Description string `json:"description"`
Suggestion string `json:"suggestion,omitempty"`
}
// ReviewEntry Editor 的审阅条目。
type ReviewEntry struct {
Chapter int `json:"chapter"`
Scope string `json:"scope"` // chapter / global
Issues []ConsistencyIssue `json:"issues"`
Verdict string `json:"verdict"` // accept / polish / rewrite
Summary string `json:"summary"`
AffectedChapters []int `json:"affected_chapters,omitempty"` // 需要重写/打磨的章节号
}