public model type in API

This commit is contained in:
Brandon Thomas committed 2024-07-25 17:41:40 -04:00
1 parent 7babe2d122
commit 8fc89f993e
13 files changed
+262 -71

No files matched your search

@@ -0,0 +1 @@
pub mod public_media_file_model_type;
@@ -0,0 +1,228 @@
use serde::Deserialize;
use serde::Serialize;
#[cfg(test)]
use strum::EnumCount;
#[cfg(test)]
use strum::EnumIter;
use utoipa::ToSchema;
use enums::by_table::media_files::media_file_origin_model_type::MediaFileOriginModelType;
/// Report certain models publicly as different from what we actually use.
/// This is so we have an edge against the competition that might try to run
/// the same models. This won't always make sense, but in some cases it will.
#[cfg_attr(test, derive(EnumIter, EnumCount))]
#[derive(Clone, Copy, Eq, PartialEq, Hash, Ord, PartialOrd, Deserialize, Serialize, ToSchema, Debug)]
#[serde(rename_all = "snake_case")]
pub enum PublicMediaFileModelType {
// Renamed enum variants
/// Instead of `MediaFileOriginModelType::LivePortrait` ("live_portrait")
#[serde(rename = "face_mirror")]
FaceMirror,
/// Instead of `MediaFileOriginModelType::SadTalker` ("sad_talker")
#[serde(rename = "face_animator")]
FaceAnimator,
/// Instead of `MediaFileOriginModelType::StyleTTS2` ("styletts2")
#[serde(rename = "voice_designer")]
VoiceDesigner,
// Everything else is the same
/// RVC (v2) voice conversion models
#[serde(rename = "rvc_v2")]
RvcV2,
/// so-vits-svc voice conversion models
#[serde(rename = "so_vits_svc")]
SoVitsSvc,
#[serde(rename = "tacotron2")]
Tacotron2,
#[serde(rename = "mocap_net")]
MocapNet,
#[serde(rename = "stable_diffusion_1_5")]
StableDiffusion15,
#[serde(rename = "studio")]
StorytellerStudio,
#[serde(rename = "vst")]
VideoStyleTransfer,
#[deprecated(note = "This is not a model type!")]
#[serde(rename = "comfy_ui")]
ComfyUi,
#[deprecated(note = "We don't use this anymore")]
#[serde(rename = "vall_e_x")]
VallEX,
#[deprecated(note = "We don't use this anymore")]
#[serde(rename = "rerender")]
Rerender,
}
/// NB: Legacy API for older code.
impl PublicMediaFileModelType {
pub fn from_enum(model_type: MediaFileOriginModelType) -> Self {
match model_type {
// Renamed variants
MediaFileOriginModelType::LivePortrait => Self::FaceMirror,
MediaFileOriginModelType::SadTalker => Self::FaceAnimator,
MediaFileOriginModelType::StyleTTS2 => Self::VoiceDesigner,
// Conserved variants
MediaFileOriginModelType::RvcV2 => Self::RvcV2,
MediaFileOriginModelType::SoVitsSvc => Self::SoVitsSvc,
MediaFileOriginModelType::Tacotron2 => Self::Tacotron2,
MediaFileOriginModelType::MocapNet => Self::MocapNet,
MediaFileOriginModelType::StableDiffusion15 => Self::StableDiffusion15,
MediaFileOriginModelType::StorytellerStudio => Self::StorytellerStudio,
MediaFileOriginModelType::VideoStyleTransfer => Self::VideoStyleTransfer,
MediaFileOriginModelType::ComfyUi => Self::ComfyUi,
MediaFileOriginModelType::VallEX => Self::VallEX,
MediaFileOriginModelType::Rerender => Self::Rerender,
}
}
pub fn to_enum(&self) -> MediaFileOriginModelType {
match self {
// Renamed variants
PublicMediaFileModelType::FaceMirror => MediaFileOriginModelType::LivePortrait,
PublicMediaFileModelType::FaceAnimator => MediaFileOriginModelType::SadTalker,
PublicMediaFileModelType::VoiceDesigner => MediaFileOriginModelType::StyleTTS2,
// Conserved variants
PublicMediaFileModelType::RvcV2 => MediaFileOriginModelType::RvcV2,
PublicMediaFileModelType::SoVitsSvc => MediaFileOriginModelType::SoVitsSvc,
PublicMediaFileModelType::Tacotron2 => MediaFileOriginModelType::Tacotron2,
PublicMediaFileModelType::MocapNet => MediaFileOriginModelType::MocapNet,
PublicMediaFileModelType::StableDiffusion15 => MediaFileOriginModelType::StableDiffusion15,
PublicMediaFileModelType::StorytellerStudio => MediaFileOriginModelType::StorytellerStudio,
PublicMediaFileModelType::VideoStyleTransfer => MediaFileOriginModelType::VideoStyleTransfer,
PublicMediaFileModelType::ComfyUi => MediaFileOriginModelType::ComfyUi,
PublicMediaFileModelType::VallEX => MediaFileOriginModelType::VallEX,
PublicMediaFileModelType::Rerender => MediaFileOriginModelType::Rerender,
}
}
}
#[cfg(test)]
mod tests {
use strum::IntoEnumIterator;
use crate::test_helpers::to_json;
use super::*;
fn override_enums() -> &'static [PublicMediaFileModelType; 3] {
&[
PublicMediaFileModelType::FaceMirror,
PublicMediaFileModelType::FaceAnimator,
PublicMediaFileModelType::VoiceDesigner,
]
}
mod override_values {
use super::*;
#[test]
fn live_portrait() {
// Public --> Internal
assert_eq!(PublicMediaFileModelType::FaceMirror.to_enum(), MediaFileOriginModelType::LivePortrait);
assert_eq!(to_json(&PublicMediaFileModelType::FaceMirror.to_enum()), "live_portrait");
// Internal --> Public
assert_eq!(PublicMediaFileModelType::from_enum(MediaFileOriginModelType::LivePortrait), PublicMediaFileModelType::FaceMirror);
assert_eq!(to_json(&PublicMediaFileModelType::from_enum(MediaFileOriginModelType::LivePortrait)), "face_mirror");
}
#[test]
fn sad_talker() {
// Public --> Internal
assert_eq!(PublicMediaFileModelType::FaceAnimator.to_enum(), MediaFileOriginModelType::SadTalker);
assert_eq!(to_json(&PublicMediaFileModelType::FaceAnimator.to_enum()), "sad_talker");
// Internal --> Public
assert_eq!(PublicMediaFileModelType::from_enum(MediaFileOriginModelType::SadTalker), PublicMediaFileModelType::FaceAnimator);
assert_eq!(to_json(&PublicMediaFileModelType::from_enum(MediaFileOriginModelType::SadTalker)), "face_animator");
}
#[test]
fn styletts2() {
// Public --> Internal
assert_eq!(PublicMediaFileModelType::VoiceDesigner.to_enum(), MediaFileOriginModelType::StyleTTS2);
assert_eq!(to_json(&PublicMediaFileModelType::VoiceDesigner.to_enum()), "styletts2");
// Internal --> Public
assert_eq!(PublicMediaFileModelType::from_enum(MediaFileOriginModelType::StyleTTS2), PublicMediaFileModelType::VoiceDesigner);
assert_eq!(to_json(&PublicMediaFileModelType::from_enum(MediaFileOriginModelType::StyleTTS2)), "voice_designer");
}
}
mod mechanical_checks {
use enums::by_table::media_files::media_file_origin_model_type::MediaFileOriginModelType;
use super::*;
#[test]
fn public_to_internal() {
let mut tested_count = 0;
for public_variant in PublicMediaFileModelType::iter() {
match public_variant {
PublicMediaFileModelType::FaceMirror |
PublicMediaFileModelType::FaceAnimator |
PublicMediaFileModelType::VoiceDesigner => continue, // Can't compare.
_ => {}
}
// Round trip
assert_eq!(public_variant, PublicMediaFileModelType::from_enum(public_variant.to_enum()));
let internal_enum_variant = public_variant.to_enum();
let internal_enum_string = to_json(&internal_enum_variant);
let public_enum_string = to_json(&public_variant);
assert_eq!(internal_enum_string, public_enum_string);
tested_count += 1;
}
assert!(tested_count > 1);
assert_eq!(tested_count, PublicMediaFileModelType::iter().len() - override_enums().len());
}
#[test]
fn internal_to_public() {
let mut tested_count = 0;
for internal_variant in MediaFileOriginModelType::all_variants() {
match internal_variant {
MediaFileOriginModelType::LivePortrait |
MediaFileOriginModelType::SadTalker |
MediaFileOriginModelType::StyleTTS2 => continue, // Can't compare.
_ => {}
}
// Round trip
assert_eq!(internal_variant, PublicMediaFileModelType::from_enum(internal_variant).to_enum());
let public_enum_variant = PublicMediaFileModelType::from_enum(internal_variant);
let public_enum_string = to_json(&public_enum_variant);
let internal_enum_string = to_json(&internal_variant);
// Same serialization
assert_eq!(internal_enum_string, public_enum_string);
tested_count += 1;
}
assert!(tested_count > 1);
assert_eq!(tested_count, MediaFileOriginModelType::all_variants().len() - override_enums().len());
}
}
}
@@ -1,2 +1,3 @@
pub mod generic_inference_jobs;
pub mod media_files;
pub mod model_weights;
@@ -12,7 +12,6 @@ use enums::by_table::media_files::media_file_animation_type::MediaFileAnimationT
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_subtype::MediaFileSubtype;
use enums::by_table::media_files::media_file_type::MediaFileType;
@@ -25,6 +24,7 @@ use enums::by_table::users::user_feature_flag::UserFeatureFlag;
use enums::common::job_status_plus::JobStatusPlus;
use enums::common::visibility::Visibility;
use enums::no_table::style_transfer::style_transfer_name::StyleTransferName;
use enums_public::by_table::media_files::public_media_file_model_type::PublicMediaFileModelType;
use enums_public::by_table::model_weights::public_weights_types::PublicWeightsType;
use tokens::tokens::batch_generations::*;
use tokens::tokens::beta_keys::*;
@@ -245,11 +245,11 @@ use crate::http_server::web_utils::response_success_helpers::*;
MediaFileClass,
MediaFileEngineCategory,
MediaFileOriginCategory,
MediaFileOriginModelType,
MediaFileOriginProductCategory,
MediaFileSubtype,
MediaFileType,
PromptType,
PublicMediaFileModelType,
PublicWeightsType,
StyleTransferName,
UserFeatureFlag,
@@ -3,6 +3,7 @@ use utoipa::ToSchema;
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_public::by_table::media_files::public_media_file_model_type::PublicMediaFileModelType;
use tokens::tokens::model_weights::ModelWeightToken;
/// Fields useful for enriching media file listings
@@ -27,13 +28,13 @@ pub enum MediaFileModelDetails {
/// eg. SadTalker, Wav2Lip, MocapNet, etc.
SystemModel {
/// The type of model weight
model_type: MediaFileOriginModelType,
model_type: PublicMediaFileModelType,
},
/// A model weight is typically a user-submitted model.
/// We store lots of these.
ModelWeight {
/// The type of model weight
model_type: MediaFileOriginModelType,
model_type: PublicMediaFileModelType,
/// The model token
token: ModelWeightToken,
/// The model title (typically only populated for `model_weights` models, not legacy tables such as `tts_models`.)
@@ -52,14 +53,14 @@ impl MediaFileOriginDetails {
let maybe_model = match (maybe_model_type, maybe_model_token, maybe_model_title) {
(Some(model_type), Some(model_token), Some(model_title)) => {
Some(MediaFileModelDetails::ModelWeight {
model_type,
model_type: PublicMediaFileModelType::from_enum(model_type),
token: model_token,
title: model_title,
})
},
(Some(model_type), None, None) => {
Some(MediaFileModelDetails::SystemModel {
model_type,
model_type: PublicMediaFileModelType::from_enum(model_type),
})
},
_ => None,
@@ -12,27 +12,18 @@ use utoipa::{IntoParams, ToSchema};
use buckets::public::media_files::bucket_file_path::MediaFileBucketPath;
use enums::by_table::beta_keys::beta_key_product::BetaKeyProduct;
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::common::view_as::ViewAs;
use enums::no_table::style_transfer::style_transfer_name::StyleTransferName;
use markdown::markdown_with_socials_to_html::markdown_with_socials_to_html;
use mysql_queries::queries::beta_keys::list_beta_keys::{FilterToKeys, list_beta_keys, ListBetaKeysArgs};
use mysql_queries::queries::users::user_profiles::get_user_profile_by_username::get_user_profile_by_username;
use tokens::tokens::beta_keys::BetaKeyToken;
use tokens::tokens::media_files::MediaFileToken;
use crate::http_server::common_responses::user_details_lite::UserDetailsLight;
use crate::http_server::common_responses::media_file_cover_image_details::{MediaFileCoverImageDetails, MediaFileDefaultCover};
use crate::http_server::common_responses::media_file_origin_details::MediaFileOriginDetails;
use crate::http_server::common_responses::pagination_cursors::PaginationCursors;
use crate::http_server::common_responses::pagination_page::PaginationPage;
use crate::http_server::common_responses::simple_entity_stats::SimpleEntityStats;
use crate::http_server::common_responses::user_details_lite::UserDetailsLight;
use crate::http_server::endpoints::beta_keys::create_beta_keys_handler::CreateBetaKeysError;
use crate::http_server::endpoints::events::list_events::ListEventsError;
use crate::http_server::web_utils::require_moderator::{require_moderator, RequireModeratorError};
@@ -14,11 +14,11 @@ use enums::by_table::media_files::media_file_animation_type::MediaFileAnimationT
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::common::view_as::ViewAs;
use enums::no_table::style_transfer::style_transfer_name::StyleTransferName;
use enums_public::by_table::media_files::public_media_file_model_type::PublicMediaFileModelType;
use mysql_queries::queries::media_files::get::batch_get_media_files_by_tokens::batch_get_media_files_by_tokens;
use mysql_queries::queries::media_files::list::list_featured_media_files::{FeaturedMediaFileListPage, list_featured_media_files, ListFeaturedMediaFilesArgs};
use tokens::tokens::media_files::MediaFileToken;
@@ -113,7 +113,7 @@ pub struct FeaturedMediaFile {
pub origin_product_category: MediaFileOriginProductCategory,
#[deprecated(note="Use MediaFileOriginDetails instead")]
pub maybe_origin_model_type: Option<MediaFileOriginModelType>,
pub maybe_origin_model_type: Option<PublicMediaFileModelType>,
#[deprecated(note="Use MediaFileOriginDetails instead")]
pub maybe_origin_model_token: Option<String>,
@@ -256,7 +256,8 @@ pub async fn list_featured_media_files_handler(
m.maybe_origin_model_title.as_deref()),
origin_category: m.origin_category,
origin_product_category: m.origin_product_category,
maybe_origin_model_type: m.maybe_origin_model_type,
maybe_origin_model_type: m.maybe_origin_model_type
.map(|t| PublicMediaFileModelType::from_enum(t)),
maybe_origin_model_token: m.maybe_origin_model_token,
maybe_creator: UserDetailsLight::from_optional_db_fields_owned(
m.maybe_creator_user_token,
@@ -13,12 +13,12 @@ use enums::by_table::media_files::media_file_animation_type::MediaFileAnimationT
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::common::view_as::ViewAs;
use enums::common::visibility::Visibility;
use enums::no_table::style_transfer::style_transfer_name::StyleTransferName;
use enums_public::by_table::media_files::public_media_file_model_type::PublicMediaFileModelType;
use mysql_queries::queries::media_files::list::list_media_files_by_batch_token::{list_media_files_by_batch_token, ListMediaFileByBatchArgs};
use mysql_queries::queries::media_files::list::list_media_files_for_user::{list_media_files_for_user, ListMediaFileForUserArgs};
use tokens::tokens::batch_generations::BatchGenerationToken;
@@ -84,7 +84,7 @@ pub struct MediaFilesByBatchListItem {
pub origin_product_category: MediaFileOriginProductCategory,
#[deprecated(note="Use MediaFileOriginDetails instead")]
pub maybe_origin_model_type: Option<MediaFileOriginModelType>,
pub maybe_origin_model_type: Option<PublicMediaFileModelType>,
#[deprecated(note="Use MediaFileOriginDetails instead")]
pub maybe_origin_model_token: Option<String>,
@@ -246,7 +246,8 @@ pub async fn list_media_files_by_batch_token_handler(
record.maybe_origin_model_title.as_deref()),
origin_category: record.origin_category,
origin_product_category: record.origin_product_category,
maybe_origin_model_type: record.maybe_origin_model_type,
maybe_origin_model_type: record.maybe_origin_model_type
.map(|t| PublicMediaFileModelType::from_enum(t)),
maybe_origin_model_token: record.maybe_origin_model_token,
public_bucket_path: MediaFileBucketPath::from_object_hash(
&record.public_bucket_directory_hash,
@@ -14,12 +14,12 @@ use enums::by_table::media_files::media_file_animation_type::MediaFileAnimationT
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::common::view_as::ViewAs;
use enums::common::visibility::Visibility;
use enums::no_table::style_transfer::style_transfer_name::StyleTransferName;
use enums_public::by_table::media_files::public_media_file_model_type::PublicMediaFileModelType;
use mysql_queries::queries::media_files::list::list_media_files_for_user::{list_media_files_for_user, ListMediaFileForUserArgs};
use tokens::tokens::media_files::MediaFileToken;
@@ -112,7 +112,7 @@ pub struct MediaFileForUserListItem {
pub origin_product_category: MediaFileOriginProductCategory,
#[deprecated(note="Use MediaFileOriginDetails instead")]
pub maybe_origin_model_type: Option<MediaFileOriginModelType>,
pub maybe_origin_model_type: Option<PublicMediaFileModelType>,
#[deprecated(note="Use MediaFileOriginDetails instead")]
pub maybe_origin_model_token: Option<String>,
@@ -300,7 +300,8 @@ pub async fn list_media_files_for_user_handler(
record.maybe_origin_model_title.as_deref()),
origin_category: record.origin_category,
origin_product_category: record.origin_product_category,
maybe_origin_model_type: record.maybe_origin_model_type,
maybe_origin_model_type: record.maybe_origin_model_type
.map(|t| PublicMediaFileModelType::from_enum(t)),
maybe_origin_model_token: record.maybe_origin_model_token,
public_bucket_path: MediaFileBucketPath::from_object_hash(
&record.public_bucket_directory_hash,
@@ -13,20 +13,20 @@ use enums::by_table::media_files::media_file_animation_type::MediaFileAnimationT
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::common::view_as::ViewAs;
use enums::common::visibility::Visibility;
use enums::no_table::style_transfer::style_transfer_name::StyleTransferName;
use enums_public::by_table::media_files::public_media_file_model_type::PublicMediaFileModelType;
use mysql_queries::queries::media_files::list::list_media_files::{list_media_files, ListMediaFilesArgs};
use tokens::tokens::media_files::MediaFileToken;
use crate::http_server::common_responses::user_details_lite::UserDetailsLight;
use crate::http_server::common_responses::media_file_cover_image_details::{MediaFileCoverImageDetails, MediaFileDefaultCover};
use crate::http_server::common_responses::media_file_origin_details::MediaFileOriginDetails;
use crate::http_server::common_responses::pagination_cursors::PaginationCursors;
use crate::http_server::common_responses::simple_entity_stats::SimpleEntityStats;
use crate::http_server::common_responses::user_details_lite::UserDetailsLight;
use crate::http_server::endpoints::media_files::helpers::get_scoped_engine_categories::get_scoped_engine_categories;
use crate::http_server::endpoints::media_files::helpers::get_scoped_media_classes::get_scoped_media_classes;
use crate::http_server::endpoints::media_files::helpers::get_scoped_media_types::get_scoped_media_types;
@@ -106,7 +106,7 @@ pub struct MediaFileListItem {
pub origin_product_category: MediaFileOriginProductCategory,
#[deprecated(note="Use MediaFileOriginDetails instead")]
pub maybe_origin_model_type: Option<MediaFileOriginModelType>,
pub maybe_origin_model_type: Option<PublicMediaFileModelType>,
#[deprecated(note="Use MediaFileOriginDetails instead")]
pub maybe_origin_model_token: Option<String>,
@@ -306,7 +306,8 @@ pub async fn list_media_files_handler(
record.maybe_origin_model_title.as_deref()),
origin_category: record.origin_category,
origin_product_category: record.origin_product_category,
maybe_origin_model_type: record.maybe_origin_model_type,
maybe_origin_model_type: record.maybe_origin_model_type
.map(|m| PublicMediaFileModelType::from_enum(m)),
maybe_origin_model_token: record.maybe_origin_model_token,
public_bucket_path: MediaFileBucketPath::from_object_hash(
&record.public_bucket_directory_hash,
@@ -13,17 +13,17 @@ use enums::by_table::media_files::media_file_animation_type::MediaFileAnimationT
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 enums_public::by_table::media_files::public_media_file_model_type::PublicMediaFileModelType;
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 crate::http_server::common_responses::user_details_lite::UserDetailsLight;
use crate::http_server::common_responses::media_file_cover_image_details::{MediaFileCoverImageDetails, MediaFileDefaultCover};
use crate::http_server::common_responses::media_file_origin_details::MediaFileOriginDetails;
use crate::http_server::common_responses::simple_entity_stats::SimpleEntityStats;
use crate::http_server::common_responses::user_details_lite::UserDetailsLight;
use crate::state::server_state::ServerState;
#[derive(Serialize, ToSchema)]
@@ -69,7 +69,7 @@ pub struct PinnedMediaFile {
pub origin_product_category: MediaFileOriginProductCategory,
#[deprecated(note="Use MediaFileOriginDetails instead")]
pub maybe_origin_model_type: Option<MediaFileOriginModelType>,
pub maybe_origin_model_type: Option<PublicMediaFileModelType>,
#[deprecated(note="Use MediaFileOriginDetails instead")]
pub maybe_origin_model_token: Option<String>,
@@ -210,7 +210,8 @@ pub async fn list_pinned_media_files_handler(
m.maybe_origin_model_title.as_deref()),
origin_category: m.origin_category,
origin_product_category: m.origin_product_category,
maybe_origin_model_type: m.maybe_origin_model_type,
maybe_origin_model_type: m.maybe_origin_model_type
.map(|m| PublicMediaFileModelType::from_enum(m)),
maybe_origin_model_token: m.maybe_origin_model_token,
maybe_creator: UserDetailsLight::from_optional_db_fields_owned(
m.maybe_creator_user_token,
@@ -13,20 +13,17 @@ use elasticsearch_schema::searches::search_media_files::{search_media_files, Sea
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::common::view_as::ViewAs;
use enums::common::visibility::Visibility;
use enums::no_table::style_transfer::style_transfer_name::StyleTransferName;
use tokens::tokens::media_files::MediaFileToken;
use crate::http_server::common_responses::user_details_lite::UserDetailsLight;
use crate::http_server::common_responses::media_file_cover_image_details::{MediaFileCoverImageDetails, MediaFileDefaultCover};
use crate::http_server::common_responses::media_file_origin_details::MediaFileOriginDetails;
use crate::http_server::common_responses::pagination_cursors::PaginationCursors;
use crate::http_server::common_responses::simple_entity_stats::SimpleEntityStats;
use crate::http_server::common_responses::user_details_lite::UserDetailsLight;
use crate::http_server::endpoints::media_files::helpers::get_scoped_engine_categories::get_scoped_engine_categories;
use crate::http_server::endpoints::media_files::helpers::get_scoped_media_classes::get_scoped_media_classes;
use crate::http_server::endpoints::media_files::helpers::get_scoped_media_types::get_scoped_media_types;
@@ -98,21 +95,6 @@ pub struct SearchFeaturedMediaFileListItem {
/// this describes the animation regime used or supported.
pub maybe_animation_type: Option<MediaFileAnimationType>,
// #[deprecated(note="Use MediaFileOriginDetails instead")]
// pub origin_category: MediaFileOriginCategory,
// #[deprecated(note="Use MediaFileOriginDetails instead")]
// pub origin_product_category: MediaFileOriginProductCategory,
// #[deprecated(note="Use MediaFileOriginDetails instead")]
// pub maybe_origin_model_type: Option<MediaFileOriginModelType>,
// #[deprecated(note="Use MediaFileOriginDetails instead")]
// pub maybe_origin_model_token: Option<String>,
// /// Details where the media file came from.
// pub origin: MediaFileOriginDetails,
/// URL to the media file.
pub public_bucket_path: String,
@@ -13,21 +13,18 @@ use elasticsearch_schema::searches::search_media_files::{search_media_files, Sea
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::common::view_as::ViewAs;
use enums::common::visibility::Visibility;
use enums::no_table::style_transfer::style_transfer_name::StyleTransferName;
use tokens::tokens::media_files::MediaFileToken;
use tokens::tokens::users::UserToken;
use crate::http_server::common_responses::user_details_lite::UserDetailsLight;
use crate::http_server::common_responses::media_file_cover_image_details::{MediaFileCoverImageDetails, MediaFileDefaultCover};
use crate::http_server::common_responses::media_file_origin_details::MediaFileOriginDetails;
use crate::http_server::common_responses::pagination_cursors::PaginationCursors;
use crate::http_server::common_responses::simple_entity_stats::SimpleEntityStats;
use crate::http_server::common_responses::user_details_lite::UserDetailsLight;
use crate::http_server::endpoints::media_files::helpers::get_scoped_engine_categories::get_scoped_engine_categories;
use crate::http_server::endpoints::media_files::helpers::get_scoped_media_classes::get_scoped_media_classes;
use crate::http_server::endpoints::media_files::helpers::get_scoped_media_types::get_scoped_media_types;
@@ -99,21 +96,6 @@ pub struct SearchMediaFileListItem {
/// this describes the animation regime used or supported.
pub maybe_animation_type: Option<MediaFileAnimationType>,
// #[deprecated(note="Use MediaFileOriginDetails instead")]
// pub origin_category: MediaFileOriginCategory,
// #[deprecated(note="Use MediaFileOriginDetails instead")]
// pub origin_product_category: MediaFileOriginProductCategory,
// #[deprecated(note="Use MediaFileOriginDetails instead")]
// pub maybe_origin_model_type: Option<MediaFileOriginModelType>,
// #[deprecated(note="Use MediaFileOriginDetails instead")]
// pub maybe_origin_model_token: Option<String>,
// /// Details where the media file came from.
// pub origin: MediaFileOriginDetails,
/// URL to the media file.
pub public_bucket_path: String,