From cdb3b706cfaa7e384cedec5a3c951eb3ec6a495d Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Thu, 25 Jul 2024 16:09:49 -0400 Subject: [PATCH] clean up origin category a little --- _sql/migrations_squashed/media_files.sql | 5 +++-- .../media_files/media_file_origin_category.rs | 14 +++++++++++++- .../media_files/media_file_origin_model_type.rs | 10 ++++++++++ .../media_file_origin_product_category.rs | 10 ++++++++++ .../create/insert_media_file_from_file_upload.rs | 2 +- .../upsert/upsert_media_file_from_file_upload.rs | 2 +- 6 files changed, 38 insertions(+), 5 deletions(-) diff --git a/_sql/migrations_squashed/media_files.sql b/_sql/migrations_squashed/media_files.sql index 61a062a75c..9bd58d4514 100644 --- a/_sql/migrations_squashed/media_files.sql +++ b/_sql/migrations_squashed/media_files.sql @@ -30,6 +30,7 @@ CREATE TABLE media_files ( -- * 'processed' for processed file (eg. mp3 encoding, stem splitting, etc.) -- * 'upload' for direct user upload (from the filesystem) -- * 'device_api' for direct user uploads recorded using Browser/Device APIs. + -- * 'studio' for storyteller studio jobs origin_category VARCHAR(16) NOT NULL, -- TODO(bt,2024-01-12): Rename to origin_product. @@ -46,8 +47,8 @@ CREATE TABLE media_files ( -- * 'unknown' for legacy records without an associated product -- * 'face_animator' for uploads and outputs -- * 'face_mirror' for uploads and outputs - -- * 'video_style_transfer' for uploads and outputs - -- * 'storyteller_studio' for engine renders and outputs + -- * 'vst' for uploads and outputs + -- * 'studio' for engine renders and outputs -- * 'tts' for text to speech outputs -- * 'voice_conversion' for uploads or outputs (RVC or SVC) -- * 'zs_voice' for uploads or outputs for zero shot voice products diff --git a/crates/_types/enums/src/by_table/media_files/media_file_origin_category.rs b/crates/_types/enums/src/by_table/media_files/media_file_origin_category.rs index 743fcd2510..66b24a7c05 100644 --- a/crates/_types/enums/src/by_table/media_files/media_file_origin_category.rs +++ b/crates/_types/enums/src/by_table/media_files/media_file_origin_category.rs @@ -28,6 +28,11 @@ pub enum MediaFileOriginCategory { DeviceApi, /// From Storyteller Studio Engine + #[serde(rename = "studio")] + StorytellerStudio, + + /// From Storyteller Studio Engine + #[deprecated(note = "Use StorytellerStudio instead")] StoryEngine, } @@ -44,6 +49,7 @@ impl MediaFileOriginCategory { Self::Processed => "processed", Self::Upload => "upload", Self::DeviceApi => "device_api", + Self::StorytellerStudio => "studio", Self::StoryEngine => "story_engine", } } @@ -54,6 +60,7 @@ impl MediaFileOriginCategory { "processed" => Ok(Self::Processed), "upload" => Ok(Self::Upload), "device_api" => Ok(Self::DeviceApi), + "studio" => Ok(Self::StorytellerStudio), "story_engine" => Ok(Self::StoryEngine), _ => Err(format!("invalid value: {:?}", value)), } @@ -67,6 +74,7 @@ impl MediaFileOriginCategory { Self::Processed, Self::Upload, Self::DeviceApi, + Self::StorytellerStudio, Self::StoryEngine, ]) } @@ -86,6 +94,7 @@ mod tests { assert_serialization(MediaFileOriginCategory::Processed, "processed"); assert_serialization(MediaFileOriginCategory::Upload, "upload"); assert_serialization(MediaFileOriginCategory::DeviceApi, "device_api"); + assert_serialization(MediaFileOriginCategory::StorytellerStudio, "studio"); assert_serialization(MediaFileOriginCategory::StoryEngine, "story_engine"); } @@ -95,6 +104,7 @@ mod tests { assert_eq!(MediaFileOriginCategory::Processed.to_str(), "processed"); assert_eq!(MediaFileOriginCategory::Upload.to_str(), "upload"); assert_eq!(MediaFileOriginCategory::DeviceApi.to_str(), "device_api"); + assert_eq!(MediaFileOriginCategory::StorytellerStudio.to_str(), "studio"); assert_eq!(MediaFileOriginCategory::StoryEngine.to_str(), "story_engine"); } @@ -104,6 +114,7 @@ mod tests { assert_eq!(MediaFileOriginCategory::from_str("processed").unwrap(), MediaFileOriginCategory::Processed); assert_eq!(MediaFileOriginCategory::from_str("upload").unwrap(), MediaFileOriginCategory::Upload); assert_eq!(MediaFileOriginCategory::from_str("device_api").unwrap(), MediaFileOriginCategory::DeviceApi); + assert_eq!(MediaFileOriginCategory::from_str("studio").unwrap(), MediaFileOriginCategory::StorytellerStudio); assert_eq!(MediaFileOriginCategory::from_str("story_engine").unwrap(), MediaFileOriginCategory::StoryEngine); assert!(MediaFileOriginCategory::from_str("foo").is_err()); } @@ -111,11 +122,12 @@ mod tests { #[test] fn all_variants() { let mut variants = MediaFileOriginCategory::all_variants(); - assert_eq!(variants.len(), 5); + assert_eq!(variants.len(), 6); assert_eq!(variants.pop_first(), Some(MediaFileOriginCategory::Inference)); assert_eq!(variants.pop_first(), Some(MediaFileOriginCategory::Processed)); assert_eq!(variants.pop_first(), Some(MediaFileOriginCategory::Upload)); assert_eq!(variants.pop_first(), Some(MediaFileOriginCategory::DeviceApi)); + assert_eq!(variants.pop_first(), Some(MediaFileOriginCategory::StorytellerStudio)); assert_eq!(variants.pop_first(), Some(MediaFileOriginCategory::StoryEngine)); assert_eq!(variants.pop_first(), None); } diff --git a/crates/_types/enums/src/by_table/media_files/media_file_origin_model_type.rs b/crates/_types/enums/src/by_table/media_files/media_file_origin_model_type.rs index eb193ca55f..6cc3280fc0 100644 --- a/crates/_types/enums/src/by_table/media_files/media_file_origin_model_type.rs +++ b/crates/_types/enums/src/by_table/media_files/media_file_origin_model_type.rs @@ -183,5 +183,15 @@ mod tests { assert_eq!(variant, MediaFileOriginModelType::from_str(&format!("{:?}", variant)).unwrap()); } } + + #[test] + fn serialized_length_ok_for_database() { + const MAX_LENGTH : usize = 32; + for variant in MediaFileOriginModelType::all_variants() { + let serialized = variant.to_str(); + assert!(serialized.len() > 0, "variant {:?} is too short", variant); + assert!(serialized.len() <= MAX_LENGTH, "variant {:?} is too long", variant); + } + } } } diff --git a/crates/_types/enums/src/by_table/media_files/media_file_origin_product_category.rs b/crates/_types/enums/src/by_table/media_files/media_file_origin_product_category.rs index 94aff4fefa..2fb7b37dc2 100644 --- a/crates/_types/enums/src/by_table/media_files/media_file_origin_product_category.rs +++ b/crates/_types/enums/src/by_table/media_files/media_file_origin_product_category.rs @@ -224,5 +224,15 @@ mod tests { assert_eq!(variant, MediaFileOriginProductCategory::from_str(&format!("{:?}", variant)).unwrap()); } } + + #[test] + fn serialized_length_ok_for_database() { + const MAX_LENGTH : usize = 16; + for variant in MediaFileOriginProductCategory::all_variants() { + let serialized = variant.to_str(); + assert!(serialized.len() > 0, "variant {:?} is too short", variant); + assert!(serialized.len() <= MAX_LENGTH, "variant {:?} is too long", variant); + } + } } } diff --git a/crates/lib/mysql_queries/src/queries/media_files/create/insert_media_file_from_file_upload.rs b/crates/lib/mysql_queries/src/queries/media_files/create/insert_media_file_from_file_upload.rs index 348152e8a5..0285b3d242 100644 --- a/crates/lib/mysql_queries/src/queries/media_files/create/insert_media_file_from_file_upload.rs +++ b/crates/lib/mysql_queries/src/queries/media_files/create/insert_media_file_from_file_upload.rs @@ -63,7 +63,7 @@ pub async fn insert_media_file_from_file_upload( let origin_category = match args.upload_type { UploadType::Filesystem => MediaFileOriginCategory::Upload, UploadType::DeviceCaptureApi => MediaFileOriginCategory::DeviceApi, - UploadType::StorytellerEngine => MediaFileOriginCategory::StoryEngine, + UploadType::StorytellerEngine => MediaFileOriginCategory::StorytellerStudio, }; let mut maybe_creator_file_synthetic_id : Option = None; diff --git a/crates/lib/mysql_queries/src/queries/media_files/upsert/upsert_media_file_from_file_upload.rs b/crates/lib/mysql_queries/src/queries/media_files/upsert/upsert_media_file_from_file_upload.rs index a9955faa92..d074a9198e 100644 --- a/crates/lib/mysql_queries/src/queries/media_files/upsert/upsert_media_file_from_file_upload.rs +++ b/crates/lib/mysql_queries/src/queries/media_files/upsert/upsert_media_file_from_file_upload.rs @@ -69,7 +69,7 @@ pub async fn upsert_media_file_from_file_upload( let origin_category = match args.upload_type { UploadType::Filesystem => MediaFileOriginCategory::Upload, UploadType::DeviceCaptureApi => MediaFileOriginCategory::DeviceApi, - UploadType::StorytellerEngine => MediaFileOriginCategory::StoryEngine, + UploadType::StorytellerEngine => MediaFileOriginCategory::StorytellerStudio, }; let mut maybe_creator_file_synthetic_id : Option = None;