LegalController.java

package com.ctrlbuy.webshop.controller;

import lombok.extern.slf4j.Slf4j;
import org.springframework.security.core.Authentication;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

/**
 * Controller för juridiska sidor som användarvillkor och integritetspolicy
 */
@Controller
@Slf4j
public class LegalController {

    /**
     * Visar användarvillkor
     */
    @GetMapping("/terms")
    public String showTerms(Model model, Authentication auth) {
        log.debug("Visar användarvillkor för användare: {}",
                auth != null ? auth.getName() : "anonym");

        // Lägg till metadata för sidan
        model.addAttribute("pageTitle", "Användarvillkor");
        model.addAttribute("pageDescription", "Läs våra användarvillkor och regler för handel");

        return "terms";
    }

    /**
     * Visar integritetspolicy
     */
    @GetMapping("/privacy-policy")
    public String showPrivacyPolicy(Model model, Authentication auth) {
        log.debug("Visar integritetspolicy för användare: {}",
                auth != null ? auth.getName() : "anonym");

        // Lägg till metadata för sidan
        model.addAttribute("pageTitle", "Integritetspolicy");
        model.addAttribute("pageDescription", "Information om hur vi hanterar dina personuppgifter");

        return "integritetspolicy";  // FIXAT! Nu matchar det filnamnet integritetspolicy.html
    }

    /**
     * Visar cookies-policy (för framtida användning)
     */
    @GetMapping("/cookies")
    public String showCookiesPolicy(Model model, Authentication auth) {
        log.debug("Visar cookies-policy för användare: {}",
                auth != null ? auth.getName() : "anonym");

        model.addAttribute("pageTitle", "Cookies-policy");
        model.addAttribute("pageDescription", "Information om hur vi använder cookies");

        return "cookies";
    }

    /**
     * Visar GDPR-information och användarrättigheter
     */
    @GetMapping("/gdpr")
    public String showGdprInfo(Model model, Authentication auth) {
        log.debug("Visar GDPR-information för användare: {}",
                auth != null ? auth.getName() : "anonym");

        model.addAttribute("pageTitle", "Dina rättigheter enligt GDPR");
        model.addAttribute("pageDescription", "Information om dina dataskyddsrättigheter");

        return "gdpr";
    }

    /**
     * Visar allmänna villkor och policy-sida (samlingssida)
     */
    @GetMapping("/legal")
    public String showLegalIndex(Model model, Authentication auth) {
        log.debug("Visar juridisk översiktssida för användare: {}",
                auth != null ? auth.getName() : "anonym");

        model.addAttribute("pageTitle", "Juridisk information");
        model.addAttribute("pageDescription", "Övergripande information om våra villkor och policys");

        return "legal/index";
    }
}