# Apache virtual host — Online Clinic (no port in the browser URL)
#
# Hostname: use clinic-frontend.localdev OR clinic-frontend.local.dev (match your hosts file)
#
# 1. Enable modules (as Administrator):
#    LoadModule rewrite_module modules/mod_rewrite.so
#    LoadModule proxy_module modules/mod_proxy.so
#    LoadModule proxy_http_module modules/mod_proxy_http.so
#
# 2. Add to hosts file (C:\Windows\System32\drivers\etc\hosts):
#    127.0.0.1  clinic-frontend.localdev
#    127.0.0.1  clinic-backend.localdev
#
# 3. Include this file from httpd.conf, then restart Apache.
#
# 4. Build the frontend once:
#    cd frontend && npm install && npm run build
#
# 5. Open: http://clinic-frontend.local.dev/setup

# --- Frontend (Vue SPA) on port 80 -------------------------------------------

<VirtualHost *:80>
    ServerName clinic-frontend.localdev
    ServerAlias clinic-frontend.local.dev
    DocumentRoot "D:/www/online-clinic/frontend/dist"

    # MUST be frontend/dist (built Vue app), NOT frontend/public (static assets only)
    <Directory "D:/www/online-clinic/frontend/dist">
        Options -Indexes +FollowSymLinks -MultiViews
        AllowOverride All
        Require all granted
        DirectoryIndex index.html

        RewriteEngine On
        RewriteBase /
        RewriteRule ^api(?:/|$) - [L]
        RewriteRule ^storage(?:/|$) - [L]
        RewriteRule ^booking(/.*)?$ /booking.html [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^ /index.html [L]
    </Directory>

    # Proxy API + storage to Laravel via XAMPP PHP (clinic-backend.localdev).
    # Do not proxy to artisan serve (:8000) — it is single-threaded and causes 502 errors during install.
    ProxyPreserveHost On
    ProxyTimeout 300
    ProxyPass        /api      http://clinic-backend.localdev/api
    ProxyPassReverse /api      http://clinic-backend.localdev/api
    ProxyPass        /storage  http://clinic-backend.localdev/storage
    ProxyPassReverse /storage http://clinic-backend.localdev/storage

    ErrorLog  "logs/clinic-frontend-error.log"
    CustomLog "logs/clinic-frontend-access.log" common
</VirtualHost>

# --- Backend API host (required for /api proxy above) ------------------------

#<VirtualHost *:80>
#    ServerName clinic-backend.localdev
#    DocumentRoot "D:/www/online-clinic/backend/public"
#
#    <Directory "D:/www/online-clinic/backend/public">
#        AllowOverride All
#        Require all granted
#    </Directory>
#
#    ErrorLog  "logs/clinic-backend-error.log"
#    CustomLog "logs/clinic-backend-access.log" common
#</VirtualHost>

# --- Alternative: dev mode (Vite HMR) on port 80 -----------------------------
# Comment out the frontend VirtualHost above and use this while running:
#   cd backend && php artisan serve
#   cd frontend && npm run dev
#
#<VirtualHost *:80>
#    ServerName clinic-frontend.local.dev
#    ProxyPreserveHost On
#    ProxyPass        /api http://127.0.0.1:8000/api
#    ProxyPassReverse /api http://127.0.0.1:8000/api
#    ProxyPass        /storage http://127.0.0.1:8000/storage
#    ProxyPassReverse /storage http://127.0.0.1:8000/storage
#    ProxyPass        / http://127.0.0.1:5173/
#    ProxyPassReverse / http://127.0.0.1:5173/
#</VirtualHost>
