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

from __future__ import annotations
from .customerreferralsourcecreate import (
    CustomerReferralSourceCreate,
    CustomerReferralSourceCreateTypedDict,
)
from .negativenewscreate import NegativeNewsCreate, NegativeNewsCreateTypedDict
from .othersourcesofwealthcreate import (
    OtherSourcesOfWealthCreate,
    OtherSourcesOfWealthCreateTypedDict,
)
from ascend_sdk.types import BaseModel
from typing import Optional
from typing_extensions import NotRequired, TypedDict


class NaturalPersonFddCreateTypedDict(TypedDict):
    r"""Foreign Due Diligence for Legal Natural Persons required when a Legal Natural Person is the Primary Owner on a non-resident/non-citizen Account."""

    employment_and_employer_description: str
    r"""The description of the applicant's source of wealth"""
    negative_news: NegativeNewsCreateTypedDict
    r"""Negative News detail."""
    other_sources_of_wealth: OtherSourcesOfWealthCreateTypedDict
    r"""Applicant's other source of wealth"""
    customer_non_referral_source: NotRequired[str]
    r"""Customer Non-referral Source"""
    customer_referral_source: NotRequired[CustomerReferralSourceCreateTypedDict]
    r"""Customer Referral Source"""


class NaturalPersonFddCreate(BaseModel):
    r"""Foreign Due Diligence for Legal Natural Persons required when a Legal Natural Person is the Primary Owner on a non-resident/non-citizen Account."""

    employment_and_employer_description: str
    r"""The description of the applicant's source of wealth"""

    negative_news: NegativeNewsCreate
    r"""Negative News detail."""

    other_sources_of_wealth: OtherSourcesOfWealthCreate
    r"""Applicant's other source of wealth"""

    customer_non_referral_source: Optional[str] = None
    r"""Customer Non-referral Source"""

    customer_referral_source: Optional[CustomerReferralSourceCreate] = None
    r"""Customer Referral Source"""
