from typing import Union

from .base_configs import (
    BasePropertyConfig,
    ButtonPropertyConfig,
    CheckboxPropertyConfig,
    CreatedByPropertyConfig,
    CreatedTimePropertyConfig,
    DatePropertyConfig,
    EmailPropertyConfig,
    FilesPropertyConfig,
    FormulaPropertyConfig,
    LastEditedByPropertyConfig,
    LastEditedTimePropertyConfig,
    MultiSelectOptions,
    MultiSelectPropertyConfig,
    NumberPropertyConfig,
    PeoplePropertyConfig,
    PhoneNumberPropertyConfig,
    RichTextPropertyConfig,
    SelectOptionConfig,
    SelectOptions,
    SelectPropertyConfig,
    StatusPropertyConfig,
    TitlePropertyConfig,
    UniqueIdPropertyConfig,
    UrlPropertyConfig,
    VerificationPropertyConfig,
    LocationPropertyConfig,
    LastVisitedTimePropertyConfig,
    PlacePropertyConfig,
)
from .relation_config import (
    RelationConfig,
    RelationDualConfig,
    RelationPropertyConfig,
    RelationSingleConfig,
)
from .rollup_config import RollupPropertyConfig, RollupSettings

PropertyConfig = Union[
    ButtonPropertyConfig,
    CheckboxPropertyConfig,
    CreatedByPropertyConfig,
    CreatedTimePropertyConfig,
    DatePropertyConfig,
    EmailPropertyConfig,
    FilesPropertyConfig,
    FormulaPropertyConfig,
    LastEditedByPropertyConfig,
    LastEditedTimePropertyConfig,
    MultiSelectPropertyConfig,
    NumberPropertyConfig,
    PeoplePropertyConfig,
    PhoneNumberPropertyConfig,
    RelationPropertyConfig,
    RichTextPropertyConfig,
    RollupPropertyConfig,
    SelectPropertyConfig,
    StatusPropertyConfig,
    TitlePropertyConfig,
    UniqueIdPropertyConfig,
    UrlPropertyConfig,
    VerificationPropertyConfig,
    LocationPropertyConfig,
    LastVisitedTimePropertyConfig,
    PlacePropertyConfig,
]

# データベースプロパティ設定のレスポンス型（PropertyConfigのエイリアス）
DatabasePropertyConfigResponse = PropertyConfig

__all__ = [
    "BasePropertyConfig",
    "ButtonPropertyConfig",
    "CheckboxPropertyConfig",
    "CreatedByPropertyConfig",
    "CreatedTimePropertyConfig",
    "DatePropertyConfig",
    "EmailPropertyConfig",
    "FilesPropertyConfig",
    "FormulaPropertyConfig",
    "LastEditedByPropertyConfig",
    "LastEditedTimePropertyConfig",
    "SelectOptionConfig",
    "SelectOptions",
    "MultiSelectOptions",
    "MultiSelectPropertyConfig",
    "NumberPropertyConfig",
    "PeoplePropertyConfig",
    "PhoneNumberPropertyConfig",
    "RelationConfig",
    "RelationSingleConfig",
    "RelationDualConfig",
    "RelationPropertyConfig",
    "RichTextPropertyConfig",
    "RollupPropertyConfig",
    "RollupSettings",
    "SelectPropertyConfig",
    "StatusPropertyConfig",
    "TitlePropertyConfig",
    "UniqueIdPropertyConfig",
    "UrlPropertyConfig",
    "VerificationPropertyConfig",
    "LocationPropertyConfig",
    "LastVisitedTimePropertyConfig",
    "PlacePropertyConfig",
    "PropertyConfig",
    "DatabasePropertyConfigResponse",
]
