refactor(models): replace hardcoded strings with typed enums

- Add ReviewState enum (pending, approved, changes_requested, etc.)
- Add DEFAULT_REVISION constant for git HEAD references
- service/pr/reviews.rs: use ReviewState for review creation and
  submission state validation
- service/pr/core.rs: use MergeStrategyKind for merge strategy
  selection
- service/im/stages.rs: use StagePrivacyLevel for stage creation
- service/im/invitations.rs: use Role enum for invitation role
  defaults
This commit is contained in:
zhenyi
2026-06-10 18:49:06 +08:00
parent 15b875e18d
commit 6205a6de0a
5 changed files with 334 additions and 45 deletions
+21
View File
@@ -203,6 +203,12 @@ string_enum! {
}
}
impl Default for Visibility {
fn default() -> Self {
Visibility::Unknown
}
}
string_enum! {
pub enum Priority {
None => "none",
@@ -792,3 +798,18 @@ string_enum! {
Unknown => "unknown",
}
}
string_enum! {
/// Pull request review states.
pub enum ReviewState {
Pending => "pending",
Approved => "approved",
ChangesRequested => "changes_requested",
Commented => "commented",
Dismissed => "dismissed",
Unknown => "unknown",
}
}
/// Default git revision reference.
pub const DEFAULT_REVISION: &str = "HEAD";