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

from typing import List, Optional

from pydantic import Field as FieldInfo

from .url import URL
from .volume import Volume
from ...._models import BaseModel
from .tf_phone_number import TfPhoneNumber
from .use_case_categories import UseCaseCategories
from .tf_verification_status import TfVerificationStatus
from .toll_free_verification_entity_type import TollFreeVerificationEntityType

__all__ = ["VerificationRequestEgress"]


class VerificationRequestEgress(BaseModel):
    """A verification request as it comes out of the database"""

    id: str

    additional_information: str = FieldInfo(alias="additionalInformation")

    business_addr1: str = FieldInfo(alias="businessAddr1")

    business_city: str = FieldInfo(alias="businessCity")

    business_contact_email: str = FieldInfo(alias="businessContactEmail")

    business_contact_first_name: str = FieldInfo(alias="businessContactFirstName")

    business_contact_last_name: str = FieldInfo(alias="businessContactLastName")

    business_contact_phone: str = FieldInfo(alias="businessContactPhone")

    business_name: str = FieldInfo(alias="businessName")

    business_state: str = FieldInfo(alias="businessState")

    business_zip: str = FieldInfo(alias="businessZip")

    corporate_website: str = FieldInfo(alias="corporateWebsite")

    message_volume: Volume = FieldInfo(alias="messageVolume")
    """Message Volume Enums"""

    opt_in_workflow: str = FieldInfo(alias="optInWorkflow")

    opt_in_workflow_image_urls: List[URL] = FieldInfo(alias="optInWorkflowImageURLs")

    phone_numbers: List[TfPhoneNumber] = FieldInfo(alias="phoneNumbers")

    production_message_content: str = FieldInfo(alias="productionMessageContent")

    use_case: UseCaseCategories = FieldInfo(alias="useCase")
    """Tollfree usecase categories"""

    use_case_summary: str = FieldInfo(alias="useCaseSummary")

    verification_request_id: str = FieldInfo(alias="verificationRequestId")

    age_gated_content: Optional[bool] = FieldInfo(alias="ageGatedContent", default=None)

    business_addr2: Optional[str] = FieldInfo(alias="businessAddr2", default=None)

    business_registration_country: Optional[str] = FieldInfo(alias="businessRegistrationCountry", default=None)

    business_registration_number: Optional[str] = FieldInfo(alias="businessRegistrationNumber", default=None)

    business_registration_type: Optional[str] = FieldInfo(alias="businessRegistrationType", default=None)

    campaign_verify_authorization_token: Optional[str] = FieldInfo(
        alias="campaignVerifyAuthorizationToken", default=None
    )
    """
    Campaign Verify Authorization Token required for Political use case submissions
    starting February 17, 2026
    """

    doing_business_as: Optional[str] = FieldInfo(alias="doingBusinessAs", default=None)

    entity_type: Optional[TollFreeVerificationEntityType] = FieldInfo(alias="entityType", default=None)
    """Business entity classification"""

    help_message_response: Optional[str] = FieldInfo(alias="helpMessageResponse", default=None)

    isv_reseller: Optional[str] = FieldInfo(alias="isvReseller", default=None)

    opt_in_confirmation_response: Optional[str] = FieldInfo(alias="optInConfirmationResponse", default=None)

    opt_in_keywords: Optional[str] = FieldInfo(alias="optInKeywords", default=None)

    privacy_policy_url: Optional[str] = FieldInfo(alias="privacyPolicyURL", default=None)

    terms_and_condition_url: Optional[str] = FieldInfo(alias="termsAndConditionURL", default=None)

    verification_status: Optional[TfVerificationStatus] = FieldInfo(alias="verificationStatus", default=None)
    """Tollfree verification status"""

    webhook_url: Optional[str] = FieldInfo(alias="webhookUrl", default=None)
