import { type ListFrontEndInterface } from './CommonType'

export interface ServiceStatusReportInterface {
    categoryDropDownList: ListFrontEndInterface[]
    serviceDropDownList: ListFrontEndInterface[]
    regiterClientDetails: ListFrontEndInterface[]
    reportStatusList: ReportsData
}
export interface clientStatusReportInterface {
    categoryDropDownList: ListFrontEndInterface[]
    serviceDropDownList: ListFrontEndInterface[]
    regiterClientDetails: ListFrontEndInterface[]
    clientstausList: ClientReportsData
}
export interface onboardingReportInterface {
    categoryDropDownList: ListFrontEndInterface[]
    serviceDropDownList: ListFrontEndInterface[]
    regiterClientDetails: ListFrontEndInterface[]
    onboardingstausList: OnboardingReportsData
}
export interface clientserviceReportInterface {
    userList: ListFrontEndInterface[]

    clientsericestausList: clientstausstusReportsData
}
export interface clientstausdata {
    serviceProcessId: number
    serviceName: string
    businessType: string
    companyName: string
    clientNumber: string
    year: number
    periodStartDate: string // Consider using Date if you want to handle dates directly
    periodEndDate: string // Consider using Date if you want to handle dates directly
    assignee: string
    status: string
    assignDate: string // Consider using Date if you want to handle dates directly
    completedDate: string
}

export interface BusinessDocumentTemplate {
    [x: string]: any
    companyName: string
    addressOne: string
    addressTwo: string
    town: string
    country: string
    postCode: string
    companyLogo: string
    signatureLogo: string
    rubberStampLogo: string
    additionalImage: string
    homeNo: string
    workNo: string
    mobileNo: string
    emailAddress: string
    website: string
    documentFooterText: string
}
export interface BusinessProcess {
    serviceProcessId: number
    businessType: string
    companyName: string
    clientNumber: string
    year: number
    monthId: number
    periodStartDate: string
    periodEndDate: string
    dueDays: number
    assignee: string
    assignDate: string
    completedDate: string
    lastActionName: string
    currentStatus: string
    additionalDataOne: string
    additionalDataTwo: string
    additionalDataThree: string
    additionalDataFour: string
    additionalDataFive: string
}
export interface ReportsData {
    businessDocumentTemplate: BusinessDocumentTemplate
    serviceStatus: BusinessProcess[]
}
export interface ClientReportsData {
    businessDocumentTemplate: BusinessDocumentTemplate
    clientStatus: ClientInfo[]
}
export interface OnboardingReportsData {
    businessDocumentTemplate: BusinessDocumentTemplate
    onboardingClientStatus: ClientData[]
}
export interface clientstausstusReportsData {
    businessDocumentTemplate: BusinessDocumentTemplate

    clientService: clientstausdata[]
}
export interface ClientInfo {
    businessTypeId: number
    referenceId: number
    clientNumber: string
    clientName: string
    contactName: string
    contactNumber: string
    emailAddress: string
    alternativeEmailAddress?: string
    additionalDataOne?: string
    additionalDataTwo?: string
    additionalDataThree?: string
    companyName: string
}
export interface ClientData {
    businessTypeId: number
    referenceId: number
    clientNumber: string
    clientName: string
    contactName: string
    contactNumber: string
    emailAddress: string
    alternativeEmailAddress?: string // Optional field
    additionalDataOne?: string // Optional field
    additionalDataTwo?: string // Optional field
    additionalDataThree?: string // Optional field
    serviceList: string
}

export interface ReportServiceStatus {
    month: number
    year: number
    dateFlagId: number
    serviceId: number
    flagId: number
    companyTypeId: number
    clientCategoryId: number
    isDateAllowed: number
}

export interface ReportPayloadActionData {
    data: ReportsData
}
export interface onboardingPayloadActionData {
    data: OnboardingReportsData
}
export interface clientReportPayloadActionData {
    data: ClientReportsData
}
export interface clienterviceReportPayloadActionData {
    data: clientstausstusReportsData
}

export interface BusinessProcessTabledata extends BusinessProcess {
    key: React.Key
}
export interface ClientStatusReportInterface {
    userList: ListFrontEndInterface[]
}

export interface MissingDocumenRepotData {
    companyType: number
    companyName: string
    companyTypeName: string
    referenceId: number
    clientNumber: string
    description: string
}

export interface MissReportsData {
    businessDocumentTemplate: BusinessDocumentTemplate
    missedInfos: MissingDocumenRepotData[]
}

export interface MissInfoTabledata extends MissingDocumenRepotData {
    key: React.Key
}
export interface MissingReportPayloadActionData {
    data: MissReportsData
}
export interface MissigInformationReportType {
    categoryDropDownList: ListFrontEndInterface[]
    regiterClientDetails: ListFrontEndInterface[]
    missingreportStatusList: MissReportsData
    missingdroplist: ListFrontEndInterface[]
}
export interface servicestausreportdataupdate extends BusinessProcess {
    key: React.Key
}
export interface MonthwiseHistoryProps {
    seletedButton: number | null
    setButtonID: React.Dispatch<React.SetStateAction<number | null>>
    invoiceIds: number
    // changePhoneCallModalStatus: () => void
    monthiseHistoryList: monthwiseListCommunicationHistory[]
    monthwiseHistoryListCount: number
}
export interface monthwiseListCommunicationHistory
    extends CommunicationHistory {
    key: React.Key
}
export interface CommunicationHistory {
    communicationHistoryId: number
    communicationTypeId: number
    invoiceId: number
    description: string
    historyDate: string
    contactNumber: string
}
