# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from __future__ import annotations

from typing import Dict, Union, Iterable, Optional
from typing_extensions import Required, Annotated, TypedDict

from .._types import SequenceNotStr
from .._utils import PropertyInfo

__all__ = ["AccountCreateParams", "Fields", "Relationships"]


class AccountCreateParams(TypedDict, total=False):
    fields: Required[Fields]

    relationships: Relationships


class Fields(
    TypedDict,
    total=False,
    extra_items=Union[
        str,
        float,
        bool,
        SequenceNotStr[Union[str, float, bool, Iterable[object], Dict[str, object], None]],
        Dict[str, Union[str, float, bool, Iterable[object], Dict[str, object], None]],
        None,
    ],
):  # type: ignore[call-arg]
    name: Required[Annotated[str, PropertyInfo(alias="$name")]]

    facebook: Annotated[Optional[str], PropertyInfo(alias="$facebook")]

    headcount: Annotated[Optional[str], PropertyInfo(alias="$headcount")]

    industry: Annotated[Optional[SequenceNotStr[str]], PropertyInfo(alias="$industry")]

    instagram: Annotated[Optional[str], PropertyInfo(alias="$instagram")]

    last_funding_type: Annotated[Optional[str], PropertyInfo(alias="$lastFundingType")]

    linked_in: Annotated[Optional[str], PropertyInfo(alias="$linkedIn")]

    primary_address: Annotated[Optional[Dict[str, str]], PropertyInfo(alias="$primaryAddress")]

    twitter: Annotated[Optional[str], PropertyInfo(alias="$twitter")]

    website: Annotated[Optional[SequenceNotStr[str]], PropertyInfo(alias="$website")]


class Relationships(TypedDict, total=False, extra_items=Union[str, SequenceNotStr[str]]):  # type: ignore[call-arg]
    contacts: Annotated[Union[str, SequenceNotStr[str]], PropertyInfo(alias="$contacts")]

    owner: Annotated[Union[str, SequenceNotStr[str]], PropertyInfo(alias="$owner")]
