use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct VoiceLibrary {
#[serde(rename = "provider", skip_serializing_if = "Option::is_none")]
pub provider: Option<ProviderTrue>,
#[serde(rename = "providerId", skip_serializing_if = "Option::is_none")]
pub provider_id: Option<String>,
#[serde(rename = "slug", skip_serializing_if = "Option::is_none")]
pub slug: Option<String>,
#[serde(rename = "name", skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "language", skip_serializing_if = "Option::is_none")]
pub language: Option<String>,
#[serde(rename = "languageCode", skip_serializing_if = "Option::is_none")]
pub language_code: Option<String>,
#[serde(rename = "model", skip_serializing_if = "Option::is_none")]
pub model: Option<String>,
#[serde(rename = "supportedModels", skip_serializing_if = "Option::is_none")]
pub supported_models: Option<String>,
#[serde(rename = "gender", skip_serializing_if = "Option::is_none")]
pub gender: Option<GenderTrue>,
#[serde(rename = "accent", skip_serializing_if = "Option::is_none")]
pub accent: Option<String>,
#[serde(rename = "previewUrl", skip_serializing_if = "Option::is_none")]
pub preview_url: Option<String>,
#[serde(rename = "description", skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(rename = "credentialId", skip_serializing_if = "Option::is_none")]
pub credential_id: Option<String>,
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "orgId")]
pub org_id: String,
#[serde(rename = "isPublic")]
pub is_public: bool,
#[serde(rename = "isDeleted")]
pub is_deleted: bool,
#[serde(rename = "createdAt")]
pub created_at: String,
#[serde(rename = "updatedAt")]
pub updated_at: String,
}
impl VoiceLibrary {
pub fn new(
id: String,
org_id: String,
is_public: bool,
is_deleted: bool,
created_at: String,
updated_at: String,
) -> VoiceLibrary {
VoiceLibrary {
provider: None,
provider_id: None,
slug: None,
name: None,
language: None,
language_code: None,
model: None,
supported_models: None,
gender: None,
accent: None,
preview_url: None,
description: None,
credential_id: None,
id,
org_id,
is_public,
is_deleted,
created_at,
updated_at,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ProviderTrue {
#[serde(rename = "vapi")]
Vapi,
#[serde(rename = "11labs")]
Variant11labs,
#[serde(rename = "azure")]
Azure,
#[serde(rename = "cartesia")]
Cartesia,
#[serde(rename = "custom-voice")]
CustomVoice,
#[serde(rename = "deepgram")]
Deepgram,
#[serde(rename = "hume")]
Hume,
#[serde(rename = "lmnt")]
Lmnt,
#[serde(rename = "neuphonic")]
Neuphonic,
#[serde(rename = "openai")]
Openai,
#[serde(rename = "playht")]
Playht,
#[serde(rename = "rime-ai")]
RimeAi,
#[serde(rename = "smallest-ai")]
SmallestAi,
#[serde(rename = "tavus")]
Tavus,
#[serde(rename = "sesame")]
Sesame,
}
impl Default for ProviderTrue {
fn default() -> ProviderTrue {
Self::Vapi
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum GenderTrue {
#[serde(rename = "male")]
Male,
#[serde(rename = "female")]
Female,
}
impl Default for GenderTrue {
fn default() -> GenderTrue {
Self::Male
}
}