# Generated by ariadne-codegen
# Source: ./documents

from typing import Any, Optional

from pydantic import Field

from .base_model import BaseModel
from .enums import EntityState, LinkTypes


class QueryOrganizationsClusters(BaseModel):
    organizations: Optional["QueryOrganizationsClustersOrganizations"]


class QueryOrganizationsClustersOrganizations(BaseModel):
    results: Optional[list[Optional["QueryOrganizationsClustersOrganizationsResults"]]]
    clusters: Optional["QueryOrganizationsClustersOrganizationsClusters"]


class QueryOrganizationsClustersOrganizationsResults(BaseModel):
    id: str
    name: str
    creation_date: Any = Field(alias="creationDate")
    modified_date: Optional[Any] = Field(alias="modifiedDate")
    relevance: Optional[float]
    owner: "QueryOrganizationsClustersOrganizationsResultsOwner"
    state: EntityState
    alternate_names: Optional[list[Optional[str]]] = Field(alias="alternateNames")
    uri: Optional[Any]
    description: Optional[str]
    identifier: Optional[str]
    thing: Optional[str]
    feeds: Optional[
        list[Optional["QueryOrganizationsClustersOrganizationsResultsFeeds"]]
    ]
    links: Optional[
        list[Optional["QueryOrganizationsClustersOrganizationsResultsLinks"]]
    ]
    workflow: Optional["QueryOrganizationsClustersOrganizationsResultsWorkflow"]
    location: Optional["QueryOrganizationsClustersOrganizationsResultsLocation"]
    h_3: Optional["QueryOrganizationsClustersOrganizationsResultsH3"] = Field(
        alias="h3"
    )
    address: Optional["QueryOrganizationsClustersOrganizationsResultsAddress"]
    founding_date: Optional[Any] = Field(alias="foundingDate")
    email: Optional[str]
    telephone: Optional[str]
    legal_name: Optional[str] = Field(alias="legalName")
    industries: Optional[list[Optional[str]]]
    revenue: Optional[Any]
    revenue_currency: Optional[str] = Field(alias="revenueCurrency")
    investment: Optional[Any]
    investment_currency: Optional[str] = Field(alias="investmentCurrency")
    founders: Optional[
        list[Optional["QueryOrganizationsClustersOrganizationsResultsFounders"]]
    ]
    employees: Optional[
        list[Optional["QueryOrganizationsClustersOrganizationsResultsEmployees"]]
    ]
    members: Optional[
        list[Optional["QueryOrganizationsClustersOrganizationsResultsMembers"]]
    ]
    parent_organization: Optional[
        "QueryOrganizationsClustersOrganizationsResultsParentOrganization"
    ] = Field(alias="parentOrganization")
    member_of: Optional[
        list[Optional["QueryOrganizationsClustersOrganizationsResultsMemberOf"]]
    ] = Field(alias="memberOf")
    sub_organizations: Optional[
        list[Optional["QueryOrganizationsClustersOrganizationsResultsSubOrganizations"]]
    ] = Field(alias="subOrganizations")
    locations: Optional[
        list[Optional["QueryOrganizationsClustersOrganizationsResultsLocations"]]
    ]
    investments_received: Optional[
        list[
            Optional[
                "QueryOrganizationsClustersOrganizationsResultsInvestmentsReceived"
            ]
        ]
    ] = Field(alias="investmentsReceived")
    investor_funds: Optional[
        list[Optional["QueryOrganizationsClustersOrganizationsResultsInvestorFunds"]]
    ] = Field(alias="investorFunds")


class QueryOrganizationsClustersOrganizationsResultsOwner(BaseModel):
    id: str


class QueryOrganizationsClustersOrganizationsResultsFeeds(BaseModel):
    id: str
    name: str


class QueryOrganizationsClustersOrganizationsResultsLinks(BaseModel):
    uri: Optional[Any]
    link_type: Optional[LinkTypes] = Field(alias="linkType")
    excerpts: Optional[str]


class QueryOrganizationsClustersOrganizationsResultsWorkflow(BaseModel):
    id: str
    name: str


class QueryOrganizationsClustersOrganizationsResultsLocation(BaseModel):
    latitude: Optional[float]
    longitude: Optional[float]


class QueryOrganizationsClustersOrganizationsResultsH3(BaseModel):
    h_3_r_0: Optional[str] = Field(alias="h3r0")
    h_3_r_1: Optional[str] = Field(alias="h3r1")
    h_3_r_2: Optional[str] = Field(alias="h3r2")
    h_3_r_3: Optional[str] = Field(alias="h3r3")
    h_3_r_4: Optional[str] = Field(alias="h3r4")
    h_3_r_5: Optional[str] = Field(alias="h3r5")
    h_3_r_6: Optional[str] = Field(alias="h3r6")
    h_3_r_7: Optional[str] = Field(alias="h3r7")
    h_3_r_8: Optional[str] = Field(alias="h3r8")
    h_3_r_9: Optional[str] = Field(alias="h3r9")
    h_3_r_10: Optional[str] = Field(alias="h3r10")
    h_3_r_11: Optional[str] = Field(alias="h3r11")
    h_3_r_12: Optional[str] = Field(alias="h3r12")
    h_3_r_13: Optional[str] = Field(alias="h3r13")
    h_3_r_14: Optional[str] = Field(alias="h3r14")
    h_3_r_15: Optional[str] = Field(alias="h3r15")


class QueryOrganizationsClustersOrganizationsResultsAddress(BaseModel):
    street_address: Optional[str] = Field(alias="streetAddress")
    city: Optional[str]
    region: Optional[str]
    country: Optional[str]
    postal_code: Optional[str] = Field(alias="postalCode")


class QueryOrganizationsClustersOrganizationsResultsFounders(BaseModel):
    id: str
    name: str


class QueryOrganizationsClustersOrganizationsResultsEmployees(BaseModel):
    id: str
    name: str


class QueryOrganizationsClustersOrganizationsResultsMembers(BaseModel):
    id: str
    name: str


class QueryOrganizationsClustersOrganizationsResultsParentOrganization(BaseModel):
    id: str
    name: str


class QueryOrganizationsClustersOrganizationsResultsMemberOf(BaseModel):
    id: str
    name: str


class QueryOrganizationsClustersOrganizationsResultsSubOrganizations(BaseModel):
    id: str
    name: str


class QueryOrganizationsClustersOrganizationsResultsLocations(BaseModel):
    id: str
    name: str


class QueryOrganizationsClustersOrganizationsResultsInvestmentsReceived(BaseModel):
    id: str
    name: str


class QueryOrganizationsClustersOrganizationsResultsInvestorFunds(BaseModel):
    id: str
    name: str


class QueryOrganizationsClustersOrganizationsClusters(BaseModel):
    clusters: Optional[list["QueryOrganizationsClustersOrganizationsClustersClusters"]]


class QueryOrganizationsClustersOrganizationsClustersClusters(BaseModel):
    entities: list["QueryOrganizationsClustersOrganizationsClustersClustersEntities"]
    similarity: Optional[float]


class QueryOrganizationsClustersOrganizationsClustersClustersEntities(BaseModel):
    id: str
    name: Optional[str]


QueryOrganizationsClusters.model_rebuild()
QueryOrganizationsClustersOrganizations.model_rebuild()
QueryOrganizationsClustersOrganizationsResults.model_rebuild()
QueryOrganizationsClustersOrganizationsClusters.model_rebuild()
QueryOrganizationsClustersOrganizationsClustersClusters.model_rebuild()
