From 9cbf64bb1fa6bfaaa1ab3063468fe1224fd03774 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Fri, 19 Jun 2026 18:52:44 -0400 Subject: [PATCH] get rid of variants --- ...uploaded_video_note_reported_model_type.rs | 37 ++++++++++++------- .../uploaded_video_detected_model_type.rs | 37 ++++++++++++------- .../endpoints/video_info/provenance.rs | 4 +- 3 files changed, 49 insertions(+), 29 deletions(-) diff --git a/crates/schema/public/enums/src/by_table/uploaded_video_notes/uploaded_video_note_reported_model_type.rs b/crates/schema/public/enums/src/by_table/uploaded_video_notes/uploaded_video_note_reported_model_type.rs index 9147c9284c..28a5fca764 100644 --- a/crates/schema/public/enums/src/by_table/uploaded_video_notes/uploaded_video_note_reported_model_type.rs +++ b/crates/schema/public/enums/src/by_table/uploaded_video_notes/uploaded_video_note_reported_model_type.rs @@ -43,9 +43,11 @@ pub enum UploadedVideoNoteReportedModelType { Seedance10Lite, #[serde(rename = "seedance_1p5_pro")] Seedance1p5Pro, - #[serde(rename = "seedance_2p0")] + // `preview_model` is a retired alias that collapses onto Seedance 2.0. + #[serde(rename = "seedance_2p0", alias = "preview_model")] Seedance2p0, - #[serde(rename = "seedance_2p0_fast")] + // `preview_model_fast` is a retired alias that collapses onto Seedance 2.0 Fast. + #[serde(rename = "seedance_2p0_fast", alias = "preview_model_fast")] Seedance2p0Fast, #[serde(rename = "seedance_2p0_bp")] Seedance2p0BytePlus, @@ -73,10 +75,6 @@ pub enum UploadedVideoNoteReportedModelType { Veo3p1, #[serde(rename = "veo_3p1_fast")] Veo3p1Fast, - #[serde(rename = "preview_model")] - PreviewModel, - #[serde(rename = "preview_model_fast")] - PreviewModelFast, } impl_enum_display_and_debug_using_to_str!(UploadedVideoNoteReportedModelType); @@ -114,8 +112,6 @@ impl UploadedVideoNoteReportedModelType { Self::Veo3Fast => "veo_3_fast", Self::Veo3p1 => "veo_3p1", Self::Veo3p1Fast => "veo_3p1_fast", - Self::PreviewModel => "preview_model", - Self::PreviewModelFast => "preview_model_fast", } } @@ -149,8 +145,9 @@ impl UploadedVideoNoteReportedModelType { "veo_3_fast" => Ok(Self::Veo3Fast), "veo_3p1" => Ok(Self::Veo3p1), "veo_3p1_fast" => Ok(Self::Veo3p1Fast), - "preview_model" => Ok(Self::PreviewModel), - "preview_model_fast" => Ok(Self::PreviewModelFast), + // Retired values: collapse onto the Seedance 2.0 equivalents. + "preview_model" => Ok(Self::Seedance2p0), + "preview_model_fast" => Ok(Self::Seedance2p0Fast), _ => Err(format!("invalid value: {:?}", value)), } } @@ -185,8 +182,6 @@ impl UploadedVideoNoteReportedModelType { Self::Veo3Fast, Self::Veo3p1, Self::Veo3p1Fast, - Self::PreviewModel, - Self::PreviewModelFast, ]) } } @@ -227,7 +222,23 @@ mod tests { fn variant_count() { use strum::IntoEnumIterator; assert_eq!(UploadedVideoNoteReportedModelType::all_variants().len(), UploadedVideoNoteReportedModelType::iter().len()); - assert_eq!(UploadedVideoNoteReportedModelType::COUNT, 30); + assert_eq!(UploadedVideoNoteReportedModelType::COUNT, 28); + } + + /// Retired `preview_model*` values must still decode, collapsing onto Seedance 2.0. + #[test] + fn legacy_preview_values_map_to_seedance() { + assert_eq!( + UploadedVideoNoteReportedModelType::from_str("preview_model").unwrap(), + UploadedVideoNoteReportedModelType::Seedance2p0 + ); + assert_eq!( + UploadedVideoNoteReportedModelType::from_str("preview_model_fast").unwrap(), + UploadedVideoNoteReportedModelType::Seedance2p0Fast + ); + let decoded: UploadedVideoNoteReportedModelType = + serde_json::from_str("\"preview_model\"").unwrap(); + assert_eq!(decoded, UploadedVideoNoteReportedModelType::Seedance2p0); } #[test] diff --git a/crates/schema/public/enums/src/by_table/uploaded_videos/uploaded_video_detected_model_type.rs b/crates/schema/public/enums/src/by_table/uploaded_videos/uploaded_video_detected_model_type.rs index 017b7c6d74..9a79c0e8cf 100644 --- a/crates/schema/public/enums/src/by_table/uploaded_videos/uploaded_video_detected_model_type.rs +++ b/crates/schema/public/enums/src/by_table/uploaded_videos/uploaded_video_detected_model_type.rs @@ -43,9 +43,11 @@ pub enum UploadedVideoDetectedModelType { Seedance10Lite, #[serde(rename = "seedance_1p5_pro")] Seedance1p5Pro, - #[serde(rename = "seedance_2p0")] + // `preview_model` is a retired alias that collapses onto Seedance 2.0. + #[serde(rename = "seedance_2p0", alias = "preview_model")] Seedance2p0, - #[serde(rename = "seedance_2p0_fast")] + // `preview_model_fast` is a retired alias that collapses onto Seedance 2.0 Fast. + #[serde(rename = "seedance_2p0_fast", alias = "preview_model_fast")] Seedance2p0Fast, #[serde(rename = "seedance_2p0_bp")] Seedance2p0BytePlus, @@ -73,10 +75,6 @@ pub enum UploadedVideoDetectedModelType { Veo3p1, #[serde(rename = "veo_3p1_fast")] Veo3p1Fast, - #[serde(rename = "preview_model")] - PreviewModel, - #[serde(rename = "preview_model_fast")] - PreviewModelFast, } impl_enum_display_and_debug_using_to_str!(UploadedVideoDetectedModelType); @@ -114,8 +112,6 @@ impl UploadedVideoDetectedModelType { Self::Veo3Fast => "veo_3_fast", Self::Veo3p1 => "veo_3p1", Self::Veo3p1Fast => "veo_3p1_fast", - Self::PreviewModel => "preview_model", - Self::PreviewModelFast => "preview_model_fast", } } @@ -149,8 +145,9 @@ impl UploadedVideoDetectedModelType { "veo_3_fast" => Ok(Self::Veo3Fast), "veo_3p1" => Ok(Self::Veo3p1), "veo_3p1_fast" => Ok(Self::Veo3p1Fast), - "preview_model" => Ok(Self::PreviewModel), - "preview_model_fast" => Ok(Self::PreviewModelFast), + // Retired values: collapse onto the Seedance 2.0 equivalents. + "preview_model" => Ok(Self::Seedance2p0), + "preview_model_fast" => Ok(Self::Seedance2p0Fast), _ => Err(format!("invalid value: {:?}", value)), } } @@ -185,8 +182,6 @@ impl UploadedVideoDetectedModelType { Self::Veo3Fast, Self::Veo3p1, Self::Veo3p1Fast, - Self::PreviewModel, - Self::PreviewModelFast, ]) } } @@ -227,7 +222,23 @@ mod tests { fn variant_count() { use strum::IntoEnumIterator; assert_eq!(UploadedVideoDetectedModelType::all_variants().len(), UploadedVideoDetectedModelType::iter().len()); - assert_eq!(UploadedVideoDetectedModelType::COUNT, 30); + assert_eq!(UploadedVideoDetectedModelType::COUNT, 28); + } + + /// Retired `preview_model*` values must still decode, collapsing onto Seedance 2.0. + #[test] + fn legacy_preview_values_map_to_seedance() { + assert_eq!( + UploadedVideoDetectedModelType::from_str("preview_model").unwrap(), + UploadedVideoDetectedModelType::Seedance2p0 + ); + assert_eq!( + UploadedVideoDetectedModelType::from_str("preview_model_fast").unwrap(), + UploadedVideoDetectedModelType::Seedance2p0Fast + ); + let decoded: UploadedVideoDetectedModelType = + serde_json::from_str("\"preview_model\"").unwrap(); + assert_eq!(decoded, UploadedVideoDetectedModelType::Seedance2p0); } #[test] diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/video_info/provenance.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/video_info/provenance.rs index ba412fd150..3122cb4769 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/video_info/provenance.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/video_info/provenance.rs @@ -112,9 +112,7 @@ pub fn model_family_for_type( | Type::Seedance2p0Ultra | Type::Seedance2p0UltraFast | Type::Seedance2p0BytePlusUltra - | Type::Seedance2p0BytePlusUltraFast - | Type::PreviewModel - | Type::PreviewModelFast => Family::Seedance, + | Type::Seedance2p0BytePlusUltraFast => Family::Seedance, Type::Sora2 | Type::Sora2Pro => Family::Sora, Type::Veo2 | Type::Veo3 | Type::Veo3Fast | Type::Veo3p1 | Type::Veo3p1Fast => Family::Veo, }