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

export interface OnBoardingSoleTraderListDataTypeInterface
    extends OnBoardingSoleTraderFormDataInterface {
    key: React.Key
}

export interface OnBoardingSoleTraderListStateInterface {
    onboardingsoleTraderList: OnBoardingSoleTraderListDataTypeInterface[]
    onboardingsoleTraderListCount: number
    serviceId: number
}

export interface OnBoardingSoleTraderListInterface {
    onboardingsoleTraderList: OnBoardingSoleTraderListDataTypeInterface[]
    onboardingsoleTraderListCount: number
    selectedCategoryId: number
    selectedServiceId: number
}

export interface OnBoardingCategory {
    id: number
    name: string
}

export interface OnBoardingSoleTraderFormDataInterface {
    soleTraderId: string
    clientCategoryId: number
    natureOfBusiness: string
    BusinessTradingName: string
    clientNumber: string
    activestatus: string
    serviceIds: string
    contactName: string
    mobilenumber: string
    emailAddress: string
    AlternativeEmailAddress: string
    DefaultUser: string
    DefaultAssigneeUser: string
}

export interface OnBoardingSoleTraderChatInterface {
    soleTraderid: string
    ReferenceId: number
    Description: string
    userIds: number[]
    BusinessTypeId: number
    IsClientCommunication: number
}

export interface OnBoardingCorporateFormInterface {
    clientDropDownList: ListFrontEndInterface[]
}

export interface OnBoardingSoleTraderPayloadInterface {
    data: OnBoardingSoleTraderFormDataInterface[]
    noOfRecords: number
}

export interface OnBoardingSoleTraderExpandViewInterface {
    soleTraderData: OnBoardingSoleTraderListDataTypeInterface
}

export interface OnBoardingSoleTraderChatPropsInterface {
    userList: User[]
    soleTraderId: number
}

export interface OnBoardingFormValues {
    index: number
    buttonName: string
}

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

export interface OnBoardingSoleTraderChatProps
    extends OnBoardingSoleTraderChatStateInterface {
    soleTraderId: number
}

export interface OnBoardingSoleTraderViewProps
    extends OnBoardingSoleTraderChatPropsInterface {}

export interface OnBoardingSoleTraderData {
    businessTradingName: string
    contactName: string
    clientnumber: string
    clientType: string
}

export interface OnBoardingSoleTraderNewStateInterface {
    categoryDropDownList: ListFrontEndInterface[]
    countryList: ListFrontEndInterface[]
}

export interface OnBoardingSoleTraderCreateFormDataInterface {
    soleTraderId: 0
    clientNumber: string
    title: string
    firstName: string
    middleName: string
    surName: string
    dateOfBirth: string
    natureOfBusiness: string
    businessTradingName: string
    homeAddressOne: string
    homeAddressTwo: string
    homeTown: string
    homeCountry: string
    homePostCode: string
    mobileNumber: string
    homeNumber: string
    workNumber: string
    emailAddress: string
    alternativeEmailAddress: string
    niNumber: string
    nationality: string
    busAddress1: string
    busAddress2: string
    busTown: string
    busCountry: string
    busPostCode: string
    corrAddress1: string
    corrAddress2: string
    corrTown: string
    corrCountry: string
    corrPostCode: string
    clientCategoryId: 0
    individualUTR: string
    isActive: string
    isDelete: string
}
