clean up origin category a little

This commit is contained in:
Brandon Thomas committed 2024-07-25 16:09:49 -04:00
1 parent 2a6254522e
commit cdb3b706cf
6 files changed
+38 -5

No files matched your search

+3 -2
View File
@@ -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
@@ -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);
}
@@ -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);
}
}
}
}
@@ -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);
}
}
}
}
@@ -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<u64> = None;
@@ -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<u64> = None;