# ============================================================
# eazyFind.me Plugin - Security Configuration
# ============================================================
# Backend Server: 49.13.245.45 (search01.eazyfind.me)
# Debug Server:   116.202.123.99
# ============================================================

# ============================================================
# GRUPPE 1: WEBHOOKS - Nur Backend-Server (49.13.245.45)
# ============================================================

# Backend → Shop: Webhook Events
<Files "webhook.php">
    <IfModule mod_authz_core.c>
        Require ip 49.13.245.45
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 49.13.245.45
    </IfModule>
</Files>

# Backend → Shop: Sync Webhook (Full & Incremental Sync)
<Files "webhook-sync.php">
    <IfModule mod_authz_core.c>
        Require ip 49.13.245.45
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 49.13.245.45
    </IfModule>
</Files>

# ============================================================
# GRUPPE 2: FRONTEND ENDPOINTS - Öffentlich (für Kunden)
# ============================================================

# Frontend: Suche (wird von JavaScript im Browser aufgerufen)
<Files "search-api.php">
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Allow,Deny
        Allow from all
    </IfModule>
</Files>

# Frontend: Plugin-Settings laden
<Files "get-settings.php">
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Allow,Deny
        Allow from all
    </IfModule>
</Files>

# Frontend: Beliebte Suchen
<Files "get-popular-searches.php">
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Allow,Deny
        Allow from all
    </IfModule>
</Files>

# Frontend: Top Produkte (gecacht)
<Files "get-top-products.php">
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Allow,Deny
        Allow from all
    </IfModule>
</Files>

# Frontend: Thumbnails
<Files "get-thumbnail.php">
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Allow,Deny
        Allow from all
    </IfModule>
</Files>

# Frontend: Warenkorbtracking (Session-basiert, GDPR-konform)
<Files "track-event.php">
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Allow,Deny
        Allow from all
    </IfModule>
</Files>

# Frontend: Token für Backend-Kommunikation
<Files "get-token.php">
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Allow,Deny
        Allow from all
    </IfModule>
</Files>

# Frontend: Page Context Detection (Produkt/Kategorie)
<Files "get-page-context.php">
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Allow,Deny
        Allow from all
    </IfModule>
</Files>

# Frontend: Product Recommendations (Customers Also Bought, Similar)
<Files "get-product-recommendations.php">
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Allow,Deny
        Allow from all
    </IfModule>
</Files>

# Frontend: Category Top Products
<Files "get-category-top-products.php">
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Allow,Deny
        Allow from all
    </IfModule>
</Files>

# ============================================================
# GRUPPE 3: ADMIN SYNC ENDPOINTS - Öffentlich (JTL Admin prüft Login)
# ============================================================
# Diese werden vom Browser des Shop-Admins aufgerufen
# Zugriffskontrolle erfolgt durch JTL Session-Prüfung im PHP-Code
# ============================================================

<Files "sync-pages.php">
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Allow,Deny
        Allow from all
    </IfModule>
</Files>

<Files "sync-pages-endpoint.php">
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Allow,Deny
        Allow from all
    </IfModule>
</Files>

<Files "sync-chunk.php">
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Allow,Deny
        Allow from all
    </IfModule>
</Files>

<Files "sync-info.php">
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Allow,Deny
        Allow from all
    </IfModule>
</Files>

<Files "sync-categories-endpoint.php">
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Allow,Deny
        Allow from all
    </IfModule>
</Files>

<Files "save-sync-stats.php">
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Allow,Deny
        Allow from all
    </IfModule>
</Files>

# ============================================================
# GRUPPE 4: WEBHOOK REGISTRATION - Öffentlich (JTL Admin prüft Login)
# ============================================================
# Wird vom Browser des Shop-Admins aufgerufen
# Zugriffskontrolle erfolgt durch JTL Session-Prüfung im PHP-Code
# ============================================================

<Files "register-webhook.php">
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Allow,Deny
        Allow from all
    </IfModule>
</Files>

# ============================================================
# GRUPPE 5: DEBUG/TEST ENDPOINTS - Nur Debug-Server (116.202.123.99)
# ============================================================

