| syntax = "proto3"; |
| |
| package workflows; |
| |
| message Thread { |
| int64 forum_id = 1; |
| int64 thread_id = 2; |
| } |
| |
| message Action { |
| message ReplyAction { |
| string payload = 1; |
| bool subscribe = 2; |
| bool mark_as_answer = 3; |
| } |
| |
| message MoveAction { |
| int64 forum_id = 1; |
| string category = 2; |
| string language = 3; |
| map<string, string> property = 4; |
| } |
| |
| message MarkDuplicateAction { |
| Thread destination = 1; |
| } |
| |
| message UnmarkDuplicateAction {} |
| |
| message StarAction { |
| bool star = 1; // true stars, and false unstars. |
| } |
| |
| message SubscribeAction { |
| bool subscribe = 1; // true subscribes, false unsubscribes. |
| } |
| |
| message VoteAction { |
| enum Vote { |
| NONE = 0; |
| UP = 1; |
| DOWN = -1; |
| } |
| Vote vote = 1; |
| } |
| |
| message AttributeAction { |
| enum AttributeAction { |
| AA_NONE = 0; |
| AA_LOCK = 1; |
| AA_UNLOCK = 2; |
| AA_PIN = 3; |
| AA_UNPIN = 4; |
| AA_NON_ISSUE = 5; |
| AA_OBSOLETE = 6; |
| AA_REVERT = 7; |
| AA_SET_TRENDING = 8; |
| AA_UNSET_TRENDING = 9; |
| AA_SET_ISSUE_RESOLVED = 10; |
| AA_UNSET_ISSUE_RESOLVED = 11; |
| } |
| AttributeAction attribute_action = 1; |
| } |
| |
| message ReportAction { |
| enum ReportType { |
| RT_UNKNOWN = 0; |
| RT_OFF_TOPIC = 1; |
| RT_ABUSE = 2; |
| } |
| ReportType report_type = 1; |
| } |
| |
| oneof action { |
| ReplyAction reply_action = 1; |
| MoveAction move_action = 2; |
| MarkDuplicateAction mark_duplicate_action = 3; |
| UnmarkDuplicateAction unmark_duplicate_action = 4; |
| AttributeAction attribute_action = 5; |
| StarAction star_action = 16; |
| SubscribeAction subscribe_action = 17; |
| VoteAction vote_action = 18; |
| ReportAction report_action = 19; |
| } |
| } |
| |
| message Workflow { |
| string name = 1; |
| string description = 2; |
| int32 index = 3; |
| repeated Action actions = 4; |
| } |