import { type User } from 'aws-sdk/clients/appstream'
import { type ListFrontEndInterface } from '../../CommonType'

export interface OnBoardingCorporateListDataTypeInterface
    extends OnBoardingCorporateFormDataInterface {
    key: React.Key
}

export interface OnBoardingCopareateListStateInterface {
    onboardingcorporateList: OnBoardingCorporateListDataTypeInterface[]
    onboardingcorporateListCount: number
    serviceId: number
}
export interface OnBoardingCorporateListInterface {
    onboardingcorporateList: OnBoardingCorporateListDataTypeInterface[]
    onboardingcorporateListCount: number
    selectedCategoryId: number
    selectedServiceId: number
}

export interface Category {
    id: number
    name: string
}

export interface OnBoardingCorporateFormDataInterface {
    corporateid: string
    companyName: string
    companyregisternumber: string
    clientType: string
    clientcategoryid: number
    clientcategory: string
    clientnumber: string
    activestatus: string
    serviceIds: string
    contactName: string
    mobilenumber: string
    emailAddress: string
    alternativeEmailAddress: string
    defaultUser: string
    defaultAssigneeUser: string
}

export interface OnBoardingCorporateChatInterface {
    corporateid: string
    ReferenceId: number
    Description: string
    userIds: number[]
    BusinessTypeId: number
    IsClientCommunication: number
}

export interface OnBoardingCorporateFormInterface {
    clientDropDownList: ListFrontEndInterface[]
}

export interface OnBoardingCorporatePayloadInteface {
    data: OnBoardingCorporateFormDataInterface[]
    noOfRecords: number
}

export interface OnBoardingCorporateExpandViewInterface {
    corporateData: OnBoardingCorporateListDataTypeInterface
}

export interface OnBoardingCorporateChatPropsInterface {
    userList: User[]
    corporateid: number
}

export interface FormValues {
    index: number
    buttonName: string
}

export interface OnBoardingCorporateChatStateInterface {
    userList: Array<{ label: string }>
}

export interface OnBoardingCorporateChatProps
    extends OnBoardingCorporateChatStateInterface {
    corporateid: number
}

export interface OnBoardingCorporateViewState {
    companyNumber: number
    tabIndex: number
    clientTypeId: number
    initialDetails: any
    activeButton: number
    showCoporateList: boolean
}
export interface OnBoardingCorporateListStateInterface {
    onboardingcorporateList: any
    onboardingcorporateListCount: any
    serviceId: any
}
export interface TapIndexPayloadInterface {
    data: onBoardingCorporateTaps
}
export interface onBoardingCorporateTaps {
    initialDetails?: {
        corporateid?: number
        clienttypeid?: number
        clientcategory?: string
        dateofincorporation?: string
        companytradingname?: string
        tradecommencementdate?: string
        turnover?: number
        authenticationcode?: string
        clientcategoryid?: number
    }
    registerOfficeAddress?: {
        regaddress1?: string
        regaddress2?: string
        regtown?: string
        regcountry?: string
        regpostcode?: string
    }
    SIC?: string
    businessAddress?: {
        busaddress1?: string
        busaddress2?: string
        bustown?: string
        buscountry?: string
        buspostcode?: string
    }
    correspondanceAddress?: {
        corraddress1?: string
        corraddress2?: string
        corrtown?: string
        corrcountry?: string
        corrpostcode?: string
    }
}