# Debug: Cart Tracking
<Files "debug-cart-tracking.php">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Debug: Cart Tracking Simple
<Files "debug-cart-tracking-simple.php">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Debug: Track Event
<Files "debug-track-event.php">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Debug: Show Error
<Files "show-error.php">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Debug: Test Track Direct
<Files "test-track-direct.php">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Debug: Test Minimal
<Files "test-minimal.php">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Debug: Test Full
<Files "test-full.php">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Debug: Check CartTracker
<Files "check-carttracker.php">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Debug: Auto-Login Token Request
<Files "debug-autologin.php">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Debug: Ranking Data mit Eingabefeld
<Files "debug-ranking-data.php">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Debug: Cache
<Files "debug-cache.php">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Debug: Top Products (TEMPORARY - PUBLIC ACCESS)
<Files "debug-top-products.php">
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Allow,Deny
        Allow from all
    </IfModule>
</Files>

# Debug: Skip Logic
<Files "debug-skip-logic.php">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Debug: Page Sync Response
<Files "debug-page-sync-response.php">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Debug: Sonderpreis
<Files "debug-sonderpreis.php">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Debug: Sales Calculation
<Files "debug-sales-calc.php">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Debug: Webhook Secret
<Files "debug-webhook-secret.php">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Debug: Is New
<Files "debug-is-new.php">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Debug: Sync Data
<Files "debug-sync-data.php">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Test: Ranking
<Files "test-ranking.php">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Test: Sync Data
<Files "test-sync-data.php">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Test: Sonderpreis Sync
<Files "test-sonderpreis-sync.php">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# List Includes
<Files "list-includes.php">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Clear OpCache
<Files "clear-opcache.php">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Test: Cart Hooks
<Files "test-cart-hooks.php">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Test: Track Proxy
<Files "test-track-proxy.php">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Test: Backend Hooks
<Files "test-backend-hooks.php">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Debug: Hooks
<Files "debug-hooks.php">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Debug: Hook Log File
<Files "hook-debug.log">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Show: All Hooks
<Files "show-all-hooks.php">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Debug: Hook 126
<Files "debug-hook-126.php">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Debug: Hook 126 Log
<Files "hook-126-debug.log">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Debug: All Cart Hooks
<Files "debug-all-cart-hooks.php">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Debug: All Cart Hooks Log
<Files "all-cart-hooks.log">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Debug: Cart Events
<Files "debug-cart-events.php">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Debug: Cart Events Log
<Files "cart-events.log">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Debug: Bootstrap Events Log
<Files "bootstrap-events.log">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Debug: Add to Cart Debug Log
<Files "add-to-cart-debug.log">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Debug: Purchase Debug Log
<Files "purchase-debug.log">
    <IfModule mod_authz_core.c>
        Require ip 116.202.123.99
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
        Allow from 116.202.123.99
    </IfModule>
</Files>

# Test: Cache Version Check (LOCAL ONLY)
<Files "test-cache-version.php">
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Allow,Deny
        Allow from all
    </IfModule>
</Files>

# Create: Cache Table (LOCAL ONLY)
<Files "create-cache-table.php">
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Allow,Deny
        Allow from all
    </IfModule>
</Files>

# Debug: Cache Keys (LOCAL ONLY)
<Files "debug-cache-keys.php">
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Allow,Deny
        Allow from all
    </IfModule>
</Files>

# Test: Body Values (LOCAL ONLY)
<Files "test-body-values.php">
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Allow,Deny
        Allow from all
    </IfModule>
</Files>

# Clear: Cache DB (LOCAL ONLY)
<Files "clear-cache-db.php">
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Allow,Deny
        Allow from all
    </IfModule>
</Files>

# Cache Dashboard (LOCAL ONLY)
<Files "cache-dashboard.php">
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Allow,Deny
        Allow from all
    </IfModule>
</Files>

<Files "debug-session-clicks.php">
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Allow,Deny
        Allow from all
    </IfModule>
</Files>
