from __future__ import annotations from typing import List, Optional from pydantic import BaseModel, Field from shazamio.schemas.attributes import AttributeName from shazamio.schemas.base import BaseHrefNextData, BaseIdTypeHref from shazamio.schemas.photos import ImageModel class EditorialArtwork(BaseModel): centered_fullscreen_background: Optional[ImageModel] = Field( None, alias="centeredFullscreenBackground" ) subscription_hero: Optional[ImageModel] = Field(None, alias="subscriptionHero") banner_uber: Optional[ImageModel] = Field(None, alias="bannerUber") class Attributes(BaseModel): genre_names: List[str] = Field(..., alias="genreNames") editorial_artwork: EditorialArtwork = Field(..., alias="editorialArtwork") name: str artwork: ImageModel url: str origin: Optional[str] = None artist_bio: Optional[str] = Field(None, alias="artistBio") class Relationships(BaseModel): albums: BaseHrefNextData[List[BaseIdTypeHref]] class Datum(BaseModel): id: str type: str href: str attributes: Attributes relationships: Relationships class SimularArtist(BaseModel): href: Optional[str] = None next: Optional[str] = None attributes: Optional[AttributeName] = None data: Optional[List[Datum]] = None