use serde::{Deserialize, Serialize};
use crate::models::{
album::{Album, Image},
deserialization::{deserialize_flexible_name, deserialize_picture},
search::ItemSearchResult,
};
#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
pub struct Artist {
pub id: Option<i32>,
#[serde(default, deserialize_with = "deserialize_flexible_name")]
pub name: Option<String>,
pub slug: Option<String>,
#[serde(default, deserialize_with = "deserialize_picture")]
pub picture: Option<Image>,
pub image: Option<Image>,
pub biography: Option<Biography>,
pub albums_count: Option<i32>,
pub roles: Option<Vec<String>>,
pub albums: Option<ItemSearchResult<Box<Album>>>,
}
#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
pub struct Biography {
pub text: Option<String>,
pub summary: Option<String>,
}