Skip to content
Snippets Groups Projects
Schema.tsx 4.50 KiB
export interface Nren {
    name: string,
    country: string
}

export interface FilterSelection {
    selectedNrens: string[]
    selectedYears: number[]
}

export interface NrenAndYearDatapoint {
    nren: string,
    nren_country: string,
    year: number
}

export interface Budget extends NrenAndYearDatapoint {
    budget: number
}

export interface TrafficVolume extends NrenAndYearDatapoint {
    from_customers: number,
    to_customers: number,
    from_external: number,
    to_external: number
}

export interface FundingSource extends NrenAndYearDatapoint {
    client_institutions: number,
    commercial: number,
    european_funding: number,
    gov_public_bodies: number,
    other: number
}

export interface ChargingStructure extends NrenAndYearDatapoint {
    fee_type: (string | null)
}

export interface FibreLight extends NrenAndYearDatapoint {
    light_description: (string | null)
}

export interface PertTeam extends NrenAndYearDatapoint {
    pert_team: (string | null)
}

export interface MonitoringTools extends NrenAndYearDatapoint {
    tool_descriptions: (string | null)[],
    netflow_processing_description: (string | null)
}

export interface NrenStaff extends NrenAndYearDatapoint {
    permanent_fte: number,
    subcontracted_fte: number,
    technical_fte: number,
    non_technical_fte: number
}

export interface Organisation extends NrenAndYearDatapoint {
    name: string,
    role?: string
}

export interface ECProject extends NrenAndYearDatapoint {
    project: string
}

export interface Policy extends NrenAndYearDatapoint {
    acceptable_use: string,
    connectivity: string,
    data_protection: string,
    environmental: string,
    equal_opportunity: string,
    privacy_notice: string,
    strategic_plan: string
}

export interface ConnectedInstitutionURLs extends NrenAndYearDatapoint {
    urls: string[]
}

export interface BasicDataset {
    labels: string[];
    datasets: {
        backgroundColor: string;
        borderColor?: string;
        data: (number | null)[];
        label: string;
        hidden: boolean;
    }[];
}

export interface FundingSourceDataset {
    labels: string[],
    datasets: {
        label: string,
        data: number[],
        backgroundColor: string
        borderSkipped: boolean,
        barPercentage: number,
        borderWidth: number,
        categoryPercentage: number
        stack: string
        hidden: boolean
    }[]
}

export interface NrenStaffDataset {

    labels: string[],
    datasets: {
        label: string,
        data: number[],
        backgroundColor: string| string[],
        borderRadius: number,
        borderSkipped: boolean,
        barPercentage: number,
        borderWidth: number,
        categoryPercentage: number
        stack: string
        hidden: boolean
    }[]
}

export enum ServiceCategory {
    network_services = "network_services",
    isp_support = "isp_support",
    security = "security",
    identity = "identity",
    collaboration = "collaboration",
    multimedia = "multimedia",
    storage_and_hosting = "storage_and_hosting",
    professional_services = "professional_services",
}

export interface Service extends NrenAndYearDatapoint {
    service_category: ServiceCategory,
    service_name: string,
    service_description: string,
    product_name: string,
    official_description: string,
    additional_information: string,
}

export enum ConnectivityCategory {
     ConnectedProportion="proportion",
     ConnectivityLevel="level",
     ConnectionCarrier="carrier",
     ConnectivityLoad="load",
     ConnectivityGrowth="growth",
     CommercialConnectivity="commercial",
     CommercialChargingLevel="charging",
}

export interface ConnectedProportion extends NrenAndYearDatapoint {
    // strategic_plan: string,
    user_category: string,
    coverage: string,
    number_connected: number,
    market_share: number,
    users_served: number,
}

export interface ConnectivityLevel extends NrenAndYearDatapoint {
    user_category: string
    typical_speed: number,
    highest_speed: number,
    highest_speed_proportion: number,
}

export interface ConnectionCarrier extends NrenAndYearDatapoint {
    user_category: string,
    carry_mechanism: string
}

export interface ConnectivityLoad extends NrenAndYearDatapoint {
    user_category: string,
    average_load_from_institutions: number,
    average_load_to_institutions: number,
    peak_load_from_institutions: number,
    peak_load_to_institutions: number
}

export interface ConnectivityGrowth extends NrenAndYearDatapoint {
    user_category: string,
    growth: number
}