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

from __future__ import annotations
from .otheraccountscreate import OtherAccountsCreate, OtherAccountsCreateTypedDict
from ascend_sdk.types import BaseModel
from typing import List, Optional
from typing_extensions import NotRequired, TypedDict


class FinancialProfileCreateTypedDict(TypedDict):
    r"""Disclosure of the entity account owner's financial relationships and source of brokerage funds; facilitates the creation of the overall customer risk profile"""

    banking_relationships: List[str]
    r"""Bank names with whom the entity maintains a relationship with (e.g., accounts held with the bank)"""
    other_accounts: OtherAccountsCreateTypedDict
    r"""A customer-disclosed list of other Apex-held accounts owned by the Entity applicant at the time of this account's application; expressed as zero, one, or many account numbers"""
    primary_source_of_deposited_funds: NotRequired[str]
    r"""The primary source of funds that will be deposited to this account"""


class FinancialProfileCreate(BaseModel):
    r"""Disclosure of the entity account owner's financial relationships and source of brokerage funds; facilitates the creation of the overall customer risk profile"""

    banking_relationships: List[str]
    r"""Bank names with whom the entity maintains a relationship with (e.g., accounts held with the bank)"""

    other_accounts: OtherAccountsCreate
    r"""A customer-disclosed list of other Apex-held accounts owned by the Entity applicant at the time of this account's application; expressed as zero, one, or many account numbers"""

    primary_source_of_deposited_funds: Optional[str] = None
    r"""The primary source of funds that will be deposited to this account"""
