import React from 'react';
export interface GraphData {
    name: string;
    type: string;
    launchs: number;
}

export interface SourceQualityOverallItem {
    source: string;
    count: number;
}

export interface dashboardSourceEfficiency {
    render?: (text: string, record: any) => string | React.ReactNode | React.JSX.Element
    id: number
    title: string
    key: string
    launchSource: string
    facebook: string
    google: string
    whatsAppSMS: string
    whatsAppYouTube: string
    housieyWebsite: string
}

export interface DashboardFilter {
    launch_id?: number | null
    lead_user_city_id?: number | null
    lead_user_role_name?: string
    lead_user_id?: number | null
    veiw_data?: number | null
    start_date?: string
    end_date?: string,
}

export interface DashboardState {
    dashboardStatistics: any
    dashboardCallingStatics: any
    dashboardHiddenStatics: any
    dashboardFilter: DashboardFilter
    statisticsStatus: 'loading' | 'succeeded' | 'failed'
    dashboardCallingStaticsStatus: 'loading' | 'succeeded' | 'failed'
    dashboardHiddenStaticsStatus: 'loading' | 'succeeded' | 'failed'
    dashboardWeekStatistics: any
    weekStatisticsStatus: 'loading' | 'succeeded' | 'failed'
    dashboardSourceQualityTab: 'visited' | 'token' | 'booked'
    dashboardSourceQuality: any
    dashboardSourceQualityGraphData: any
    dashboardSourceQualityTableHeader: any
    dashboardSourceQualityStatus: 'loading' | 'succeeded' | 'failed'
    dashboardSourceQualityPercentages: any

    sourceQualityTeamLead: any
    sourceQualityTeamLeadGraphData: any
    sourceQualityTeamLeadTableHeader: any
    sourceQualityTeamLeadStatus: 'loading' | 'succeeded' | 'failed'
    sourceQualityTeamLeadPercentages: any
    sourceQualityTeamLeadFilter: any

    sourceQualityOverallTab: 'visited' | 'token' | 'booked'
    sourceQualityOverallData: SourceQualityOverallItem[]
    sourceQualityOverallStatus: 'loading' | 'succeeded' | 'failed'

    status: 'loading' | 'succeeded' | 'failed'
    sourceEfficiencyTab:  'visited' | 'token' | 'booked'
    sourceEfficiencyData: any
    sourceEfficiencyStatus: 'loading' | 'succeeded' | 'failed'
    sourceEfficiencyFilter: any
    sourceQualityData: any
    sourceEfficiencyTableHeader: any
    sourceEfficiencyTeamLeadData: any
    sourceEfficiencyTeamLeadTableHeader: any
    sourceEfficiencyTeamLeadStatus: 'loading' | 'succeeded' | 'failed'
    sourceEfficiencyTeamLeadFilter: any
    sourceQualityStatus: 'loading' | 'succeeded' | 'failed'
    sourceQualityGraphData: any
    sourceQualityTableHeader: any
    error: string | null,

}

export interface TransferStatsFilters {
    stat_type: 'visited' | 'token' | 'booked';
    lead_user_id?: number | null;
    lead_user_role_name?: string;
    lead_user_city_id?: number | null;
    launch_id?: number | null;
    veiw_data?: number | null;
    date_range?: string;
}

export interface TransferStatsData {
    employee_transfers: {
        leads_in: number;
        leads_out: number;
    };
    self_transfers: {
        count_out: number;
        count_in: number;
    };
    total_transferred_leads_in_scope: number;
    difference_leads?: {
        count: number;
        rows: Array<{
            lead_id: number;
            customer_name: string;
            whatsApp_number: string;
            launch_name: string;
            status_id: number;
            current_status: string;
            visited_by_names: string;
            first_visited_at: string;
        }>;
    };
}
