import {useContext} from 'react';
import AuthContext from "../context/auth-context";
import {Microservice, Role} from "../models/EgovUser";

/**
 * Gets module rules on module component mount
 */

const MicroserviceLongDescr: Record<Microservice, string> = {

    riview: "Με τη δημιουργία της υπηρεσίας διασύνδεσης της RIview πλατφόρμας με την D.U.A. Platform - All In One Go δίνεται η δυνατότητα προβολής των αρχείων αξιολογήσεων των Ερευνητικών Ινστιτούτων και των Ερευνητικών Ομάδων. Επιπλέον, ενσωματώθηκαν όλα τα στατιστικά δεδομένα από τα ποσοτικά δεδομένα της αξιολόγησης.",

    rescom: "Με τη δημιουργία της υπηρεσίας διασύνδεσης του πληροφοριακού συστήματος resCom με την D.U.A. Platform - All In One Go δίνεται η δυνατότητα προβολής δεδομένων σχετικά με ερευνητικά έργα και τις συμβάσεις των συνεργατών. Επιπλέον, ενσωματώθηκαν οι πρώτες στατιστικές αναφορές που παράγονται από τα δεδομένα του πληροφοριακού συστήματος resCom.",

    dpass: "Η πρόσβαση στο ΕΚΕΦΕ \"Δ\" αλλάζει, δίνοντας τη δυνατότητα σε όλους τους συνεργάτες του κέντρου να δημιουργήσουν εύκολα και γρήγορα προσκλήση για προγραμματισμό επίσκεψης στο ΕΚΕΦΕ \"Δ\". Η πρόσκληση περιλαμβάνει όλη την απαραίτητη πληροφορία που χρειάζεται ένας επισκέπτης του ΕΚΕΦΕ \"Δ\".",

    contacts: "Αποκτήστε εύκολη και γρήγορη πρόσβαση στις υπηρεσίες του κεντρικού τηλεφωνικού καταλόγου του ΕΚΕΦΕ \"Δ\". Επικαιροποιήστε τα στοιχεία σας σε πραγματικό χρόνο και αναζητήστε τις πληροφορίες επικοινωνίας όλως των συνεργατών του κέντρου μέσα από την πλατφόρμα D.U.A. Platform - All In One Go.",

    support: "Δημιουργήστε αίτημα για βοήθεια από την ομάδα του Help Desk επιλέγοντας από την υπάρχουσα λίστα προβλημάτων ή ζητήστε μας να προσθέσουμε τη δική σας ερώτηση. Επιπλέον, μέσω της ενότητας eGov Academy του <a target='_blank' href='https://egov.demokritos.gr'>egov.demokritos.gr</a> μπορείτε να βρείτε συγκεντρωμένη και ταξινομημένη όλη την υπάρχουσα πληροφορία για τις υπηρεσίες που προσφέρει το ΕΚΕΦΕ \"Δ\".",

    net_support: "Ενημερωθείτε για την εφαρμογή που επιτρέπει τη διαχείριση των email accounts σε οργανική μονάδα ενώ ταυτόχρονα απλοποιεί τη διαδικασία ένταξης των νέων συνεργατών στο ΕΚΕΦΕ \"Δ\".",

    settings: "Καλως ήρθατε στην ομάδα τεχνικής βοήθειας EGov Help Desk.",

    hr_support: "Η δημιουργία της εφαρμογής προέκυψε απο την ανάγκη της διαχείρισης του έκτακτου προσωπικού του ΕΚΕΦΕ \"Δ\". Ο σχεδιασμός επιτρέπει την άμεση ενημέρωση για τις συμβάσεις των συνεργατών και την απλούστευση της διαδικασίας ένταξης και απένταξης συνεργατών (Onboarding & Offboarding) σε κάθε οργανική μονάδα του ΕΚΕΦΕ \"Δ\".",

    applio: "Εφαρμογή για προσκλήσεις υποβολής προτάσεων",

    difo: "Καλως ήρθατε στην Διαχείριση Αρχείων DUA.",
};

const MicroserviceLongTitle: Record<Microservice, string> = {

    riview: "RIview by D.U.A.",

    rescom: "resCom by D.U.A.",

    dpass: "DPass",

    contacts: "Demokritos Contacts",

    support: "eGov Support",

    net_support: "Net Support",

    settings: "Καλως ήρθατε στην ομάδα τεχνικής βοήθειας EGov Help Desk.",

    hr_support: "HR Support",

    applio: "ApplioBox",

    difo: "Digital Folder",
};

const useTranslations = () => {

    const {translations} = useContext(AuthContext)

    const translateRole = (role: Role) => {
        return translations && (translations.roles[role]?.view_name ?? '');
    }

    const translateModule = (mod: string) => {
        return translations && (translations.modules[mod]?.view_name ?? '');
    }

    const translateModuleDesc = (mod: string) => {
        return translations && (translations.modules[mod]?.description ?? '');
    }

    const translateModuleIcon = (mod: string) => {
        return translations && translations.modules[mod]?.filepath;
    }

    const translateMicroservice = (ms: Microservice) => {
        return translations && (translations.microservices[ms]?.view_name ?? '');
    }

    const translateMicroserviceLongTitle = (ms: Microservice) => {
        return MicroserviceLongTitle[ms] ?? '';
    }

    const translateMicroserviceDesc = (ms: Microservice) => {
        return translations && (translations.microservices[ms]?.description ?? '');
    }

    const translateMicroserviceLongDesc = (ms: Microservice) => {
        return MicroserviceLongDescr[ms] ?? '';
    }

    const translateMicroserviceIcon = (ms: Microservice) => {
        return translations && translations.microservices[ms]?.filepath;
    }

    const translatePermission = (per: string) => {
        return translations && (translations.permissions[per]?.view_name ?? '');
    }

    return {
        translateRole,
        translateModule,
        translateModuleDesc,
        translateModuleIcon,
        translateMicroservice,
        translateMicroserviceDesc,
        translatePermission,
        translateMicroserviceIcon,
        translateMicroserviceLongDesc,
        translateMicroserviceLongTitle
    } as const

}


export default useTranslations;
