




export const useRole = () => {
    const profileStore = useProfileStore()

    const generalAvailableRights = ref({
        projects: {
            label: "Projekte",
            showToAllUsers: false
        },
        "projects-viewAll": {
            label: "Alle Projekte einsehen",
            parent: "projects"
        },
        "projects-create": {
            label: "Projekte erstellen",
            parent: "projects"
        },
        contracts: {
            label: "Verträge",
            showToAllUsers: false
        },
        "contracts-viewAll": {
            label: "Alle Verträge einsehen",
            parent: "contracts"
        },
        "contracts-create": {
            label: "Verträge erstellen",
            parent: "contracts"
        },
        contracttypes: {
            label: "Vertragstypen",
            showToAllUsers: false
        },
        "contracttypes-viewAll": {
            label: "Alle Vertragstypen einsehen",
            parent: "contracttypes"
        },
        "contracttypes-create": {
            label: "Vertragstypen erstellen",
            parent: "contracttypes"
        },
        plants: {
            label: "Objekte",
            showToAllUsers: false
        },
        "plants-viewAll": {
            label: "Alle Objekte einsehen",
            parent: "plants"
        },
        "plants-create": {
            label: "Objekte erstellen",
            parent: "plants"
        },
        products: {
            label: "Artikel",
            showToAllUsers: true
        },
        "products-create": {
            label: "Artikel erstellen",
            parent: "products"
        },
        productcategories: {
            label: "Artikelkategorie",
            showToAllUsers: true
        },
        "productcategories-create": {
            label: "Artikelkategorie erstellen",
            parent: "productcategories"
        },
        services: {
            label: "Leistungen",
            showToAllUsers: true
        },
        "services-create": {
            label: "Leistungen erstellen",
            parent: "services"
        },
        servicecategories: {
            label: "Leistungskategorien",
            showToAllUsers: true
        },
        "servicecategories-create": {
            label: "Leistungskategorien erstellen",
            parent: "servicecategories"
        },
        customers: {
            label: "Kunden",
            showToAllUsers: false
        },
        "customers-viewAll": {
            label: "Alle Kunden einsehen",
            parent: "customers"
        },
        "customers-create": {
            label: "Kunden erstellen",
            parent: "customers"
        },
        contacts: {
            label: "Kontakte",
            showToAllUsers: false
        },
        "contacts-viewAll": {
            label: "Alle Kontakte einsehen",
            parent: "contacts"
        },
        "contacts-create": {
            label: "Kontakte erstellen",
            parent: "contacts"
        },
        vendors: {
            label: "Lieferanten",
            showToAllUsers: false
        },
        "vendors-viewAll": {
            label: "Alle Lieferanten einsehen",
            parent: "vendors"
        },
        "vendors-create": {
            label: "Lieferanten erstellen",
            parent: "vendors"
        },
        checks: {
            label: "Überprüfungen",
            showToAllUsers: false
        },
        "checks-viewAll": {
            label: "Alle Überprüfungen einsehen",
            parent: "checks"
        },
        "checks-create": {
            label: "Überprüfungen erstellen",
            parent: "checks"
        },
        vehicles: {
            label: "Fahrzeuge",
            showToAllUsers: false
        },
        "vehicles-viewAll": {
            label: "Alle Fahrzeuge einsehen",
            parent: "vehicles"
        },
        "vehicles-create": {
            label: "Fahrzeuge erstellen",
            parent: "vehicles"
        },
        inventoryitems: {
            label: "Inventarartikel",
            showToAllUsers: false
        },
        "inventoryitems-viewAll": {
            label: "Alle Inventarartikel einsehen",
            parent: "inventoryitems"
        },
        "inventoryitems-create": {
            label: "Inventarartikel erstellen",
            parent: "inventoryitems"
        },
        inventoryitemgroups: {
            parent: "inventoryitems",
            label: "Inventarartikelgruppen",
            showToAllUsers: false
        },
        "inventoryitemgroups-viewAll": {
            label: "Alle Inventarartikelgruppen einsehen",
            parent: "inventoryitemgroups"
        },
        "inventoryitemgroups-create": {
            label: "Inventarartikelgruppen erstellen",
            parent: "inventoryitemgroups"
        },
        absencerequests: {
            label: "Abwesenheiten",
            showToAllUsers: false
        },
        "absencerequests-viewAll": {
            label: "Alle Abwesenheiten einsehen",
            parent: "absencerequests"
        },
        "absencerequests-create": {
            label: "Abwesenheiten erstellen",
            parent: "absencerequests"
        },
        events: {
            label: "Termine",
            showToAllUsers: false
        },
        "events-viewAll": {
            label: "Alle Termine einsehen",
            parent: "events"
        },
        "events-create": {
            label: "Termine erstellen",
            parent: "events"
        },
        spaces: {
            label: "Lagerplätze",
            showToAllUsers: false
        },
        "spaces-viewAll": {
            label: "Alle Lagerplätze einsehen",
            parent: "spaces"
        },
        "spaces-create": {
            label: "Lagerplätze erstellen",
            parent: "spaces"
        },
        roles: {
            label: "Rollen",
            showToAllUsers: false
        },
        "roles-viewAll": {
            label: "Alle Rollen einsehen",
            parent: "roles"
        },
        "roles-create": {
            label: "Rollen erstellen",
            parent: "roles"
        },
        tasks: {
            label: "Aufgaben",
            showToAllUsers: false
        },
        "tasks-viewAll": {
            label: "Alle Aufgaben einsehen",
            parent: "tasks"
        },
        "tasks-create": {
            label: "Aufgaben erstellen",
            parent: "tasks"
        },
        costcentres: {
            label: "Kostenstellen",
            showToAllUsers: false
        },
        "costcentres-viewAll": {
            label: "Alle Kostenstellen einsehen",
            parent: "costcentres"
        },
        "costcentres-create": {
            label: "Kostenstellen erstellen",
            parent: "costcentres"
        },
        teams: {
            label: "Teams",
            showToAllUsers: false
        },
        "teams-viewAll": {
            label: "Alle Teams einsehen",
            parent: "teams"
        },
        "teams-create": {
            label: "Teams erstellen",
            parent: "teams"
        },
        ownaccounts: {
            label: "Buchungskonten",
            showToAllUsers: false
        },
        "ownaccounts-viewAll": {
            label: "Alle Buchungskonten einsehen",
            parent: "ownaccounts"
        },
        "ownaccounts-create": {
            label: "Buchungskonten erstellen",
            parent: "ownaccounts"
        },
        documentboxes: {
            label: "Dokuemntenboxen",
            showToAllUsers: false
        },
        "documentboxes-viewAll": {
            label: "Alle Dokuemntenboxen einsehen",
            parent: "documentboxesx"
        },
        "documentboxes-create": {
            label: "Dokuemntenboxen erstellen",
            parent: "documentboxes"
        },
        hourrates: {
            label: "Stundensätze",
            showToAllUsers: false
        },
        "hourrates-viewAll": {
            label: "Alle Stundensätze einsehen",
            parent: "hourrates"
        },
        "hourrates-create": {
            label: "Stundensätze erstellen",
            parent: "hourrates"
        },
        "inventory": {
            label: "Lager",
        },
    })


    let role = profileStore.activeProfile.role

    const checkRight = (right) => {
        let rightsToCheck = [right]


        //console.log(right.split("-"))

        if(right.split("-").length > 1) {
            rightsToCheck.push(right.split("-")[0])
        }
        //console.log(rightsToCheck)

        let hasAllNeccessaryRights = true

        //console.log(role.rights)

        rightsToCheck.forEach(i => {
            if(!role.rights.includes(i)){
                hasAllNeccessaryRights = false
            }
        })

        return hasAllNeccessaryRights
    }

    return {
        role,
        generalAvailableRights,
        checkRight
    }

}
