#[allow(unused_imports)]
use crate::prelude::*;
#[allow(unused_imports)]
use serde::{Deserialize, Serialize};
#[allow(unused_imports)]
use std::collections::HashMap;
#[derive(Debug, Serialize, Deserialize, Default)]
pub struct HTTPValidationError {
#[serde(skip_serializing_if = "Option::is_none")]
pub detail: Option<Vec<Option<ValidationError>>>,
}
#[derive(Debug, Serialize, Deserialize, Default)]
pub struct InputModel {
#[serde(skip_serializing_if = "Option::is_none")]
pub camera_direction: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub camera_style: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub custom_elements: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub image_url: Option<String>,
pub input_concept: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub model: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pacing: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub prompt_length: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub special_effects: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub style: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct OutputModel {
pub prompt: String,
}
#[derive(Debug, Serialize, Deserialize, Default)]
pub struct ValidationError {
pub loc: Vec<serde_json::Value>,
pub msg: String,
#[serde(rename = "type")]
pub ty: String,
}
pub fn video_prompt_generator(params: InputModel) -> FalRequest<InputModel, OutputModel> {
FalRequest::new("fal-ai/video-prompt-generator", params)
}