# Generated by ariadne-codegen on 2023-06-06 10:50
# Source: graphql/queries.graphql

from typing import Any, List, Optional

from pydantic import Field

from .base_model import BaseModel


class GetFilterTypes(BaseModel):
    get_filter_types: Optional[List[Optional["GetFilterTypesGetFilterTypes"]]] = Field(
        alias="getFilterTypes"
    )


class GetFilterTypesGetFilterTypes(BaseModel):
    id: Optional[str]
    content_id: Optional[str] = Field(alias="contentId")
    published: Optional[Any]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    filters: Optional[List[Optional["GetFilterTypesGetFilterTypesFilters"]]]
    language: Optional[str]
    title: Optional[str]
    slug: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    site_id: Optional[str] = Field(alias="siteId")


class GetFilterTypesGetFilterTypesFilters(BaseModel):
    id: Optional[str]
    content_id: Optional[str] = Field(alias="contentId")
    type_id: Optional[str] = Field(alias="typeId")
    type: Optional["GetFilterTypesGetFilterTypesFiltersType"]
    published: Optional[Any]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    language: Optional[str]
    title: Optional[str]
    slug: Optional[str]


class GetFilterTypesGetFilterTypesFiltersType(BaseModel):
    id: Optional[str]
    content_id: Optional[str] = Field(alias="contentId")
    published: Optional[Any]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    filters: Optional[List[Optional["GetFilterTypesGetFilterTypesFiltersTypeFilters"]]]
    language: Optional[str]
    title: Optional[str]
    slug: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    site_id: Optional[str] = Field(alias="siteId")


class GetFilterTypesGetFilterTypesFiltersTypeFilters(BaseModel):
    id: Optional[str]
    content_id: Optional[str] = Field(alias="contentId")
    type_id: Optional[str] = Field(alias="typeId")
    published: Optional[Any]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    language: Optional[str]
    title: Optional[str]
    slug: Optional[str]


GetFilterTypes.update_forward_refs()
GetFilterTypesGetFilterTypes.update_forward_refs()
GetFilterTypesGetFilterTypesFilters.update_forward_refs()
GetFilterTypesGetFilterTypesFiltersType.update_forward_refs()
GetFilterTypesGetFilterTypesFiltersTypeFilters.update_forward_refs()
