import { type ListFrontEndInterface } from '../CommonType'

export interface ClientServiceCorporateRegistrationViewDefaultUser {
    corporateid: number
    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
    portfolioManager: string
    accountsManager: string
    kmp: string
    noOfCompanies: number
    portfolioRemarks: string
}

export interface ClientserviceCeorporateTableInteface
    extends ClientServiceCorporateRegistrationViewDefaultUser {
    key: React.Key
}
export interface ClientServiceCorporateListStateInterface {
    clientServicecorporateList: ClientserviceCeorporateTableInteface[]
    clientServicecorporateListCount: number
}

export interface ClientserviceCorporateList
    extends ClientServiceCorporateListStateInterface {
    selectedCategoryId: number
    selectedServiceId: number
}

export interface ClientserviceCorporatePayloadInteface {
    data: ClientServiceCorporateRegistrationViewDefaultUser[]
    noOfRecords: number
}

export interface SoleTraderData {
    soleTraderId: number
    natureOfBusiness: string
    businessTradingName: string
    clientNumber: string
    activestatus: string
    serviceIds: string
    contactName: string
    mobilenumber: string
    emailAddress: string
    alternativeEmailAddress: string
    defaultUser: string
    defaultAssigneeUser: string
    no: number
    createdDate: string
    createdUser: string
    lastUpdateDate: string
    lastUpdateUser: string
    deletedDate: string
    deletedUser: string
}

export interface ClientserviceSoltraderPayloadInteface {
    data: SoleTraderData[]
    noOfRecords: number
}

export interface ClientserviceSoltraderTableInteface extends SoleTraderData {
    key: React.Key
}

export interface ClientServicesoltraderListStateInterface {
    clientserviceSoltraderList: ClientserviceSoltraderTableInteface[]
    clientserviceSoltraderListCount: number
}

export interface clientserviceSoltraderList
    extends ClientServicesoltraderListStateInterface {
    selectedCategoryId: number
    selectedServiceId: number
}

export interface PartnershipData {
    partnershipId: number
    clientNumber: string
    tradingName: string
    partnershipUTR: string
    activestatus: string
    serviceIds: string
    contactName: string
    mobilenumber: string
    emailAddress: string
    alternativeEmailAddress: string
    defaultUser: string
    defaultAssigneeUser: string
    no: number
    createdDate: string
    createdUser: string
    lastUpdateDate: string
    lastUpdateUser: string
    deletedDate: string
    deletedUser: string
}

export interface ClientservicePartnershipPayloadInteface {
    data: PartnershipData[]
    noOfRecords: number
}

export interface ClientservicePartnershipTableInteface extends PartnershipData {
    key: React.Key
}

export interface ClientServicepartneshipListStateInterface {
    clientservicePartnershipList: ClientservicePartnershipTableInteface[]
    clientservicePartnershipListCount: number
}

export interface clientservicePartnershipListType
    extends ClientServicepartneshipListStateInterface {
    selectedCategoryId: number
    selectedServiceId: number
}

export interface IndividualData {
    individualId: number
    name: string
    tradingName: string
    typeOfSelfEmployment: string
    clientNumber: string
    activestatus: string
    serviceIds: string
    mobilenumber: string
    emailAddress: string
    alternativeEmailAddress: string
    defaultUser: string
    defaultAssigneeUser: string
    no: number
    createdDate: string
    createdUser: string
    lastUpdateDate: string
    lastUpdateUser: string
    deletedDate: string
    deletedUser: string
}

export interface ClientserviceIndividualPayloadInteface {
    data: IndividualData[]
    noOfRecords: number
}

export interface ClientserviceIndividualTableInteface extends IndividualData {
    key: React.Key
}

export interface ClientServiceindividualListStateInterface {
    clientserviceIndividualList: ClientserviceIndividualTableInteface[]
    clientserviceIndividualListCount: number
}

export interface clientserviceIndividualListType
    extends ClientServiceindividualListStateInterface {
    selectedCategoryId: number
    selectedServiceId: number
}

export interface CorporateExpandViewData {
    CorporateData: ClientserviceCeorporateTableInteface
}

export interface SoltraderExpandViewData {
    soltraderData: ClientserviceSoltraderTableInteface
}

export interface InduvidualExpandViewData {
    induvidalData: ClientserviceIndividualTableInteface
}

export interface PartneshipExpandViewData {
    partneshipData: ClientservicePartnershipTableInteface
}

export interface AssigneeUserStateInterface {
    ClientserviceUserList: ListFrontEndInterface[]
    clientServiceDropDownList: ListFrontEndInterface[]
}

export interface ClientServiceUserSwitchUserInterface
    extends AssigneeUserStateInterface {
    flegId: number
    referenceId: number
    businessTypeId: number
    onSave: (data: ServiceDetails, callBack: CallableFunction) => void
    serviceName?: string
}

export interface ServiceDetails {
    serviceId: number
    businessTypeId: number
    referenceId: number
    assigneeUserId: number
    workingUserId: number
    portfolioManagerId: number
    accountManagerId: number
}
