package com.gbcm.client.beans;

import com.gbcm.client.beans.auth.AuthBean;
import jakarta.enterprise.context.SessionScoped;
import jakarta.inject.Named;
import jakarta.inject.Inject;
import java.io.Serializable;

@Named("navigationBean")
@SessionScoped
public class NavigationBean implements Serializable {

    @Inject
    private AuthBean authBean;

    /**
     * Navigation vers la page d'accueil
     */
    public String home() {
        return "/index?faces-redirect=true";
    }

    /**
     * Navigation vers le dashboard
     */
    public String dashboard() {
        if (!authBean.isAuthenticated()) {
            return "/index?faces-redirect=true";
        }
        return "/pages/dashboard?faces-redirect=true";
    }

    /**
     * Navigation vers la gestion des clients
     */
    public String clients() {
        if (!authBean.isAuthenticated()) {
            return "/index?faces-redirect=true";
        }
        return "/pages/clients?faces-redirect=true";
    }

    /**
     * Navigation vers le profil
     */
    public String profile() {
        if (!authBean.isAuthenticated()) {
            return "/index?faces-redirect=true";
        }
        return "/pages/profile?faces-redirect=true";
    }

    /**
     * Navigation vers les projets
     */
    public String projects() {
        if (!authBean.isAuthenticated()) {
            return "/index?faces-redirect=true";
        }
        return "/pages/projects?faces-redirect=true";
    }

    /**
     * Navigation vers les rapports
     */
    public String reports() {
        if (!authBean.isAuthenticated()) {
            return "/index?faces-redirect=true";
        }
        return "/pages/reports?faces-redirect=true";
    }

    /**
     * Navigation vers les paramètres
     */
    public String settings() {
        if (!authBean.isAuthenticated()) {
            return "/index?faces-redirect=true";
        }
        return "/pages/settings?faces-redirect=true";
    }

    /**
     * Vérifie si la page actuelle est active
     */
    public boolean isPageActive(String page) {
        // Cette méthode peut être étendue pour vérifier l'URL actuelle
        return false;
    }

    /**
     * Obtient la classe CSS pour un élément de menu
     */
    public String getMenuItemClass(String page) {
        return isPageActive(page) ? "active-menuitem" : "";
    }
}
