"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from __future__ import annotations
from .disputephase import DisputePhase
from .disputestatus import DisputeStatus
from moovio_sdk.types import BaseModel
import pydantic
from typing_extensions import Annotated, TypedDict


class WebhookDataDisputeCreatedTypedDict(TypedDict):
    account_id: str
    transfer_id: str
    transaction_id: str
    dispute_id: str
    status: DisputeStatus
    r"""The status of a particular dispute.

    Read our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/#dispute-statuses) to learn what each status means.
    """
    phase: DisputePhase
    r"""The phase of a dispute within the dispute lifecycle."""


class WebhookDataDisputeCreated(BaseModel):
    account_id: Annotated[str, pydantic.Field(alias="accountID")]

    transfer_id: Annotated[str, pydantic.Field(alias="transferID")]

    transaction_id: Annotated[str, pydantic.Field(alias="transactionID")]

    dispute_id: Annotated[str, pydantic.Field(alias="disputeID")]

    status: DisputeStatus
    r"""The status of a particular dispute.

    Read our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/#dispute-statuses) to learn what each status means.
    """

    phase: DisputePhase
    r"""The phase of a dispute within the dispute lifecycle."""


try:
    WebhookDataDisputeCreated.model_rebuild()
except NameError:
    pass
