import { type ListFrontEndInterface } from './CommonType'

export interface ManageUserDetailsListDataTypeInterface
    extends ManageUserDetailsFormDataInterface {
    key: React.Key
}

export interface ManageUserDetailsListInterface {
    UserInfoList: ManageUserDetailsListDataTypeInterface[]
    UserInfoListCount: number
}

export interface ManageUserDetailsFormDataInterface {
    userId: string
    firstName: string
    middleName: string
    surName: string
    dateOfBirth: string
    addressOne: string
    addressTwo: string
    town: string
    country: string
    postCode: string
    userName: string
    imageurl: string
    emailAddress: string
    contactNo: string
    managerId: number | null
    managerName: string
    workingStatus: string
    userGroupId: number
    userGroupName: string
    clientCategoryId: number | null
    clientCategoryName: string
    departmentId: number | null
    departmentName: string
    designationId: number | null
    designationName: string
    isActive: string
    isDelete: string
    isActivated: number
}

export interface ManageUserDetailsFormInterface {
    onSave: (callBack: CallableFunction) => void
    editData: ManageUserDetailsFormDataInterface
    countryList: ListFrontEndInterface[]
    userList: ListFrontEndInterface[]
    categoryDropDownList: ListFrontEndInterface[]
    departmentDropDownList: ListFrontEndInterface[]
    designationDropDownList: ListFrontEndInterface[]
    resetdata: string
    setResetData: React.Dispatch<React.SetStateAction<string>>
}

export interface ManageUserDetailsExpandViewInterface {
    userDetailsData: ManageUserDetailsListDataTypeInterface
}

export interface UserINFOFormStateInterface {
    countryList: ListFrontEndInterface[]
    userList: ListFrontEndInterface[]
    categoryDropDownList: ListFrontEndInterface[]
    departmentDropDownList: ListFrontEndInterface[]
    designationDropDownList: ListFrontEndInterface[]
}
export interface ManageUserDetailsPayloadInterface {
    data: ManageUserDetailsFormDataInterface[]
    noOfRecords: number
}
