diff --git a/.sqlx/query-67da368f2b630f5e337a9ddd38576effe93f346f91ee333f25f89d015802a7af.json b/.sqlx/query-07d6d284776049aff66a1c9ad9c8f5d4c8afb38d9d6c7d25de0a4bce0caf8481.json similarity index 69% rename from .sqlx/query-67da368f2b630f5e337a9ddd38576effe93f346f91ee333f25f89d015802a7af.json rename to .sqlx/query-07d6d284776049aff66a1c9ad9c8f5d4c8afb38d9d6c7d25de0a4bce0caf8481.json index 5aee075bca..0377ae1ccb 100644 --- a/.sqlx/query-67da368f2b630f5e337a9ddd38576effe93f346f91ee333f25f89d015802a7af.json +++ b/.sqlx/query-07d6d284776049aff66a1c9ad9c8f5d4c8afb38d9d6c7d25de0a4bce0caf8481.json @@ -1,6 +1,6 @@ { "db_name": "MySQL", - "query": "\nSELECT\n m.token as `token: tokens::tokens::media_files::MediaFileToken`,\n\n m.media_type as `media_type: enums::by_table::media_files::media_file_type::MediaFileType`,\n m.media_class as `media_class: enums::by_table::media_files::media_file_class::MediaFileClass`,\n m.maybe_media_subtype as `maybe_media_subtype: enums::by_table::media_files::media_file_subtype::MediaFileSubtype`,\n\n users.token as `maybe_creator_user_token: tokens::tokens::users::UserToken`,\n users.username as maybe_creator_username,\n users.display_name as maybe_creator_display_name,\n users.email_gravatar_hash as maybe_creator_gravatar_hash,\n\n m.maybe_creator_anonymous_visitor_token as `maybe_creator_anonymous_visitor_token: tokens::tokens::anonymous_visitor_tracking::AnonymousVisitorTrackingToken`,\n\n m.maybe_batch_token as `maybe_batch_token: tokens::tokens::batch_generations::BatchGenerationToken`,\n\n m.maybe_title,\n m.maybe_text_transcript,\n\n m.maybe_origin_filename,\n\n m.maybe_duration_millis,\n\n m.maybe_prompt_token as `maybe_prompt_token: tokens::tokens::prompts::PromptToken`,\n prompts.maybe_other_args as maybe_other_prompt_args,\n\n media_file_cover_image.public_bucket_directory_hash as maybe_file_cover_image_public_bucket_hash,\n media_file_cover_image.maybe_public_bucket_prefix as maybe_file_cover_image_public_bucket_prefix,\n media_file_cover_image.maybe_public_bucket_extension as maybe_file_cover_image_public_bucket_extension,\n\n m.creator_set_visibility as `creator_set_visibility: enums::common::visibility::Visibility`,\n\n model_weights.token as `maybe_model_weights_token: tokens::tokens::model_weights::ModelWeightToken`,\n model_weights.title as maybe_model_weights_title,\n model_weights.weights_type as `maybe_model_weights_type: enums::by_table::model_weights::weights_types::WeightsType`,\n model_weights.weights_category as `maybe_model_weights_category: enums::by_table::model_weights::weights_category::WeightsCategory`,\n\n model_weight_cover_image.public_bucket_directory_hash as maybe_model_cover_image_public_bucket_hash,\n model_weight_cover_image.maybe_public_bucket_prefix as maybe_model_cover_image_public_bucket_prefix,\n model_weight_cover_image.maybe_public_bucket_extension as maybe_model_cover_image_public_bucket_extension,\n\n model_weight_creator.token as `maybe_model_weight_creator_user_token: tokens::tokens::users::UserToken`,\n model_weight_creator.username as maybe_model_weight_creator_username,\n model_weight_creator.display_name as maybe_model_weight_creator_display_name,\n model_weight_creator.email_gravatar_hash as maybe_model_weight_creator_gravatar_hash,\n\n m.public_bucket_directory_hash,\n m.maybe_public_bucket_prefix,\n m.maybe_public_bucket_extension,\n\n entity_stats.ratings_positive_count as maybe_ratings_positive_count,\n entity_stats.ratings_negative_count as maybe_ratings_negative_count,\n entity_stats.bookmark_count as maybe_bookmark_count,\n\n m.created_at,\n m.updated_at\n\nFROM media_files AS m\nLEFT OUTER JOIN users\n ON m.maybe_creator_user_token = users.token\nLEFT OUTER JOIN model_weights\n ON m.maybe_origin_model_token = model_weights.token\nLEFT OUTER JOIN media_files as media_file_cover_image\n ON media_file_cover_image.token = m.maybe_cover_image_media_file_token\nLEFT OUTER JOIN media_files as model_weight_cover_image\n ON model_weight_cover_image.token = model_weights.maybe_cover_image_media_file_token\nLEFT OUTER JOIN users as model_weight_creator\n ON model_weight_creator.token = model_weights.creator_user_token\nLEFT OUTER JOIN entity_stats\n ON entity_stats.entity_type = \"media_file\"\n AND entity_stats.entity_token = m.token\nLEFT OUTER JOIN prompts\n ON prompts.token = m.maybe_prompt_token\nWHERE\n m.token = ?\n AND m.user_deleted_at IS NULL\n AND m.mod_deleted_at IS NULL\n ", + "query": "\nSELECT\n m.token as `token: tokens::tokens::media_files::MediaFileToken`,\n\n m.media_class as `media_class: enums::by_table::media_files::media_file_class::MediaFileClass`,\n m.media_type as `media_type: enums::by_table::media_files::media_file_type::MediaFileType`,\n\n m.maybe_engine_category as `maybe_engine_category: enums::by_table::media_files::media_file_engine_category::MediaFileEngineCategory`,\n m.maybe_animation_type as `maybe_animation_type: enums::by_table::media_files::media_file_animation_type::MediaFileAnimationType`,\n\n m.maybe_media_subtype as `maybe_media_subtype: enums::by_table::media_files::media_file_subtype::MediaFileSubtype`,\n\n users.token as `maybe_creator_user_token: tokens::tokens::users::UserToken`,\n users.username as maybe_creator_username,\n users.display_name as maybe_creator_display_name,\n users.email_gravatar_hash as maybe_creator_gravatar_hash,\n\n m.maybe_creator_anonymous_visitor_token as `maybe_creator_anonymous_visitor_token: tokens::tokens::anonymous_visitor_tracking::AnonymousVisitorTrackingToken`,\n\n m.maybe_batch_token as `maybe_batch_token: tokens::tokens::batch_generations::BatchGenerationToken`,\n\n m.maybe_title,\n m.maybe_text_transcript,\n\n m.maybe_origin_filename,\n\n m.maybe_duration_millis,\n\n m.maybe_prompt_token as `maybe_prompt_token: tokens::tokens::prompts::PromptToken`,\n prompts.maybe_other_args as maybe_other_prompt_args,\n\n media_file_cover_image.public_bucket_directory_hash as maybe_file_cover_image_public_bucket_hash,\n media_file_cover_image.maybe_public_bucket_prefix as maybe_file_cover_image_public_bucket_prefix,\n media_file_cover_image.maybe_public_bucket_extension as maybe_file_cover_image_public_bucket_extension,\n\n m.creator_set_visibility as `creator_set_visibility: enums::common::visibility::Visibility`,\n\n model_weights.token as `maybe_model_weights_token: tokens::tokens::model_weights::ModelWeightToken`,\n model_weights.title as maybe_model_weights_title,\n model_weights.weights_type as `maybe_model_weights_type: enums::by_table::model_weights::weights_types::WeightsType`,\n model_weights.weights_category as `maybe_model_weights_category: enums::by_table::model_weights::weights_category::WeightsCategory`,\n\n model_weight_cover_image.public_bucket_directory_hash as maybe_model_cover_image_public_bucket_hash,\n model_weight_cover_image.maybe_public_bucket_prefix as maybe_model_cover_image_public_bucket_prefix,\n model_weight_cover_image.maybe_public_bucket_extension as maybe_model_cover_image_public_bucket_extension,\n\n model_weight_creator.token as `maybe_model_weight_creator_user_token: tokens::tokens::users::UserToken`,\n model_weight_creator.username as maybe_model_weight_creator_username,\n model_weight_creator.display_name as maybe_model_weight_creator_display_name,\n model_weight_creator.email_gravatar_hash as maybe_model_weight_creator_gravatar_hash,\n\n m.public_bucket_directory_hash,\n m.maybe_public_bucket_prefix,\n m.maybe_public_bucket_extension,\n\n entity_stats.ratings_positive_count as maybe_ratings_positive_count,\n entity_stats.ratings_negative_count as maybe_ratings_negative_count,\n entity_stats.bookmark_count as maybe_bookmark_count,\n\n m.created_at,\n m.updated_at\n\nFROM media_files AS m\nLEFT OUTER JOIN users\n ON m.maybe_creator_user_token = users.token\nLEFT OUTER JOIN model_weights\n ON m.maybe_origin_model_token = model_weights.token\nLEFT OUTER JOIN media_files as media_file_cover_image\n ON media_file_cover_image.token = m.maybe_cover_image_media_file_token\nLEFT OUTER JOIN media_files as model_weight_cover_image\n ON model_weight_cover_image.token = model_weights.maybe_cover_image_media_file_token\nLEFT OUTER JOIN users as model_weight_creator\n ON model_weight_creator.token = model_weights.creator_user_token\nLEFT OUTER JOIN entity_stats\n ON entity_stats.entity_type = \"media_file\"\n AND entity_stats.entity_token = m.token\nLEFT OUTER JOIN prompts\n ON prompts.token = m.maybe_prompt_token\nWHERE\n m.token = ?\n ", "describe": { "columns": [ { @@ -15,16 +15,6 @@ }, { "ordinal": 1, - "name": "media_type: enums::by_table::media_files::media_file_type::MediaFileType", - "type_info": { - "type": "VarString", - "flags": "NOT_NULL | MULTIPLE_KEY | BINARY | NO_DEFAULT_VALUE", - "char_set": 224, - "max_size": 64 - } - }, - { - "ordinal": 2, "name": "media_class: enums::by_table::media_files::media_file_class::MediaFileClass", "type_info": { "type": "VarString", @@ -33,8 +23,38 @@ "max_size": 64 } }, + { + "ordinal": 2, + "name": "media_type: enums::by_table::media_files::media_file_type::MediaFileType", + "type_info": { + "type": "VarString", + "flags": "NOT_NULL | MULTIPLE_KEY | BINARY | NO_DEFAULT_VALUE", + "char_set": 224, + "max_size": 64 + } + }, { "ordinal": 3, + "name": "maybe_engine_category: enums::by_table::media_files::media_file_engine_category::MediaFileEngineCategory", + "type_info": { + "type": "VarString", + "flags": "MULTIPLE_KEY | BINARY", + "char_set": 224, + "max_size": 64 + } + }, + { + "ordinal": 4, + "name": "maybe_animation_type: enums::by_table::media_files::media_file_animation_type::MediaFileAnimationType", + "type_info": { + "type": "VarString", + "flags": "BINARY", + "char_set": 224, + "max_size": 128 + } + }, + { + "ordinal": 5, "name": "maybe_media_subtype: enums::by_table::media_files::media_file_subtype::MediaFileSubtype", "type_info": { "type": "VarString", @@ -44,7 +64,7 @@ } }, { - "ordinal": 4, + "ordinal": 6, "name": "maybe_creator_user_token: tokens::tokens::users::UserToken", "type_info": { "type": "VarString", @@ -54,7 +74,7 @@ } }, { - "ordinal": 5, + "ordinal": 7, "name": "maybe_creator_username", "type_info": { "type": "VarString", @@ -64,7 +84,7 @@ } }, { - "ordinal": 6, + "ordinal": 8, "name": "maybe_creator_display_name", "type_info": { "type": "VarString", @@ -74,7 +94,7 @@ } }, { - "ordinal": 7, + "ordinal": 9, "name": "maybe_creator_gravatar_hash", "type_info": { "type": "String", @@ -84,7 +104,7 @@ } }, { - "ordinal": 8, + "ordinal": 10, "name": "maybe_creator_anonymous_visitor_token: tokens::tokens::anonymous_visitor_tracking::AnonymousVisitorTrackingToken", "type_info": { "type": "VarString", @@ -94,7 +114,7 @@ } }, { - "ordinal": 9, + "ordinal": 11, "name": "maybe_batch_token: tokens::tokens::batch_generations::BatchGenerationToken", "type_info": { "type": "VarString", @@ -104,7 +124,7 @@ } }, { - "ordinal": 10, + "ordinal": 12, "name": "maybe_title", "type_info": { "type": "VarString", @@ -114,7 +134,7 @@ } }, { - "ordinal": 11, + "ordinal": 13, "name": "maybe_text_transcript", "type_info": { "type": "Blob", @@ -124,7 +144,7 @@ } }, { - "ordinal": 12, + "ordinal": 14, "name": "maybe_origin_filename", "type_info": { "type": "VarString", @@ -134,7 +154,7 @@ } }, { - "ordinal": 13, + "ordinal": 15, "name": "maybe_duration_millis", "type_info": { "type": "Long", @@ -144,7 +164,7 @@ } }, { - "ordinal": 14, + "ordinal": 16, "name": "maybe_prompt_token: tokens::tokens::prompts::PromptToken", "type_info": { "type": "VarString", @@ -154,7 +174,7 @@ } }, { - "ordinal": 15, + "ordinal": 17, "name": "maybe_other_prompt_args", "type_info": { "type": "Blob", @@ -164,7 +184,7 @@ } }, { - "ordinal": 16, + "ordinal": 18, "name": "maybe_file_cover_image_public_bucket_hash", "type_info": { "type": "VarString", @@ -174,7 +194,7 @@ } }, { - "ordinal": 17, + "ordinal": 19, "name": "maybe_file_cover_image_public_bucket_prefix", "type_info": { "type": "VarString", @@ -184,7 +204,7 @@ } }, { - "ordinal": 18, + "ordinal": 20, "name": "maybe_file_cover_image_public_bucket_extension", "type_info": { "type": "VarString", @@ -194,7 +214,7 @@ } }, { - "ordinal": 19, + "ordinal": 21, "name": "creator_set_visibility: enums::common::visibility::Visibility", "type_info": { "type": "String", @@ -204,7 +224,7 @@ } }, { - "ordinal": 20, + "ordinal": 22, "name": "maybe_model_weights_token: tokens::tokens::model_weights::ModelWeightToken", "type_info": { "type": "VarString", @@ -214,7 +234,7 @@ } }, { - "ordinal": 21, + "ordinal": 23, "name": "maybe_model_weights_title", "type_info": { "type": "VarString", @@ -224,7 +244,7 @@ } }, { - "ordinal": 22, + "ordinal": 24, "name": "maybe_model_weights_type: enums::by_table::model_weights::weights_types::WeightsType", "type_info": { "type": "VarString", @@ -234,7 +254,7 @@ } }, { - "ordinal": 23, + "ordinal": 25, "name": "maybe_model_weights_category: enums::by_table::model_weights::weights_category::WeightsCategory", "type_info": { "type": "VarString", @@ -244,7 +264,7 @@ } }, { - "ordinal": 24, + "ordinal": 26, "name": "maybe_model_cover_image_public_bucket_hash", "type_info": { "type": "VarString", @@ -254,7 +274,7 @@ } }, { - "ordinal": 25, + "ordinal": 27, "name": "maybe_model_cover_image_public_bucket_prefix", "type_info": { "type": "VarString", @@ -264,7 +284,7 @@ } }, { - "ordinal": 26, + "ordinal": 28, "name": "maybe_model_cover_image_public_bucket_extension", "type_info": { "type": "VarString", @@ -274,7 +294,7 @@ } }, { - "ordinal": 27, + "ordinal": 29, "name": "maybe_model_weight_creator_user_token: tokens::tokens::users::UserToken", "type_info": { "type": "VarString", @@ -284,7 +304,7 @@ } }, { - "ordinal": 28, + "ordinal": 30, "name": "maybe_model_weight_creator_username", "type_info": { "type": "VarString", @@ -294,7 +314,7 @@ } }, { - "ordinal": 29, + "ordinal": 31, "name": "maybe_model_weight_creator_display_name", "type_info": { "type": "VarString", @@ -304,7 +324,7 @@ } }, { - "ordinal": 30, + "ordinal": 32, "name": "maybe_model_weight_creator_gravatar_hash", "type_info": { "type": "String", @@ -314,7 +334,7 @@ } }, { - "ordinal": 31, + "ordinal": 33, "name": "public_bucket_directory_hash", "type_info": { "type": "VarString", @@ -324,7 +344,7 @@ } }, { - "ordinal": 32, + "ordinal": 34, "name": "maybe_public_bucket_prefix", "type_info": { "type": "VarString", @@ -334,7 +354,7 @@ } }, { - "ordinal": 33, + "ordinal": 35, "name": "maybe_public_bucket_extension", "type_info": { "type": "VarString", @@ -344,7 +364,7 @@ } }, { - "ordinal": 34, + "ordinal": 36, "name": "maybe_ratings_positive_count", "type_info": { "type": "Long", @@ -354,7 +374,7 @@ } }, { - "ordinal": 35, + "ordinal": 37, "name": "maybe_ratings_negative_count", "type_info": { "type": "Long", @@ -364,7 +384,7 @@ } }, { - "ordinal": 36, + "ordinal": 38, "name": "maybe_bookmark_count", "type_info": { "type": "Long", @@ -374,7 +394,7 @@ } }, { - "ordinal": 37, + "ordinal": 39, "name": "created_at", "type_info": { "type": "Timestamp", @@ -384,7 +404,7 @@ } }, { - "ordinal": 38, + "ordinal": 40, "name": "updated_at", "type_info": { "type": "Timestamp", @@ -417,6 +437,8 @@ true, true, true, + true, + true, false, true, true, @@ -439,5 +461,5 @@ false ] }, - "hash": "67da368f2b630f5e337a9ddd38576effe93f346f91ee333f25f89d015802a7af" + "hash": "07d6d284776049aff66a1c9ad9c8f5d4c8afb38d9d6c7d25de0a4bce0caf8481" } diff --git a/.sqlx/query-b804f2e8fe5293863ffd799f359d96c848234ebe1cb60eb24aba96af0fcb0af1.json b/.sqlx/query-7a8e41a16bd024431336463ea02ea41211d3fa3e6324909c724a392d7160b322.json similarity index 69% rename from .sqlx/query-b804f2e8fe5293863ffd799f359d96c848234ebe1cb60eb24aba96af0fcb0af1.json rename to .sqlx/query-7a8e41a16bd024431336463ea02ea41211d3fa3e6324909c724a392d7160b322.json index f4f4b7dc5b..7d3fbdd7fd 100644 --- a/.sqlx/query-b804f2e8fe5293863ffd799f359d96c848234ebe1cb60eb24aba96af0fcb0af1.json +++ b/.sqlx/query-7a8e41a16bd024431336463ea02ea41211d3fa3e6324909c724a392d7160b322.json @@ -1,6 +1,6 @@ { "db_name": "MySQL", - "query": "\nSELECT\n m.token as `token: tokens::tokens::media_files::MediaFileToken`,\n\n m.media_type as `media_type: enums::by_table::media_files::media_file_type::MediaFileType`,\n m.media_class as `media_class: enums::by_table::media_files::media_file_class::MediaFileClass`,\n m.maybe_media_subtype as `maybe_media_subtype: enums::by_table::media_files::media_file_subtype::MediaFileSubtype`,\n\n users.token as `maybe_creator_user_token: tokens::tokens::users::UserToken`,\n users.username as maybe_creator_username,\n users.display_name as maybe_creator_display_name,\n users.email_gravatar_hash as maybe_creator_gravatar_hash,\n\n m.maybe_creator_anonymous_visitor_token as `maybe_creator_anonymous_visitor_token: tokens::tokens::anonymous_visitor_tracking::AnonymousVisitorTrackingToken`,\n\n m.maybe_batch_token as `maybe_batch_token: tokens::tokens::batch_generations::BatchGenerationToken`,\n\n m.maybe_title,\n m.maybe_text_transcript,\n\n m.maybe_origin_filename,\n\n m.maybe_duration_millis,\n\n m.maybe_prompt_token as `maybe_prompt_token: tokens::tokens::prompts::PromptToken`,\n prompts.maybe_other_args as maybe_other_prompt_args,\n\n media_file_cover_image.public_bucket_directory_hash as maybe_file_cover_image_public_bucket_hash,\n media_file_cover_image.maybe_public_bucket_prefix as maybe_file_cover_image_public_bucket_prefix,\n media_file_cover_image.maybe_public_bucket_extension as maybe_file_cover_image_public_bucket_extension,\n\n m.creator_set_visibility as `creator_set_visibility: enums::common::visibility::Visibility`,\n\n model_weights.token as `maybe_model_weights_token: tokens::tokens::model_weights::ModelWeightToken`,\n model_weights.title as maybe_model_weights_title,\n model_weights.weights_type as `maybe_model_weights_type: enums::by_table::model_weights::weights_types::WeightsType`,\n model_weights.weights_category as `maybe_model_weights_category: enums::by_table::model_weights::weights_category::WeightsCategory`,\n\n model_weight_cover_image.public_bucket_directory_hash as maybe_model_cover_image_public_bucket_hash,\n model_weight_cover_image.maybe_public_bucket_prefix as maybe_model_cover_image_public_bucket_prefix,\n model_weight_cover_image.maybe_public_bucket_extension as maybe_model_cover_image_public_bucket_extension,\n\n model_weight_creator.token as `maybe_model_weight_creator_user_token: tokens::tokens::users::UserToken`,\n model_weight_creator.username as maybe_model_weight_creator_username,\n model_weight_creator.display_name as maybe_model_weight_creator_display_name,\n model_weight_creator.email_gravatar_hash as maybe_model_weight_creator_gravatar_hash,\n\n m.public_bucket_directory_hash,\n m.maybe_public_bucket_prefix,\n m.maybe_public_bucket_extension,\n\n entity_stats.ratings_positive_count as maybe_ratings_positive_count,\n entity_stats.ratings_negative_count as maybe_ratings_negative_count,\n entity_stats.bookmark_count as maybe_bookmark_count,\n\n m.created_at,\n m.updated_at\n\nFROM media_files AS m\nLEFT OUTER JOIN users\n ON m.maybe_creator_user_token = users.token\nLEFT OUTER JOIN model_weights\n ON m.maybe_origin_model_token = model_weights.token\nLEFT OUTER JOIN media_files as media_file_cover_image\n ON media_file_cover_image.token = m.maybe_cover_image_media_file_token\nLEFT OUTER JOIN media_files as model_weight_cover_image\n ON model_weight_cover_image.token = model_weights.maybe_cover_image_media_file_token\nLEFT OUTER JOIN users as model_weight_creator\n ON model_weight_creator.token = model_weights.creator_user_token\nLEFT OUTER JOIN entity_stats\n ON entity_stats.entity_type = \"media_file\"\n AND entity_stats.entity_token = m.token\nLEFT OUTER JOIN prompts\n ON prompts.token = m.maybe_prompt_token\nWHERE\n m.token = ?\n ", + "query": "\nSELECT\n m.token as `token: tokens::tokens::media_files::MediaFileToken`,\n\n m.media_class as `media_class: enums::by_table::media_files::media_file_class::MediaFileClass`,\n m.media_type as `media_type: enums::by_table::media_files::media_file_type::MediaFileType`,\n\n m.maybe_engine_category as `maybe_engine_category: enums::by_table::media_files::media_file_engine_category::MediaFileEngineCategory`,\n m.maybe_animation_type as `maybe_animation_type: enums::by_table::media_files::media_file_animation_type::MediaFileAnimationType`,\n\n m.maybe_media_subtype as `maybe_media_subtype: enums::by_table::media_files::media_file_subtype::MediaFileSubtype`,\n\n users.token as `maybe_creator_user_token: tokens::tokens::users::UserToken`,\n users.username as maybe_creator_username,\n users.display_name as maybe_creator_display_name,\n users.email_gravatar_hash as maybe_creator_gravatar_hash,\n\n m.maybe_creator_anonymous_visitor_token as `maybe_creator_anonymous_visitor_token: tokens::tokens::anonymous_visitor_tracking::AnonymousVisitorTrackingToken`,\n\n m.maybe_batch_token as `maybe_batch_token: tokens::tokens::batch_generations::BatchGenerationToken`,\n\n m.maybe_title,\n m.maybe_text_transcript,\n\n m.maybe_origin_filename,\n\n m.maybe_duration_millis,\n\n m.maybe_prompt_token as `maybe_prompt_token: tokens::tokens::prompts::PromptToken`,\n prompts.maybe_other_args as maybe_other_prompt_args,\n\n media_file_cover_image.public_bucket_directory_hash as maybe_file_cover_image_public_bucket_hash,\n media_file_cover_image.maybe_public_bucket_prefix as maybe_file_cover_image_public_bucket_prefix,\n media_file_cover_image.maybe_public_bucket_extension as maybe_file_cover_image_public_bucket_extension,\n\n m.creator_set_visibility as `creator_set_visibility: enums::common::visibility::Visibility`,\n\n model_weights.token as `maybe_model_weights_token: tokens::tokens::model_weights::ModelWeightToken`,\n model_weights.title as maybe_model_weights_title,\n model_weights.weights_type as `maybe_model_weights_type: enums::by_table::model_weights::weights_types::WeightsType`,\n model_weights.weights_category as `maybe_model_weights_category: enums::by_table::model_weights::weights_category::WeightsCategory`,\n\n model_weight_cover_image.public_bucket_directory_hash as maybe_model_cover_image_public_bucket_hash,\n model_weight_cover_image.maybe_public_bucket_prefix as maybe_model_cover_image_public_bucket_prefix,\n model_weight_cover_image.maybe_public_bucket_extension as maybe_model_cover_image_public_bucket_extension,\n\n model_weight_creator.token as `maybe_model_weight_creator_user_token: tokens::tokens::users::UserToken`,\n model_weight_creator.username as maybe_model_weight_creator_username,\n model_weight_creator.display_name as maybe_model_weight_creator_display_name,\n model_weight_creator.email_gravatar_hash as maybe_model_weight_creator_gravatar_hash,\n\n m.public_bucket_directory_hash,\n m.maybe_public_bucket_prefix,\n m.maybe_public_bucket_extension,\n\n entity_stats.ratings_positive_count as maybe_ratings_positive_count,\n entity_stats.ratings_negative_count as maybe_ratings_negative_count,\n entity_stats.bookmark_count as maybe_bookmark_count,\n\n m.created_at,\n m.updated_at\n\nFROM media_files AS m\nLEFT OUTER JOIN users\n ON m.maybe_creator_user_token = users.token\nLEFT OUTER JOIN model_weights\n ON m.maybe_origin_model_token = model_weights.token\nLEFT OUTER JOIN media_files as media_file_cover_image\n ON media_file_cover_image.token = m.maybe_cover_image_media_file_token\nLEFT OUTER JOIN media_files as model_weight_cover_image\n ON model_weight_cover_image.token = model_weights.maybe_cover_image_media_file_token\nLEFT OUTER JOIN users as model_weight_creator\n ON model_weight_creator.token = model_weights.creator_user_token\nLEFT OUTER JOIN entity_stats\n ON entity_stats.entity_type = \"media_file\"\n AND entity_stats.entity_token = m.token\nLEFT OUTER JOIN prompts\n ON prompts.token = m.maybe_prompt_token\nWHERE\n m.token = ?\n AND m.user_deleted_at IS NULL\n AND m.mod_deleted_at IS NULL\n ", "describe": { "columns": [ { @@ -15,16 +15,6 @@ }, { "ordinal": 1, - "name": "media_type: enums::by_table::media_files::media_file_type::MediaFileType", - "type_info": { - "type": "VarString", - "flags": "NOT_NULL | MULTIPLE_KEY | BINARY | NO_DEFAULT_VALUE", - "char_set": 224, - "max_size": 64 - } - }, - { - "ordinal": 2, "name": "media_class: enums::by_table::media_files::media_file_class::MediaFileClass", "type_info": { "type": "VarString", @@ -33,8 +23,38 @@ "max_size": 64 } }, + { + "ordinal": 2, + "name": "media_type: enums::by_table::media_files::media_file_type::MediaFileType", + "type_info": { + "type": "VarString", + "flags": "NOT_NULL | MULTIPLE_KEY | BINARY | NO_DEFAULT_VALUE", + "char_set": 224, + "max_size": 64 + } + }, { "ordinal": 3, + "name": "maybe_engine_category: enums::by_table::media_files::media_file_engine_category::MediaFileEngineCategory", + "type_info": { + "type": "VarString", + "flags": "MULTIPLE_KEY | BINARY", + "char_set": 224, + "max_size": 64 + } + }, + { + "ordinal": 4, + "name": "maybe_animation_type: enums::by_table::media_files::media_file_animation_type::MediaFileAnimationType", + "type_info": { + "type": "VarString", + "flags": "BINARY", + "char_set": 224, + "max_size": 128 + } + }, + { + "ordinal": 5, "name": "maybe_media_subtype: enums::by_table::media_files::media_file_subtype::MediaFileSubtype", "type_info": { "type": "VarString", @@ -44,7 +64,7 @@ } }, { - "ordinal": 4, + "ordinal": 6, "name": "maybe_creator_user_token: tokens::tokens::users::UserToken", "type_info": { "type": "VarString", @@ -54,7 +74,7 @@ } }, { - "ordinal": 5, + "ordinal": 7, "name": "maybe_creator_username", "type_info": { "type": "VarString", @@ -64,7 +84,7 @@ } }, { - "ordinal": 6, + "ordinal": 8, "name": "maybe_creator_display_name", "type_info": { "type": "VarString", @@ -74,7 +94,7 @@ } }, { - "ordinal": 7, + "ordinal": 9, "name": "maybe_creator_gravatar_hash", "type_info": { "type": "String", @@ -84,7 +104,7 @@ } }, { - "ordinal": 8, + "ordinal": 10, "name": "maybe_creator_anonymous_visitor_token: tokens::tokens::anonymous_visitor_tracking::AnonymousVisitorTrackingToken", "type_info": { "type": "VarString", @@ -94,7 +114,7 @@ } }, { - "ordinal": 9, + "ordinal": 11, "name": "maybe_batch_token: tokens::tokens::batch_generations::BatchGenerationToken", "type_info": { "type": "VarString", @@ -104,7 +124,7 @@ } }, { - "ordinal": 10, + "ordinal": 12, "name": "maybe_title", "type_info": { "type": "VarString", @@ -114,7 +134,7 @@ } }, { - "ordinal": 11, + "ordinal": 13, "name": "maybe_text_transcript", "type_info": { "type": "Blob", @@ -124,7 +144,7 @@ } }, { - "ordinal": 12, + "ordinal": 14, "name": "maybe_origin_filename", "type_info": { "type": "VarString", @@ -134,7 +154,7 @@ } }, { - "ordinal": 13, + "ordinal": 15, "name": "maybe_duration_millis", "type_info": { "type": "Long", @@ -144,7 +164,7 @@ } }, { - "ordinal": 14, + "ordinal": 16, "name": "maybe_prompt_token: tokens::tokens::prompts::PromptToken", "type_info": { "type": "VarString", @@ -154,7 +174,7 @@ } }, { - "ordinal": 15, + "ordinal": 17, "name": "maybe_other_prompt_args", "type_info": { "type": "Blob", @@ -164,7 +184,7 @@ } }, { - "ordinal": 16, + "ordinal": 18, "name": "maybe_file_cover_image_public_bucket_hash", "type_info": { "type": "VarString", @@ -174,7 +194,7 @@ } }, { - "ordinal": 17, + "ordinal": 19, "name": "maybe_file_cover_image_public_bucket_prefix", "type_info": { "type": "VarString", @@ -184,7 +204,7 @@ } }, { - "ordinal": 18, + "ordinal": 20, "name": "maybe_file_cover_image_public_bucket_extension", "type_info": { "type": "VarString", @@ -194,7 +214,7 @@ } }, { - "ordinal": 19, + "ordinal": 21, "name": "creator_set_visibility: enums::common::visibility::Visibility", "type_info": { "type": "String", @@ -204,7 +224,7 @@ } }, { - "ordinal": 20, + "ordinal": 22, "name": "maybe_model_weights_token: tokens::tokens::model_weights::ModelWeightToken", "type_info": { "type": "VarString", @@ -214,7 +234,7 @@ } }, { - "ordinal": 21, + "ordinal": 23, "name": "maybe_model_weights_title", "type_info": { "type": "VarString", @@ -224,7 +244,7 @@ } }, { - "ordinal": 22, + "ordinal": 24, "name": "maybe_model_weights_type: enums::by_table::model_weights::weights_types::WeightsType", "type_info": { "type": "VarString", @@ -234,7 +254,7 @@ } }, { - "ordinal": 23, + "ordinal": 25, "name": "maybe_model_weights_category: enums::by_table::model_weights::weights_category::WeightsCategory", "type_info": { "type": "VarString", @@ -244,7 +264,7 @@ } }, { - "ordinal": 24, + "ordinal": 26, "name": "maybe_model_cover_image_public_bucket_hash", "type_info": { "type": "VarString", @@ -254,7 +274,7 @@ } }, { - "ordinal": 25, + "ordinal": 27, "name": "maybe_model_cover_image_public_bucket_prefix", "type_info": { "type": "VarString", @@ -264,7 +284,7 @@ } }, { - "ordinal": 26, + "ordinal": 28, "name": "maybe_model_cover_image_public_bucket_extension", "type_info": { "type": "VarString", @@ -274,7 +294,7 @@ } }, { - "ordinal": 27, + "ordinal": 29, "name": "maybe_model_weight_creator_user_token: tokens::tokens::users::UserToken", "type_info": { "type": "VarString", @@ -284,7 +304,7 @@ } }, { - "ordinal": 28, + "ordinal": 30, "name": "maybe_model_weight_creator_username", "type_info": { "type": "VarString", @@ -294,7 +314,7 @@ } }, { - "ordinal": 29, + "ordinal": 31, "name": "maybe_model_weight_creator_display_name", "type_info": { "type": "VarString", @@ -304,7 +324,7 @@ } }, { - "ordinal": 30, + "ordinal": 32, "name": "maybe_model_weight_creator_gravatar_hash", "type_info": { "type": "String", @@ -314,7 +334,7 @@ } }, { - "ordinal": 31, + "ordinal": 33, "name": "public_bucket_directory_hash", "type_info": { "type": "VarString", @@ -324,7 +344,7 @@ } }, { - "ordinal": 32, + "ordinal": 34, "name": "maybe_public_bucket_prefix", "type_info": { "type": "VarString", @@ -334,7 +354,7 @@ } }, { - "ordinal": 33, + "ordinal": 35, "name": "maybe_public_bucket_extension", "type_info": { "type": "VarString", @@ -344,7 +364,7 @@ } }, { - "ordinal": 34, + "ordinal": 36, "name": "maybe_ratings_positive_count", "type_info": { "type": "Long", @@ -354,7 +374,7 @@ } }, { - "ordinal": 35, + "ordinal": 37, "name": "maybe_ratings_negative_count", "type_info": { "type": "Long", @@ -364,7 +384,7 @@ } }, { - "ordinal": 36, + "ordinal": 38, "name": "maybe_bookmark_count", "type_info": { "type": "Long", @@ -374,7 +394,7 @@ } }, { - "ordinal": 37, + "ordinal": 39, "name": "created_at", "type_info": { "type": "Timestamp", @@ -384,7 +404,7 @@ } }, { - "ordinal": 38, + "ordinal": 40, "name": "updated_at", "type_info": { "type": "Timestamp", @@ -417,6 +437,8 @@ true, true, true, + true, + true, false, true, true, @@ -439,5 +461,5 @@ false ] }, - "hash": "b804f2e8fe5293863ffd799f359d96c848234ebe1cb60eb24aba96af0fcb0af1" + "hash": "7a8e41a16bd024431336463ea02ea41211d3fa3e6324909c724a392d7160b322" } diff --git a/crates/cli/devenv/dev-database-seed/src/seeding/seed_media_files.rs b/crates/cli/devenv/dev-database-seed/src/seeding/seed_media_files.rs index 731ec1cca5..8cbd8c9da9 100644 --- a/crates/cli/devenv/dev-database-seed/src/seeding/seed_media_files.rs +++ b/crates/cli/devenv/dev-database-seed/src/seeding/seed_media_files.rs @@ -5,10 +5,8 @@ use sqlx::{MySql, Pool}; use buckets::public::media_files::bucket_file_path::MediaFileBucketPath; use enums::by_table::media_files::media_file_type::MediaFileType; - use enums::common::visibility::Visibility; use errors::AnyhowResult; - use filesys::file_read_bytes::file_read_bytes; use filesys::file_size::file_size; use filesys::path_to_string::path_to_string; @@ -16,7 +14,7 @@ use hashing::sha256::sha256_hash_file::sha256_hash_file; use mimetypes::mimetype_for_bytes::get_mimetype_for_bytes; use mimetypes::mimetype_for_file::get_mimetype_for_file; use mysql_queries::queries::media_files::create::insert_media_file_from_cli_tool::{insert_media_file_from_cli_tool, InsertArgs}; -use mysql_queries::queries::media_files::get_media_file::get_media_file; +use mysql_queries::queries::media_files::get::get_media_file::get_media_file; use storyteller_root::get_seed_tool_data_root; use tokens::tokens::media_files::MediaFileToken; use tokens::tokens::users::UserToken; diff --git a/crates/lib/mysql_queries/src/queries/media_files/batch_get_media_files.rs b/crates/lib/mysql_queries/src/queries/media_files/get/batch_get_media_files.rs similarity index 95% rename from crates/lib/mysql_queries/src/queries/media_files/batch_get_media_files.rs rename to crates/lib/mysql_queries/src/queries/media_files/get/batch_get_media_files.rs index 126c1cca32..36f6e09e53 100644 --- a/crates/lib/mysql_queries/src/queries/media_files/batch_get_media_files.rs +++ b/crates/lib/mysql_queries/src/queries/media_files/get/batch_get_media_files.rs @@ -7,8 +7,10 @@ use anyhow::anyhow; use chrono::{DateTime, Utc}; use sqlx::{FromRow, MySql, MySqlPool, QueryBuilder, Row}; use sqlx::mysql::MySqlRow; +use enums::by_table::media_files::media_file_animation_type::MediaFileAnimationType; use enums::by_table::media_files::media_file_class::MediaFileClass; +use enums::by_table::media_files::media_file_engine_category::MediaFileEngineCategory; use enums::by_table::media_files::media_file_subtype::MediaFileSubtype; use enums::by_table::media_files::media_file_type::MediaFileType; use enums::by_table::model_weights::weights_category::WeightsCategory; @@ -29,8 +31,12 @@ use crate::payloads::prompt_args::prompt_inner_payload::PromptInnerPayload; pub struct MediaFile { pub token: MediaFileToken, - pub media_type: MediaFileType, pub media_class: MediaFileClass, + pub media_type: MediaFileType, + + pub maybe_engine_category: Option, + pub maybe_animation_type: Option, + pub maybe_media_subtype: Option, // TODO: Bucket hash bits. @@ -105,8 +111,12 @@ pub struct MediaFile { pub struct MediaFileRaw { pub token: MediaFileToken, - pub media_type: MediaFileType, pub media_class: MediaFileClass, + pub media_type: MediaFileType, + + pub maybe_engine_category: Option, + pub maybe_animation_type: Option, + pub maybe_media_subtype: Option, // TODO: Bucket hash bits. @@ -207,8 +217,10 @@ pub async fn batch_get_media_files( Ok(records.into_iter() .map(|record| MediaFile { token: record.token, - media_type: record.media_type, media_class: record.media_class, + media_type: record.media_type, + maybe_engine_category: record.maybe_engine_category, + maybe_animation_type: record.maybe_animation_type, maybe_media_subtype: record.maybe_media_subtype, maybe_batch_token: record.maybe_batch_token, maybe_title: record.maybe_title, @@ -258,8 +270,12 @@ fn make_query_builder() -> QueryBuilder<'static, MySql> { SELECT m.token, - m.media_type, m.media_class, + m.media_type, + + m.maybe_engine_category, + m.maybe_animation_type, + m.maybe_media_subtype, users.token as maybe_creator_user_token, @@ -344,8 +360,12 @@ impl FromRow<'_, MySqlRow> for MediaFileRaw { fn from_row(row: &MySqlRow) -> Result { Ok(Self { token: MediaFileToken::new(row.try_get("token")?), - media_type: MediaFileType::try_from_mysql_row(row, "media_type")?, media_class: MediaFileClass::try_from_mysql_row(row, "media_class")?, + media_type: MediaFileType::try_from_mysql_row(row, "media_type")?, + + maybe_engine_category: MediaFileEngineCategory::try_from_mysql_row_nullable(row, "maybe_engine_category")?, + maybe_animation_type: MediaFileAnimationType::try_from_mysql_row_nullable(row, "maybe_animation_type")?, + maybe_media_subtype: MediaFileSubtype::try_from_mysql_row_nullable(row, "maybe_media_subtype")?, maybe_batch_token: BatchGenerationToken::try_from_mysql_row_nullable(row, "maybe_batch_token")?, diff --git a/crates/lib/mysql_queries/src/queries/media_files/list/list_media_files_by_tokens.rs b/crates/lib/mysql_queries/src/queries/media_files/get/batch_get_media_files_by_tokens.rs similarity index 91% rename from crates/lib/mysql_queries/src/queries/media_files/list/list_media_files_by_tokens.rs rename to crates/lib/mysql_queries/src/queries/media_files/get/batch_get_media_files_by_tokens.rs index ba8a611e1d..140c425802 100644 --- a/crates/lib/mysql_queries/src/queries/media_files/list/list_media_files_by_tokens.rs +++ b/crates/lib/mysql_queries/src/queries/media_files/get/batch_get_media_files_by_tokens.rs @@ -1,6 +1,9 @@ use chrono::{DateTime, Utc}; use sqlx::{Acquire, FromRow, MySql, MySqlConnection, MySqlPool, QueryBuilder, Row}; use sqlx::mysql::MySqlRow; +use enums::by_table::media_files::media_file_animation_type::MediaFileAnimationType; +use enums::by_table::media_files::media_file_class::MediaFileClass; +use enums::by_table::media_files::media_file_engine_category::MediaFileEngineCategory; use enums::by_table::media_files::media_file_origin_category::MediaFileOriginCategory; use enums::by_table::media_files::media_file_origin_model_type::MediaFileOriginModelType; @@ -10,14 +13,19 @@ use enums::traits::mysql_from_row::MySqlFromRow; use errors::AnyhowResult; use tokens::tokens::media_files::MediaFileToken; use tokens::tokens::users::UserToken; + use crate::payloads::prompt_args::prompt_inner_payload::PromptInnerPayload; #[derive(Serialize)] pub struct MediaFilesByTokensRecord { pub token: MediaFileToken, + pub media_class: MediaFileClass, pub media_type: MediaFileType, + pub maybe_engine_category: Option, + pub maybe_animation_type: Option, + pub origin_category: MediaFileOriginCategory, pub origin_product_category: MediaFileOriginProductCategory, @@ -56,7 +64,7 @@ pub struct MediaFilesByTokensRecord { pub updated_at: DateTime, } -pub async fn list_media_files_by_tokens( +pub async fn batch_get_media_files_by_tokens( mysql_pool: &MySqlPool, media_file_tokens: &[MediaFileToken], can_see_deleted: bool @@ -81,8 +89,13 @@ async fn get_raw_media_files_by_tokens( QueryBuilder::new(r#" SELECT m.token, + + m.media_class, m.media_type, + m.maybe_engine_category, + m.maybe_animation_type, + m.origin_category, m.origin_product_category, @@ -132,8 +145,13 @@ async fn get_raw_media_files_by_tokens( QueryBuilder::new(r#" SELECT m.token, + + m.media_class, m.media_type, + m.maybe_engine_category, + m.maybe_animation_type, + m.origin_category, m.origin_product_category, @@ -216,6 +234,12 @@ fn map_to_media_files(dataset:Vec) -> Vec) -> Vec) -> Vec, + pub maybe_animation_type: Option, + pub origin_category: MediaFileOriginCategory, pub origin_product_category: MediaFileOriginProductCategory, @@ -317,7 +344,10 @@ impl FromRow<'_, MySqlRow> for RawMediaFileJoinUser { fn from_row(row: &MySqlRow) -> Result { Ok(Self { token: MediaFileToken::new(row.try_get("token")?), + media_class: MediaFileClass::try_from_mysql_row(row, "media_class")?, media_type: MediaFileType::try_from_mysql_row(row, "media_type")?, + maybe_engine_category: MediaFileEngineCategory::try_from_mysql_row_nullable(row, "maybe_engine_category")?, + maybe_animation_type: MediaFileAnimationType::try_from_mysql_row_nullable(row, "maybe_animation_type")?, origin_category: MediaFileOriginCategory::try_from_mysql_row(row, "origin_category")?, origin_product_category: MediaFileOriginProductCategory::try_from_mysql_row(row, "origin_product_category")?, maybe_origin_model_type: MediaFileOriginModelType::try_from_mysql_row_nullable(row, "maybe_origin_model_type")?, 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/get_media_file.rs similarity index 94% rename from crates/lib/mysql_queries/src/queries/media_files/get_media_file.rs rename to crates/lib/mysql_queries/src/queries/media_files/get/get_media_file.rs index da7572a30f..639d6edcfa 100644 --- a/crates/lib/mysql_queries/src/queries/media_files/get_media_file.rs +++ b/crates/lib/mysql_queries/src/queries/media_files/get/get_media_file.rs @@ -7,7 +7,9 @@ use anyhow::anyhow; use chrono::{DateTime, Utc}; use sqlx::MySqlPool; +use enums::by_table::media_files::media_file_animation_type::MediaFileAnimationType; use enums::by_table::media_files::media_file_class::MediaFileClass; +use enums::by_table::media_files::media_file_engine_category::MediaFileEngineCategory; use enums::by_table::media_files::media_file_subtype::MediaFileSubtype; use enums::by_table::media_files::media_file_type::MediaFileType; use enums::by_table::model_weights::weights_category::WeightsCategory; @@ -27,11 +29,13 @@ use crate::payloads::prompt_args::prompt_inner_payload::PromptInnerPayload; pub struct MediaFile { pub token: MediaFileToken, - pub media_type: MediaFileType, pub media_class: MediaFileClass, - pub maybe_media_subtype: Option, + pub media_type: MediaFileType, - // TODO: Bucket hash bits. + pub maybe_engine_category: Option, + pub maybe_animation_type: Option, + + pub maybe_media_subtype: Option, // TODO: Other media details (file size, mime type, dimensions, duration, etc.) // TODO: Provenance data (product, upload vs inference, model details and foreign keys) @@ -106,11 +110,13 @@ pub struct MediaFile { pub struct MediaFileRaw { pub token: MediaFileToken, - pub media_type: MediaFileType, pub media_class: MediaFileClass, - pub maybe_media_subtype: Option, + pub media_type: MediaFileType, - // TODO: Bucket hash bits. + pub maybe_engine_category: Option, + pub maybe_animation_type: Option, + + pub maybe_media_subtype: Option, pub maybe_batch_token: Option, @@ -199,6 +205,8 @@ pub async fn get_media_file( Ok(Some(MediaFile { token: record.token, media_type: record.media_type, + maybe_engine_category: record.maybe_engine_category, + maybe_animation_type: record.maybe_animation_type, media_class: record.media_class, maybe_media_subtype: record.maybe_media_subtype, maybe_batch_token: record.maybe_batch_token, @@ -249,8 +257,12 @@ async fn select_including_deleted( SELECT m.token as `token: tokens::tokens::media_files::MediaFileToken`, - m.media_type as `media_type: enums::by_table::media_files::media_file_type::MediaFileType`, m.media_class as `media_class: enums::by_table::media_files::media_file_class::MediaFileClass`, + m.media_type as `media_type: enums::by_table::media_files::media_file_type::MediaFileType`, + + m.maybe_engine_category as `maybe_engine_category: enums::by_table::media_files::media_file_engine_category::MediaFileEngineCategory`, + m.maybe_animation_type as `maybe_animation_type: enums::by_table::media_files::media_file_animation_type::MediaFileAnimationType`, + m.maybe_media_subtype as `maybe_media_subtype: enums::by_table::media_files::media_file_subtype::MediaFileSubtype`, users.token as `maybe_creator_user_token: tokens::tokens::users::UserToken`, @@ -338,8 +350,12 @@ async fn select_without_deleted( SELECT m.token as `token: tokens::tokens::media_files::MediaFileToken`, - m.media_type as `media_type: enums::by_table::media_files::media_file_type::MediaFileType`, m.media_class as `media_class: enums::by_table::media_files::media_file_class::MediaFileClass`, + m.media_type as `media_type: enums::by_table::media_files::media_file_type::MediaFileType`, + + m.maybe_engine_category as `maybe_engine_category: enums::by_table::media_files::media_file_engine_category::MediaFileEngineCategory`, + m.maybe_animation_type as `maybe_animation_type: enums::by_table::media_files::media_file_animation_type::MediaFileAnimationType`, + m.maybe_media_subtype as `maybe_media_subtype: enums::by_table::media_files::media_file_subtype::MediaFileSubtype`, users.token as `maybe_creator_user_token: tokens::tokens::users::UserToken`, diff --git a/crates/lib/mysql_queries/src/queries/media_files/get/mod.rs b/crates/lib/mysql_queries/src/queries/media_files/get/mod.rs new file mode 100644 index 0000000000..7f8470cb91 --- /dev/null +++ b/crates/lib/mysql_queries/src/queries/media_files/get/mod.rs @@ -0,0 +1,3 @@ +pub mod batch_get_media_files; +pub mod batch_get_media_files_by_tokens; +pub mod get_media_file; \ No newline at end of file diff --git a/crates/lib/mysql_queries/src/queries/media_files/list/list_media_files.rs b/crates/lib/mysql_queries/src/queries/media_files/list/list_media_files.rs index ab050af1f6..6a698266ab 100644 --- a/crates/lib/mysql_queries/src/queries/media_files/list/list_media_files.rs +++ b/crates/lib/mysql_queries/src/queries/media_files/list/list_media_files.rs @@ -1,8 +1,10 @@ use chrono::{DateTime, Utc}; use sqlx::{FromRow, MySql, MySqlPool, QueryBuilder, Row}; use sqlx::mysql::MySqlRow; +use enums::by_table::media_files::media_file_animation_type::MediaFileAnimationType; use enums::by_table::media_files::media_file_class::MediaFileClass; +use enums::by_table::media_files::media_file_engine_category::MediaFileEngineCategory; use enums::by_table::media_files::media_file_origin_category::MediaFileOriginCategory; use enums::by_table::media_files::media_file_origin_model_type::MediaFileOriginModelType; use enums::by_table::media_files::media_file_origin_product_category::MediaFileOriginProductCategory; @@ -30,6 +32,12 @@ pub struct MediaFileListPage { pub struct MediaFileListItem { pub token: MediaFileToken, + pub media_class: MediaFileClass, + pub media_type: MediaFileType, + + pub maybe_engine_category: Option, + pub maybe_animation_type: Option, + pub origin_category: MediaFileOriginCategory, pub origin_product_category: MediaFileOriginProductCategory, @@ -39,9 +47,6 @@ pub struct MediaFileListItem { // NB: The title won't be populated for `tts_models` records or non-`model_weights` records. pub maybe_origin_model_title: Option, - pub media_type: MediaFileType, - pub media_class: MediaFileClass, - pub public_bucket_directory_hash: String, pub maybe_public_bucket_prefix: Option, pub maybe_public_bucket_extension: Option, @@ -112,13 +117,15 @@ pub async fn list_media_files(args: ListMediaFilesArgs<'_>) -> AnyhowResult, + maybe_animation_type: Option, + origin_category: MediaFileOriginCategory, origin_product_category: MediaFileOriginProductCategory, maybe_origin_model_type: Option, maybe_origin_model_token: Option, maybe_origin_model_title: Option, - media_type: MediaFileType, - media_class: MediaFileClass, - public_bucket_directory_hash: String, maybe_public_bucket_prefix: Option, maybe_public_bucket_extension: Option, @@ -384,13 +397,15 @@ impl FromRow<'_, MySqlRow> for MediaFileListItemInternal { Ok(Self { id: row.try_get("id")?, token: MediaFileToken::new(row.try_get("token")?), + media_class: MediaFileClass::try_from_mysql_row(row, "media_class")?, + media_type: MediaFileType::try_from_mysql_row(row, "media_type")?, + maybe_engine_category: MediaFileEngineCategory::try_from_mysql_row_nullable(row, "maybe_engine_category")?, + maybe_animation_type: MediaFileAnimationType::try_from_mysql_row_nullable(row, "maybe_animation_type")?, origin_category: MediaFileOriginCategory::try_from_mysql_row(row, "origin_category")?, origin_product_category: MediaFileOriginProductCategory::try_from_mysql_row(row, "origin_product_category")?, maybe_origin_model_type: MediaFileOriginModelType::try_from_mysql_row_nullable(row, "maybe_origin_model_type")?, maybe_origin_model_token: row.try_get("maybe_origin_model_token")?, maybe_origin_model_title: row.try_get("maybe_origin_model_title")?, - media_type: MediaFileType::try_from_mysql_row(row, "media_type")?, - media_class: MediaFileClass::try_from_mysql_row(row, "media_class")?, public_bucket_directory_hash: row.try_get("public_bucket_directory_hash")?, maybe_public_bucket_prefix: row.try_get("maybe_public_bucket_prefix")?, maybe_public_bucket_extension: row.try_get("maybe_public_bucket_extension")?, diff --git a/crates/lib/mysql_queries/src/queries/media_files/list/list_media_files_by_batch_token.rs b/crates/lib/mysql_queries/src/queries/media_files/list/list_media_files_by_batch_token.rs index 53dc86656a..372e260072 100644 --- a/crates/lib/mysql_queries/src/queries/media_files/list/list_media_files_by_batch_token.rs +++ b/crates/lib/mysql_queries/src/queries/media_files/list/list_media_files_by_batch_token.rs @@ -1,6 +1,9 @@ use chrono::{DateTime, Utc}; use sqlx::{FromRow, MySql, MySqlPool, QueryBuilder, Row}; use sqlx::mysql::MySqlRow; +use enums::by_table::media_files::media_file_animation_type::MediaFileAnimationType; +use enums::by_table::media_files::media_file_class::MediaFileClass; +use enums::by_table::media_files::media_file_engine_category::MediaFileEngineCategory; use enums::by_table::media_files::media_file_origin_category::MediaFileOriginCategory; use enums::by_table::media_files::media_file_origin_model_type::MediaFileOriginModelType; @@ -26,6 +29,12 @@ pub struct MediaFileListPage { pub struct MediaFileListItem { pub token: MediaFileToken, + pub media_class: MediaFileClass, + pub media_type: MediaFileType, + + pub maybe_engine_category: Option, + pub maybe_animation_type: Option, + pub origin_category: MediaFileOriginCategory, pub origin_product_category: MediaFileOriginProductCategory, @@ -35,7 +44,6 @@ pub struct MediaFileListItem { // NB: The title won't be populated for `tts_models` records or non-`model_weights` records. pub maybe_origin_model_title: Option, - pub media_type: MediaFileType, pub public_bucket_directory_hash: String, pub maybe_public_bucket_prefix: Option, pub maybe_public_bucket_extension: Option, @@ -104,12 +112,15 @@ pub async fn list_media_files_by_batch_token(args: ListMediaFileByBatchArgs<'_>) .map(|record| { MediaFileListItem { token: record.token, + media_class: record.media_class, + media_type: record.media_type, + maybe_engine_category: record.maybe_engine_category, + maybe_animation_type: record.maybe_animation_type, origin_category: record.origin_category, origin_product_category: record.origin_product_category, maybe_origin_model_type: record.maybe_origin_model_type, maybe_origin_model_token: record.maybe_origin_model_token, maybe_origin_model_title: record.maybe_origin_model_title, - media_type: record.media_type, public_bucket_directory_hash: record.public_bucket_directory_hash, maybe_public_bucket_prefix: record.maybe_public_bucket_prefix, maybe_public_bucket_extension: record.maybe_public_bucket_extension, @@ -146,8 +157,12 @@ fn select_result_fields() -> String { m.id, m.token, + m.media_class, m.media_type, + m.maybe_engine_category, + m.maybe_animation_type, + m.origin_category, m.origin_product_category, @@ -248,6 +263,12 @@ struct MediaFileListItemInternal { id: i64, token: MediaFileToken, + media_class: MediaFileClass, + media_type: MediaFileType, + + maybe_engine_category: Option, + maybe_animation_type: Option, + origin_category: MediaFileOriginCategory, origin_product_category: MediaFileOriginProductCategory, @@ -257,7 +278,6 @@ struct MediaFileListItemInternal { // NB: The title won't be populated for `tts_models` records or non-`model_weights` records. maybe_origin_model_title: Option, - media_type: MediaFileType, public_bucket_directory_hash: String, maybe_public_bucket_prefix: Option, maybe_public_bucket_extension: Option, @@ -296,12 +316,15 @@ impl FromRow<'_, MySqlRow> for MediaFileListItemInternal { Ok(Self { id: row.try_get("id")?, token: MediaFileToken::new(row.try_get("token")?), + media_class: MediaFileClass::try_from_mysql_row(row, "media_class")?, + media_type: MediaFileType::try_from_mysql_row(row, "media_type")?, + maybe_engine_category: MediaFileEngineCategory::try_from_mysql_row_nullable(row, "maybe_engine_category")?, + maybe_animation_type: MediaFileAnimationType::try_from_mysql_row_nullable(row, "maybe_animation_type")?, origin_category: MediaFileOriginCategory::try_from_mysql_row(row, "origin_category")?, origin_product_category: MediaFileOriginProductCategory::try_from_mysql_row(row, "origin_product_category")?, maybe_origin_model_type: MediaFileOriginModelType::try_from_mysql_row_nullable(row, "maybe_origin_model_type")?, maybe_origin_model_token: row.try_get("maybe_origin_model_token")?, maybe_origin_model_title: row.try_get("maybe_origin_model_title")?, - media_type: MediaFileType::try_from_mysql_row(row, "media_type")?, public_bucket_directory_hash: row.try_get("public_bucket_directory_hash")?, maybe_public_bucket_prefix: row.try_get("maybe_public_bucket_prefix")?, maybe_public_bucket_extension: row.try_get("maybe_public_bucket_extension")?, diff --git a/crates/lib/mysql_queries/src/queries/media_files/list/list_media_files_for_user.rs b/crates/lib/mysql_queries/src/queries/media_files/list/list_media_files_for_user.rs index 82b2d5532a..7bc74622a0 100644 --- a/crates/lib/mysql_queries/src/queries/media_files/list/list_media_files_for_user.rs +++ b/crates/lib/mysql_queries/src/queries/media_files/list/list_media_files_for_user.rs @@ -3,8 +3,10 @@ use std::collections::HashSet; use chrono::{DateTime, Utc}; use sqlx::{FromRow, MySql, MySqlPool, QueryBuilder, Row}; use sqlx::mysql::MySqlRow; +use enums::by_table::media_files::media_file_animation_type::MediaFileAnimationType; use enums::by_table::media_files::media_file_class::MediaFileClass; +use enums::by_table::media_files::media_file_engine_category::MediaFileEngineCategory; use enums::by_table::media_files::media_file_origin_category::MediaFileOriginCategory; use enums::by_table::media_files::media_file_origin_model_type::MediaFileOriginModelType; use enums::by_table::media_files::media_file_origin_product_category::MediaFileOriginProductCategory; @@ -29,6 +31,12 @@ pub struct MediaFileListPage { pub struct MediaFileListItem { pub token: MediaFileToken, + pub media_class: MediaFileClass, + pub media_type: MediaFileType, + + pub maybe_engine_category: Option, + pub maybe_animation_type: Option, + pub origin_category: MediaFileOriginCategory, pub origin_product_category: MediaFileOriginProductCategory, @@ -38,9 +46,6 @@ pub struct MediaFileListItem { // NB: The title won't be populated for `tts_models` records or non-`model_weights` records. pub maybe_origin_model_title: Option, - pub media_type: MediaFileType, - pub media_class: MediaFileClass, - pub public_bucket_directory_hash: String, pub maybe_public_bucket_prefix: Option, pub maybe_public_bucket_extension: Option, @@ -122,13 +127,15 @@ pub async fn list_media_files_for_user(args: ListMediaFileForUserArgs<'_>) -> An .map(|record| { MediaFileListItem { token: record.token, + media_class: record.media_class, + media_type: record.media_type, + maybe_engine_category: record.maybe_engine_category, + maybe_animation_type: record.maybe_animation_type, origin_category: record.origin_category, origin_product_category: record.origin_product_category, maybe_origin_model_type: record.maybe_origin_model_type, maybe_origin_model_token: record.maybe_origin_model_token, maybe_origin_model_title: record.maybe_origin_model_title, - media_type: record.media_type, - media_class: record.media_class, public_bucket_directory_hash: record.public_bucket_directory_hash, maybe_public_bucket_prefix: record.maybe_public_bucket_prefix, maybe_public_bucket_extension: record.maybe_public_bucket_extension, @@ -168,8 +175,11 @@ fn select_result_fields() -> String { m.id, m.token, - m.media_type, m.media_class, + m.media_type, + + m.maybe_engine_category, + m.maybe_animation_type, m.origin_category, m.origin_product_category, @@ -320,6 +330,12 @@ struct MediaFileListItemInternal { id: i64, token: MediaFileToken, + media_class: MediaFileClass, + media_type: MediaFileType, + + maybe_engine_category: Option, + maybe_animation_type: Option, + origin_category: MediaFileOriginCategory, origin_product_category: MediaFileOriginProductCategory, @@ -331,9 +347,6 @@ struct MediaFileListItemInternal { maybe_other_prompt_args: Option, maybe_duration_millis: Option, - media_type: MediaFileType, - media_class: MediaFileClass, - public_bucket_directory_hash: String, maybe_public_bucket_prefix: Option, maybe_public_bucket_extension: Option, @@ -374,6 +387,10 @@ impl FromRow<'_, MySqlRow> for MediaFileListItemInternal { Ok(Self { id: row.try_get("id")?, token: MediaFileToken::new(row.try_get("token")?), + media_class: MediaFileClass::try_from_mysql_row(row, "media_class")?, + media_type: MediaFileType::try_from_mysql_row(row, "media_type")?, + maybe_engine_category: MediaFileEngineCategory::try_from_mysql_row_nullable(row, "maybe_engine_category")?, + maybe_animation_type: MediaFileAnimationType::try_from_mysql_row_nullable(row, "maybe_animation_type")?, origin_category: MediaFileOriginCategory::try_from_mysql_row(row, "origin_category")?, origin_product_category: MediaFileOriginProductCategory::try_from_mysql_row(row, "origin_product_category")?, maybe_origin_model_type: MediaFileOriginModelType::try_from_mysql_row_nullable(row, "maybe_origin_model_type")?, @@ -381,8 +398,6 @@ impl FromRow<'_, MySqlRow> for MediaFileListItemInternal { maybe_origin_model_title: row.try_get("maybe_origin_model_title")?, maybe_other_prompt_args: row.try_get("maybe_other_prompt_args")?, maybe_duration_millis: row.try_get("maybe_duration_millis")?, - media_type: MediaFileType::try_from_mysql_row(row, "media_type")?, - media_class: MediaFileClass::try_from_mysql_row(row, "media_class")?, public_bucket_directory_hash: row.try_get("public_bucket_directory_hash")?, maybe_public_bucket_prefix: row.try_get("maybe_public_bucket_prefix")?, maybe_public_bucket_extension: row.try_get("maybe_public_bucket_extension")?, diff --git a/crates/lib/mysql_queries/src/queries/media_files/list/mod.rs b/crates/lib/mysql_queries/src/queries/media_files/list/mod.rs index f9fe5291f8..24a33037c6 100644 --- a/crates/lib/mysql_queries/src/queries/media_files/list/mod.rs +++ b/crates/lib/mysql_queries/src/queries/media_files/list/mod.rs @@ -1,4 +1,3 @@ pub mod list_media_files; pub mod list_media_files_by_batch_token; -pub mod list_media_files_by_tokens; pub mod list_media_files_for_user; diff --git a/crates/lib/mysql_queries/src/queries/media_files/mod.rs b/crates/lib/mysql_queries/src/queries/media_files/mod.rs index e2846d34cf..7a601508e5 100644 --- a/crates/lib/mysql_queries/src/queries/media_files/mod.rs +++ b/crates/lib/mysql_queries/src/queries/media_files/mod.rs @@ -1,8 +1,7 @@ -pub mod batch_get_media_files; pub mod create; pub mod delete_media_file; pub mod edit; -pub mod get_media_file; +pub mod get; pub mod get_media_file_for_inference; pub mod list; pub mod rename_media_file; diff --git a/crates/service/job/inference_job/src/job/job_types/lipsync/sad_talker/download_audio_file.rs b/crates/service/job/inference_job/src/job/job_types/lipsync/sad_talker/download_audio_file.rs index e90e3fc887..d25151c0fd 100644 --- a/crates/service/job/inference_job/src/job/job_types/lipsync/sad_talker/download_audio_file.rs +++ b/crates/service/job/inference_job/src/job/job_types/lipsync/sad_talker/download_audio_file.rs @@ -12,7 +12,7 @@ use cloud_storage::bucket_client::BucketClient; use jobs_common::job_progress_reporter::job_progress_reporter::JobProgressReporter; use mysql_queries::payloads::generic_inference_args::lipsync_payload::LipsyncAnimationAudioSource; use mysql_queries::queries::generic_inference::job::list_available_generic_inference_jobs::AvailableInferenceJob; -use mysql_queries::queries::media_files::get_media_file::get_media_file; +use mysql_queries::queries::media_files::get::get_media_file::get_media_file; use mysql_queries::queries::media_uploads::get_media_upload_for_inference::get_media_upload_for_inference; use mysql_queries::queries::voice_conversion::results::get_voice_conversion_result_for_inference::get_voice_conversion_result_for_inference; use tokens::tokens::media_files::MediaFileToken; diff --git a/crates/service/job/inference_job/src/job/job_types/lipsync/sad_talker/download_image_file.rs b/crates/service/job/inference_job/src/job/job_types/lipsync/sad_talker/download_image_file.rs index 57ea502e76..b81edb1ff0 100644 --- a/crates/service/job/inference_job/src/job/job_types/lipsync/sad_talker/download_image_file.rs +++ b/crates/service/job/inference_job/src/job/job_types/lipsync/sad_talker/download_image_file.rs @@ -11,7 +11,7 @@ use cloud_storage::bucket_client::BucketClient; use jobs_common::job_progress_reporter::job_progress_reporter::JobProgressReporter; use mysql_queries::payloads::generic_inference_args::lipsync_payload::LipsyncAnimationImageSource; use mysql_queries::queries::generic_inference::job::list_available_generic_inference_jobs::AvailableInferenceJob; -use mysql_queries::queries::media_files::get_media_file::get_media_file; +use mysql_queries::queries::media_files::get::get_media_file::get_media_file; use mysql_queries::queries::media_uploads::get_media_upload_for_inference::get_media_upload_for_inference; use tokens::tokens::media_files::MediaFileToken; use tokens::tokens::media_uploads::MediaUploadToken; diff --git a/crates/service/job/inference_job/src/job/job_types/mocap/mocap_net/download_video_file.rs b/crates/service/job/inference_job/src/job/job_types/mocap/mocap_net/download_video_file.rs index 3a12c84363..b545a35452 100644 --- a/crates/service/job/inference_job/src/job/job_types/mocap/mocap_net/download_video_file.rs +++ b/crates/service/job/inference_job/src/job/job_types/mocap/mocap_net/download_video_file.rs @@ -10,7 +10,7 @@ use cloud_storage::bucket_client::BucketClient; use jobs_common::job_progress_reporter::job_progress_reporter::JobProgressReporter; use mysql_queries::payloads::generic_inference_args::mocap_payload::MocapVideoSource; use mysql_queries::queries::generic_inference::job::list_available_generic_inference_jobs::AvailableInferenceJob; -use mysql_queries::queries::media_files::get_media_file::get_media_file; +use mysql_queries::queries::media_files::get::get_media_file::get_media_file; use mysql_queries::queries::media_uploads::get_media_upload_for_inference::get_media_upload_for_inference; use tokens::tokens::media_files::MediaFileToken; use tokens::tokens::media_uploads::MediaUploadToken; diff --git a/crates/service/job/inference_job/src/job/job_types/videofilter/rerender_a_video/download_video_file.rs b/crates/service/job/inference_job/src/job/job_types/videofilter/rerender_a_video/download_video_file.rs index 597757985a..83188818cd 100644 --- a/crates/service/job/inference_job/src/job/job_types/videofilter/rerender_a_video/download_video_file.rs +++ b/crates/service/job/inference_job/src/job/job_types/videofilter/rerender_a_video/download_video_file.rs @@ -10,7 +10,7 @@ use cloud_storage::bucket_client::BucketClient; use jobs_common::job_progress_reporter::job_progress_reporter::JobProgressReporter; use mysql_queries::payloads::generic_inference_args::videofilter_payload::VideofilterVideoSource; use mysql_queries::queries::generic_inference::job::list_available_generic_inference_jobs::AvailableInferenceJob; -use mysql_queries::queries::media_files::get_media_file::get_media_file; +use mysql_queries::queries::media_files::get::get_media_file::get_media_file; use mysql_queries::queries::media_uploads::get_media_upload_for_inference::get_media_upload_for_inference; use tokens::tokens::media_files::MediaFileToken; use tokens::tokens::media_uploads::MediaUploadToken; diff --git a/crates/service/job/inference_job/src/job/job_types/workflow/comfy_ui/process_job.rs b/crates/service/job/inference_job/src/job/job_types/workflow/comfy_ui/process_job.rs index 6a7e83f4ae..a86150a525 100644 --- a/crates/service/job/inference_job/src/job/job_types/workflow/comfy_ui/process_job.rs +++ b/crates/service/job/inference_job/src/job/job_types/workflow/comfy_ui/process_job.rs @@ -29,7 +29,7 @@ use mysql_queries::payloads::prompt_args::encoded_style_transfer_name::EncodedSt use mysql_queries::payloads::prompt_args::prompt_inner_payload::PromptInnerPayload; use mysql_queries::queries::generic_inference::job::list_available_generic_inference_jobs::AvailableInferenceJob; use mysql_queries::queries::media_files::create::insert_media_file_from_comfy_ui::{insert_media_file_from_comfy_ui, InsertArgs}; -use mysql_queries::queries::media_files::get_media_file::get_media_file; +use mysql_queries::queries::media_files::get::get_media_file::get_media_file; use mysql_queries::queries::model_weights::get::get_weight::get_weight_by_token; use mysql_queries::queries::prompts::insert_prompt::{insert_prompt, InsertPromptArgs}; use subprocess_common::command_runner::command_runner_args::RunAsSubprocessArgs; diff --git a/crates/service/web/storyteller_web/src/api_doc.rs b/crates/service/web/storyteller_web/src/api_doc.rs index 9db8e1de9a..2a67955851 100644 --- a/crates/service/web/storyteller_web/src/api_doc.rs +++ b/crates/service/web/storyteller_web/src/api_doc.rs @@ -2,7 +2,9 @@ use utoipa::OpenApi; use enums::by_table::generic_inference_jobs::frontend_failure_category::FrontendFailureCategory; use enums::by_table::generic_inference_jobs::inference_category::InferenceCategory; +use enums::by_table::media_files::media_file_animation_type::MediaFileAnimationType; use enums::by_table::media_files::media_file_class::MediaFileClass; +use enums::by_table::media_files::media_file_engine_category::MediaFileEngineCategory; use enums::by_table::media_files::media_file_origin_category::MediaFileOriginCategory; use enums::by_table::media_files::media_file_origin_model_type::MediaFileOriginModelType; use enums::by_table::media_files::media_file_origin_product_category::MediaFileOriginProductCategory; @@ -155,7 +157,9 @@ use crate::http_server::web_utils::response_success_helpers::*; FrontendFailureCategory, InferenceCategory, JobStatusPlus, + MediaFileAnimationType, MediaFileClass, + MediaFileEngineCategory, MediaFileOriginCategory, MediaFileOriginModelType, MediaFileOriginProductCategory, diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/engine/get_scene_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/engine/get_scene_handler.rs index faa220ca3d..5544a824aa 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/engine/get_scene_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/engine/get_scene_handler.rs @@ -14,7 +14,7 @@ use enums::by_table::media_files::media_file_type::MediaFileType; use enums::by_table::model_weights::weights_category::WeightsCategory; 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::media_files::get::get_media_file::get_media_file; use mysql_queries::queries::tts::tts_results::query_tts_result::select_tts_result_by_token; use tokens::tokens::media_files::MediaFileToken; use tokens::tokens::model_weights::ModelWeightToken; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/delete/delete_media_file_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/delete/delete_media_file_handler.rs index e71a7e72d3..d293598740 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/delete/delete_media_file_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/delete/delete_media_file_handler.rs @@ -10,7 +10,7 @@ use utoipa::ToSchema; use http_server_common::response::serialize_as_json_error::serialize_as_json_error; use mysql_queries::queries::media_files::delete_media_file::{delete_media_file_as_mod, delete_media_file_as_user, undelete_media_file_as_mod, undelete_media_file_as_user}; -use mysql_queries::queries::media_files::get_media_file::get_media_file; +use mysql_queries::queries::media_files::get::get_media_file::get_media_file; use tokens::tokens::media_files::MediaFileToken; use crate::http_server::web_utils::response_success_helpers::simple_json_success; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/edit/change_media_file_visibility_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/edit/change_media_file_visibility_handler.rs index 7226225fa9..cec94dbf63 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/edit/change_media_file_visibility_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/edit/change_media_file_visibility_handler.rs @@ -12,7 +12,7 @@ use enums::common::visibility::Visibility; use http_server_common::request::get_request_ip::get_request_ip; use http_server_common::response::response_success_helpers::simple_json_success; use http_server_common::response::serialize_as_json_error::serialize_as_json_error; -use mysql_queries::queries::media_files::get_media_file::get_media_file; +use mysql_queries::queries::media_files::get::get_media_file::get_media_file; use mysql_queries::queries::media_files::update_media_file::{update_media_file, UpdateMediaFileArgs}; use tokens::tokens::media_files::MediaFileToken; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/edit/rename_media_file_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/edit/rename_media_file_handler.rs index ca6a6c4306..3c35a1d182 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/edit/rename_media_file_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/edit/rename_media_file_handler.rs @@ -10,7 +10,7 @@ use utoipa::ToSchema; use http_server_common::response::serialize_as_json_error::serialize_as_json_error; use mysql_queries::queries::media_files::delete_media_file::{delete_media_file_as_mod, delete_media_file_as_user, undelete_media_file_as_mod, undelete_media_file_as_user}; -use mysql_queries::queries::media_files::get_media_file::get_media_file; +use mysql_queries::queries::media_files::get::get_media_file::get_media_file; use mysql_queries::queries::media_files::rename_media_file::rename_media_file; use tokens::tokens::media_files::MediaFileToken; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/edit/set_media_file_cover_image_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/edit/set_media_file_cover_image_handler.rs index efcf4a646d..051b45405f 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/edit/set_media_file_cover_image_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/edit/set_media_file_cover_image_handler.rs @@ -12,7 +12,7 @@ use enums::common::visibility::Visibility; use http_server_common::response::serialize_as_json_error::serialize_as_json_error; use mysql_queries::queries::media_files::edit::set_media_file_cover_image::{set_media_file_cover_image, UpdateArgs}; -use mysql_queries::queries::media_files::get_media_file::get_media_file; +use mysql_queries::queries::media_files::get::get_media_file::get_media_file; use tokens::tokens::media_files::MediaFileToken; use crate::http_server::endpoints::weights::set_model_weight_cover_image_handler::SetModelWeightCoverImageError; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/edit/update_media_file_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/edit/update_media_file_handler.rs index 9e3014f76f..47206361a6 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/edit/update_media_file_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/edit/update_media_file_handler.rs @@ -11,7 +11,7 @@ use enums::common::visibility::Visibility; use http_server_common::request::get_request_ip::get_request_ip; use http_server_common::response::response_success_helpers::simple_json_success; use http_server_common::response::serialize_as_json_error::serialize_as_json_error; -use mysql_queries::queries::media_files::get_media_file::get_media_file; +use mysql_queries::queries::media_files::get::get_media_file::get_media_file; use mysql_queries::queries::media_files::update_media_file::{update_media_file, UpdateMediaFileArgs}; use tokens::tokens::media_files::MediaFileToken; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/get/batch_get_media_files_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/get/batch_get_media_files_handler.rs index b649c904a5..9f6d9790ee 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/get/batch_get_media_files_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/get/batch_get_media_files_handler.rs @@ -8,19 +8,21 @@ use actix_web::http::StatusCode; use actix_web::web::Path; use actix_web_lab::extract::Query; use chrono::{DateTime, Utc}; +use futures_old_for_limiter::future::result; use log::warn; use utoipa::{IntoParams, ToSchema}; use buckets::public::media_files::bucket_file_path::MediaFileBucketPath; +use enums::by_table::media_files::media_file_animation_type::MediaFileAnimationType; use enums::by_table::media_files::media_file_class::MediaFileClass; +use enums::by_table::media_files::media_file_engine_category::MediaFileEngineCategory; use enums::by_table::media_files::media_file_subtype::MediaFileSubtype; use enums::by_table::media_files::media_file_type::MediaFileType; use enums::by_table::model_weights::weights_category::WeightsCategory; use enums::by_table::model_weights::weights_types::WeightsType; use enums::common::visibility::Visibility; use enums::no_table::style_transfer::style_transfer_name::StyleTransferName; -use mysql_queries::queries::media_files::batch_get_media_files::batch_get_media_files; -use mysql_queries::queries::media_files::get_media_file::get_media_file; +use mysql_queries::queries::media_files::get::batch_get_media_files::batch_get_media_files; 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; @@ -60,18 +62,31 @@ pub struct BatchGetMediaFilesSuccessResponse { pub struct BatchMediaFileInfo { pub token: MediaFileToken, + /// The coarse-grained class of media file: image, video, etc. + pub media_class: MediaFileClass, + /// Type of media will dictate which fields are populated and what /// the frontend should display (eg. video player vs audio player). + /// This is closer in meaning to a "mime type". pub media_type: MediaFileType, - /// The coarse-grained class of media file - pub media_class: MediaFileClass, + /// If this is an engine/3D asset, this is the broad category (scene, + /// animation, etc.) of that object. + /// This can also be used for filtering in list/batch endpoints. + pub maybe_engine_category: Option, + + /// If this is an engine/3D asset for an animation or a rig that can + /// be animated with either (or both) skeletal or blend shape animations, + /// this describes the animation regime used or supported. + pub maybe_animation_type: Option, /// If the media file has a subtype, we'll report it. /// This is mostly used for Bevy engine files. + #[deprecated(note="This was for the Bevy engine. Do not use.")] pub maybe_media_subtype: Option, /// Extension for the engine to load over remote:// URLs. + #[deprecated(note="This was for the Bevy engine. Do not use.")] pub maybe_engine_extension: Option, /// If the file was generated as part of a batch, this is the token for the batch. @@ -287,8 +302,10 @@ pub async fn batch_get_media_files_handler( BatchMediaFileInfo { token: result.token.clone(), - media_type: result.media_type, media_class: result.media_class, + media_type: result.media_type, + maybe_engine_category: result.maybe_engine_category, + maybe_animation_type: result.maybe_animation_type, maybe_media_subtype: result.maybe_media_subtype, maybe_engine_extension, maybe_batch_token: result.maybe_batch_token, diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/get/get_media_file_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/get/get_media_file_handler.rs index cf53f462aa..398ea539a2 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/get/get_media_file_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/get/get_media_file_handler.rs @@ -10,14 +10,16 @@ use log::warn; use utoipa::ToSchema; use buckets::public::media_files::bucket_file_path::MediaFileBucketPath; +use enums::by_table::media_files::media_file_animation_type::MediaFileAnimationType; use enums::by_table::media_files::media_file_class::MediaFileClass; +use enums::by_table::media_files::media_file_engine_category::MediaFileEngineCategory; use enums::by_table::media_files::media_file_subtype::MediaFileSubtype; use enums::by_table::media_files::media_file_type::MediaFileType; use enums::by_table::model_weights::weights_category::WeightsCategory; use enums::by_table::model_weights::weights_types::WeightsType; use enums::common::visibility::Visibility; use enums::no_table::style_transfer::style_transfer_name::StyleTransferName; -use mysql_queries::queries::media_files::get_media_file::get_media_file; +use mysql_queries::queries::media_files::get::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; @@ -46,18 +48,31 @@ pub struct GetMediaFileSuccessResponse { pub struct MediaFileInfo { pub token: MediaFileToken, + /// The coarse-grained class of media file: image, video, etc. + pub media_class: MediaFileClass, + /// Type of media will dictate which fields are populated and what /// the frontend should display (eg. video player vs audio player). + /// This is closer in meaning to a "mime type". pub media_type: MediaFileType, - /// The coarse-grained class of media file - pub media_class: MediaFileClass, + /// If this is an engine/3D asset, this is the broad category (scene, + /// animation, etc.) of that object. + /// This can also be used for filtering in list/batch endpoints. + pub maybe_engine_category: Option, + + /// If this is an engine/3D asset for an animation or a rig that can + /// be animated with either (or both) skeletal or blend shape animations, + /// this describes the animation regime used or supported. + pub maybe_animation_type: Option, /// If the media file has a subtype, we'll report it. /// This is mostly used for Bevy engine files. + #[deprecated(note="This was for the Bevy engine. Do not use.")] pub maybe_media_subtype: Option, /// Extension for the engine to load over remote:// URLs. + #[deprecated(note="This was for the Bevy engine. Do not use.")] pub maybe_engine_extension: Option, /// If the file was generated as part of a batch, this is the token for the batch. @@ -303,8 +318,10 @@ async fn modern_media_file_lookup( success: true, media_file: MediaFileInfo { token: result.token.clone(), - media_type: result.media_type, media_class: result.media_class, + media_type: result.media_type, + maybe_engine_category: result.maybe_engine_category, + maybe_animation_type: result.maybe_animation_type, maybe_media_subtype: result.maybe_media_subtype, maybe_engine_extension, maybe_batch_token: result.maybe_batch_token, @@ -405,8 +422,10 @@ async fn emulate_media_file_with_legacy_tts_result_lookup( success: true, media_file: MediaFileInfo { token, - media_type: MediaFileType::Audio, // NB: Always audio media_class: MediaFileClass::Audio, // NB: Always audio + media_type: MediaFileType::Audio, // NB: Always audio + maybe_engine_category: None, + maybe_animation_type: None, maybe_media_subtype: None, maybe_engine_extension: None, maybe_batch_token: None, diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/list/list_featured_media_files_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/list/list_featured_media_files_handler.rs index 63e173ce53..787bcfae22 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/list/list_featured_media_files_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/list/list_featured_media_files_handler.rs @@ -9,12 +9,15 @@ use r2d2_redis::redis::Commands; use utoipa::ToSchema; use buckets::public::media_files::bucket_file_path::MediaFileBucketPath; +use enums::by_table::media_files::media_file_animation_type::MediaFileAnimationType; +use enums::by_table::media_files::media_file_class::MediaFileClass; +use enums::by_table::media_files::media_file_engine_category::MediaFileEngineCategory; use enums::by_table::media_files::media_file_origin_category::MediaFileOriginCategory; use enums::by_table::media_files::media_file_origin_model_type::MediaFileOriginModelType; use enums::by_table::media_files::media_file_origin_product_category::MediaFileOriginProductCategory; use enums::by_table::media_files::media_file_type::MediaFileType; use enums::no_table::style_transfer::style_transfer_name::StyleTransferName; -use mysql_queries::queries::media_files::list::list_media_files_by_tokens::list_media_files_by_tokens; +use mysql_queries::queries::media_files::get::batch_get_media_files_by_tokens::batch_get_media_files_by_tokens; use tokens::tokens::media_files::MediaFileToken; use users_component::common_responses::user_details_lite::UserDetailsLight; @@ -33,10 +36,24 @@ pub struct ListFeaturedMediaFilesSuccessResponse { pub struct MediaFile { pub token: MediaFileToken, + /// The coarse-grained class of media file: image, video, etc. + pub media_class: MediaFileClass, + /// Type of media will dictate which fields are populated and what /// the frontend should display (eg. video player vs audio player). + /// This is closer in meaning to a "mime type". pub media_type: MediaFileType, + /// If this is an engine/3D asset, this is the broad category (scene, + /// animation, etc.) of that object. + /// This can also be used for filtering in list/batch endpoints. + pub maybe_engine_category: Option, + + /// If this is an engine/3D asset for an animation or a rig that can + /// be animated with either (or both) skeletal or blend shape animations, + /// this describes the animation regime used or supported. + pub maybe_animation_type: Option, + /// URL to the media file pub public_bucket_path: String, @@ -149,7 +166,7 @@ pub async fn list_featured_media_files_handler( if !media_file_tokens.is_empty() { let query_results = - list_media_files_by_tokens(&server_state.mysql_pool, &media_file_tokens, false).await; + batch_get_media_files_by_tokens(&server_state.mysql_pool, &media_file_tokens, false).await; media_files = match query_results { Ok(media_files) => media_files, @@ -173,7 +190,10 @@ pub async fn list_featured_media_files_handler( MediaFile { token: m.token.clone(), + media_class: m.media_class, media_type: m.media_type, + maybe_engine_category: m.maybe_engine_category, + maybe_animation_type: m.maybe_animation_type, public_bucket_path, cover_image: MediaFileCoverImageDetails::from_optional_db_fields( &m.token, diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/list/list_media_files_by_batch_token_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/list/list_media_files_by_batch_token_handler.rs index 7c07a9533b..f688590247 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/list/list_media_files_by_batch_token_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/list/list_media_files_by_batch_token_handler.rs @@ -9,6 +9,9 @@ use log::warn; use utoipa::{IntoParams, ToSchema}; use buckets::public::media_files::bucket_file_path::MediaFileBucketPath; +use enums::by_table::media_files::media_file_animation_type::MediaFileAnimationType; +use enums::by_table::media_files::media_file_class::MediaFileClass; +use enums::by_table::media_files::media_file_engine_category::MediaFileEngineCategory; use enums::by_table::media_files::media_file_origin_category::MediaFileOriginCategory; use enums::by_table::media_files::media_file_origin_model_type::MediaFileOriginModelType; use enums::by_table::media_files::media_file_origin_product_category::MediaFileOriginProductCategory; @@ -53,8 +56,24 @@ pub struct ListMediaFilesByBatchSuccessResponse { pub struct MediaFilesByBatchListItem { pub token: MediaFileToken, + /// The coarse-grained class of media file: image, video, etc. + pub media_class: MediaFileClass, + + /// Type of media will dictate which fields are populated and what + /// the frontend should display (eg. video player vs audio player). + /// This is closer in meaning to a "mime type". pub media_type: MediaFileType, + /// If this is an engine/3D asset, this is the broad category (scene, + /// animation, etc.) of that object. + /// This can also be used for filtering in list/batch endpoints. + pub maybe_engine_category: Option, + + /// If this is an engine/3D asset for an animation or a rig that can + /// be animated with either (or both) skeletal or blend shape animations, + /// this describes the animation regime used or supported. + pub maybe_animation_type: Option, + /// Details where the media file came from. pub origin: MediaFileOriginDetails, @@ -211,7 +230,10 @@ pub async fn list_media_files_by_batch_token_handler( }) .map(|record| MediaFilesByBatchListItem { token: record.token.clone(), + media_class: record.media_class, media_type: record.media_type, + maybe_engine_category: record.maybe_engine_category, + maybe_animation_type: record.maybe_animation_type, origin: MediaFileOriginDetails::from_db_fields_str( record.origin_category, record.origin_product_category, diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/list/list_media_files_for_user_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/list/list_media_files_for_user_handler.rs index 5c1250118c..9fdf34ef97 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/list/list_media_files_for_user_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/list/list_media_files_for_user_handler.rs @@ -10,7 +10,9 @@ use log::{info, warn}; use utoipa::{IntoParams, ToSchema}; use buckets::public::media_files::bucket_file_path::MediaFileBucketPath; +use enums::by_table::media_files::media_file_animation_type::MediaFileAnimationType; use enums::by_table::media_files::media_file_class::MediaFileClass; +use enums::by_table::media_files::media_file_engine_category::MediaFileEngineCategory; use enums::by_table::media_files::media_file_origin_category::MediaFileOriginCategory; use enums::by_table::media_files::media_file_origin_model_type::MediaFileOriginModelType; use enums::by_table::media_files::media_file_origin_product_category::MediaFileOriginProductCategory; @@ -60,10 +62,23 @@ pub struct ListMediaFilesForUserSuccessResponse { pub struct MediaFileForUserListItem { pub token: MediaFileToken, + /// The coarse-grained class of media file: image, video, etc. + pub media_class: MediaFileClass, + + /// Type of media will dictate which fields are populated and what + /// the frontend should display (eg. video player vs audio player). + /// This is closer in meaning to a "mime type". pub media_type: MediaFileType, - /// The coarse-grained class of media file - pub media_class: MediaFileClass, + /// If this is an engine/3D asset, this is the broad category (scene, + /// animation, etc.) of that object. + /// This can also be used for filtering in list/batch endpoints. + pub maybe_engine_category: Option, + + /// If this is an engine/3D asset for an animation or a rig that can + /// be animated with either (or both) skeletal or blend shape animations, + /// this describes the animation regime used or supported. + pub maybe_animation_type: Option, /// Details where the media file came from. pub origin: MediaFileOriginDetails, @@ -245,8 +260,10 @@ pub async fn list_media_files_for_user_handler( }) .map(|record| MediaFileForUserListItem { token: record.token.clone(), - media_type: record.media_type, media_class: record.media_class, + media_type: record.media_type, + maybe_engine_category: record.maybe_engine_category, + maybe_animation_type: record.maybe_animation_type, origin: MediaFileOriginDetails::from_db_fields_str( record.origin_category, record.origin_product_category, diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/list/list_media_files_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/list/list_media_files_handler.rs index 8dc142ab7a..d4c1bb4579 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/list/list_media_files_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/list/list_media_files_handler.rs @@ -9,6 +9,9 @@ use log::warn; use utoipa::{IntoParams, ToSchema}; use buckets::public::media_files::bucket_file_path::MediaFileBucketPath; +use enums::by_table::media_files::media_file_animation_type::MediaFileAnimationType; +use enums::by_table::media_files::media_file_class::MediaFileClass; +use enums::by_table::media_files::media_file_engine_category::MediaFileEngineCategory; use enums::by_table::media_files::media_file_origin_category::MediaFileOriginCategory; use enums::by_table::media_files::media_file_origin_model_type::MediaFileOriginModelType; use enums::by_table::media_files::media_file_origin_product_category::MediaFileOriginProductCategory; @@ -49,8 +52,24 @@ pub struct ListMediaFilesSuccessResponse { pub struct MediaFileListItem { pub token: MediaFileToken, + /// The coarse-grained class of media file: image, video, etc. + pub media_class: MediaFileClass, + + /// Type of media will dictate which fields are populated and what + /// the frontend should display (eg. video player vs audio player). + /// This is closer in meaning to a "mime type". pub media_type: MediaFileType, + /// If this is an engine/3D asset, this is the broad category (scene, + /// animation, etc.) of that object. + /// This can also be used for filtering in list/batch endpoints. + pub maybe_engine_category: Option, + + /// If this is an engine/3D asset for an animation or a rig that can + /// be animated with either (or both) skeletal or blend shape animations, + /// this describes the animation regime used or supported. + pub maybe_animation_type: Option, + #[deprecated(note="Use MediaFileOriginDetails instead")] pub origin_category: MediaFileOriginCategory, @@ -237,7 +256,10 @@ pub async fn list_media_files_handler( let results = results_page.records.into_iter() .map(|record| MediaFileListItem { token: record.token.clone(), + media_class: record.media_class, media_type: record.media_type, + maybe_engine_category: record.maybe_engine_category, + maybe_animation_type: record.maybe_animation_type, origin: MediaFileOriginDetails::from_db_fields_str( record.origin_category, record.origin_product_category, diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/upsert_upload/write_engine_asset/write_engine_asset_media_file_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/upsert_upload/write_engine_asset/write_engine_asset_media_file_handler.rs index 5db9b72181..724c82bd59 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/upsert_upload/write_engine_asset/write_engine_asset_media_file_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/upsert_upload/write_engine_asset/write_engine_asset_media_file_handler.rs @@ -18,7 +18,7 @@ use http_server_common::request::get_request_ip::get_request_ip; use mimetypes::mimetype_for_bytes::get_mimetype_for_bytes; use mimetypes::mimetype_to_extension::mimetype_to_extension; use mysql_queries::queries::idepotency_tokens::insert_idempotency_token::insert_idempotency_token; -use mysql_queries::queries::media_files::get_media_file::get_media_file; +use mysql_queries::queries::media_files::get::get_media_file::get_media_file; use mysql_queries::queries::media_files::upsert::upsert_media_file_from_file_upload::{upsert_media_file_from_file_upload, UpsertMediaFileFromUploadArgs, UploadType}; use tokens::tokens::media_files::MediaFileToken; use videos::get_mp4_info::{get_mp4_info, get_mp4_info_for_bytes, get_mp4_info_for_bytes_and_len}; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/upsert_upload/write_scene_file/write_scene_file_media_file_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/upsert_upload/write_scene_file/write_scene_file_media_file_handler.rs index d995e0bbac..03226dee9f 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/upsert_upload/write_scene_file/write_scene_file_media_file_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/upsert_upload/write_scene_file/write_scene_file_media_file_handler.rs @@ -20,7 +20,7 @@ use http_server_common::request::get_request_ip::get_request_ip; use mimetypes::mimetype_for_bytes::get_mimetype_for_bytes; use mimetypes::mimetype_to_extension::mimetype_to_extension; use mysql_queries::queries::idepotency_tokens::insert_idempotency_token::insert_idempotency_token; -use mysql_queries::queries::media_files::get_media_file::get_media_file; +use mysql_queries::queries::media_files::get::get_media_file::get_media_file; use mysql_queries::queries::media_files::upsert::upsert_media_file_from_file_upload::{upsert_media_file_from_file_upload, UpsertMediaFileFromUploadArgs, UploadType}; use tokens::tokens::media_files::MediaFileToken; use videos::get_mp4_info::{get_mp4_info, get_mp4_info_for_bytes, get_mp4_info_for_bytes_and_len}; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/info/moderator_token_info_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/info/moderator_token_info_handler.rs index ed3994fd72..91da3b4de2 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/info/moderator_token_info_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/info/moderator_token_info_handler.rs @@ -11,7 +11,7 @@ use sqlx::MySqlPool; use utoipa::ToSchema; use errors::AnyhowResult; use mysql_queries::queries::generic_inference::web::get_inference_job_status::get_inference_job_status; -use mysql_queries::queries::media_files::get_media_file::get_media_file; +use mysql_queries::queries::media_files::get::get_media_file::get_media_file; use mysql_queries::queries::model_weights::get::get_weight::get_weight_by_token; use mysql_queries::queries::model_weights::model_weight_info_lite::get_model_weight_info_lite::get_model_weight_info_lite; use mysql_queries::queries::prompts::get_prompt::get_prompt; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/prompts/get_prompt_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/prompts/get_prompt_handler.rs index 96e2625f28..03fb03fb90 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/prompts/get_prompt_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/prompts/get_prompt_handler.rs @@ -16,7 +16,7 @@ use enums::by_table::model_weights::weights_types::WeightsType; use enums::by_table::prompts::prompt_type::PromptType; use enums::common::visibility::Visibility; use enums::no_table::style_transfer::style_transfer_name::StyleTransferName; -use mysql_queries::queries::media_files::get_media_file::get_media_file; +use mysql_queries::queries::media_files::get::get_media_file::get_media_file; use mysql_queries::queries::prompts::get_prompt::get_prompt; use mysql_queries::queries::tts::tts_results::query_tts_result::select_tts_result_by_token; use tokens::tokens::batch_generations::BatchGenerationToken; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/weights/set_model_weight_cover_image_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/weights/set_model_weight_cover_image_handler.rs index 25790f741e..01cb64df73 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/weights/set_model_weight_cover_image_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/weights/set_model_weight_cover_image_handler.rs @@ -13,7 +13,7 @@ use enums::common::visibility::Visibility; use http_server_common::request::get_request_ip::get_request_ip; use http_server_common::response::response_success_helpers::simple_json_success; use http_server_common::response::serialize_as_json_error::serialize_as_json_error; -use mysql_queries::queries::media_files::get_media_file::get_media_file; +use mysql_queries::queries::media_files::get::get_media_file::get_media_file; use mysql_queries::queries::model_weights::edit::set_model_weight_cover_image::{set_model_weight_cover_image, UpdateArgs}; use mysql_queries::queries::model_weights::get::get_weight::get_weight_by_token; use tokens::tokens::media_files::MediaFileToken; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/weights/update_weight_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/weights/update_weight_handler.rs index c667d6ba46..8c479a4c29 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/weights/update_weight_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/weights/update_weight_handler.rs @@ -12,7 +12,7 @@ use enums::by_table::media_files::media_file_type::MediaFileType; use enums::common::visibility::Visibility; use http_server_common::response::response_success_helpers::simple_json_success; use http_server_common::response::serialize_as_json_error::serialize_as_json_error; -use mysql_queries::queries::media_files::get_media_file::get_media_file; +use mysql_queries::queries::media_files::get::get_media_file::get_media_file; use mysql_queries::queries::model_weights::edit::update_weight::{CoverImageOption, update_weights, UpdateWeightArgs}; use mysql_queries::queries::model_weights::get::get_weight::get_weight_by_token; use tokens::tokens::media_files::MediaFileToken;