diff --git a/crates/lib/mysql_queries/src/queries/media_files/get_media_file.rs b/crates/lib/mysql_queries/src/queries/media_files/get_media_file.rs index 5399717274..b37d64111a 100644 --- a/crates/lib/mysql_queries/src/queries/media_files/get_media_file.rs +++ b/crates/lib/mysql_queries/src/queries/media_files/get_media_file.rs @@ -12,6 +12,7 @@ use enums::by_table::model_weights::weights_category::WeightsCategory; use enums::by_table::model_weights::weights_types::WeightsType; use enums::common::visibility::Visibility; use errors::AnyhowResult; +use tokens::tokens::batch_generations::BatchGenerationToken; use tokens::tokens::media_files::MediaFileToken; use tokens::tokens::model_weights::ModelWeightToken; use tokens::tokens::users::UserToken; @@ -27,6 +28,8 @@ pub struct MediaFile { // TODO: Other media details (file size, mime type, dimensions, duration, etc.) // TODO: Provenance data (product, upload vs inference, model details and foreign keys) + pub maybe_batch_token: Option, + pub maybe_text_transcript: Option, pub maybe_creator_user_token: Option, @@ -84,6 +87,8 @@ pub struct MediaFileRaw { // TODO: Bucket hash bits. + pub maybe_batch_token: Option, + pub maybe_text_transcript: Option, pub maybe_creator_user_token: Option, @@ -147,6 +152,7 @@ pub async fn get_media_file( Ok(Some(MediaFile { token: record.token, media_type: record.media_type, + maybe_batch_token: record.maybe_batch_token, maybe_text_transcript: record.maybe_text_transcript, maybe_creator_user_token: record.maybe_creator_user_token, maybe_creator_username: record.maybe_creator_username, @@ -192,6 +198,8 @@ SELECT users.display_name as maybe_creator_display_name, users.email_gravatar_hash as maybe_creator_gravatar_hash, + m.maybe_batch_token as `maybe_batch_token: tokens::tokens::batch_generations::BatchGenerationToken`, + m.maybe_text_transcript, m.creator_set_visibility as `creator_set_visibility: enums::common::visibility::Visibility`, @@ -259,6 +267,8 @@ SELECT users.display_name as maybe_creator_display_name, users.email_gravatar_hash as maybe_creator_gravatar_hash, + m.maybe_batch_token as `maybe_batch_token: tokens::tokens::batch_generations::BatchGenerationToken`, + m.maybe_text_transcript, m.creator_set_visibility as `creator_set_visibility: enums::common::visibility::Visibility`, diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/get_media_file.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/get_media_file.rs index 6016a1ba5e..5d1b26662a 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/get_media_file.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/get_media_file.rs @@ -16,6 +16,7 @@ use enums::by_table::model_weights::weights_types::WeightsType; use enums::common::visibility::Visibility; use mysql_queries::queries::media_files::get_media_file::get_media_file; use mysql_queries::queries::tts::tts_results::query_tts_result::select_tts_result_by_token; +use tokens::tokens::batch_generations::BatchGenerationToken; use tokens::tokens::media_files::MediaFileToken; use tokens::tokens::model_weights::ModelWeightToken; use users_component::common_responses::user_details_lite::UserDetailsLight; @@ -43,6 +44,9 @@ pub struct MediaFileInfo { /// Type of media will dictate which fields are populated and what /// the frontend should display (eg. video player vs audio player). pub media_type: MediaFileType, + + /// If the file was generated as part of a batch, this is the token for the batch. + pub maybe_batch_token: Option, /// URL to the media file pub public_bucket_path: String, @@ -252,6 +256,7 @@ async fn modern_media_file_lookup( media_file: MediaFileInfo { token: result.token, media_type: result.media_type, + maybe_batch_token: result.maybe_batch_token, public_bucket_path, maybe_text_transcript: result.maybe_text_transcript, maybe_model_weight_info: match result.maybe_model_weights_token { @@ -336,6 +341,7 @@ async fn emulate_media_file_with_legacy_tts_result_lookup( media_file: MediaFileInfo { token, media_type: MediaFileType::Audio, // NB: Always audio + maybe_batch_token: None, public_bucket_path, maybe_model_weight_info: Some(GetMediaFileModelInfo { // NB: These should be reasonable synthetic defaults for emulated TT2 results, even the "ModelWeightToken".