#!/bin/bash
# Download bol.com productfeed via FTP
# Requires: curl, server IP whitelisted at bol.com
#
# Usage: ./download-bol-feed.sh [output_path]
# Default output: /var/www/sneakerpicks/data/bol-footwear-feed.csv.gz

set -euo pipefail

BOL_FTP_USER="958f9649-4426-436e-91da-5cccafbef1d8"
BOL_FTP_PASS='4qsfR{LLBvMk!>SD'
BOL_FTP_HOST="ftp://apm-feed.unftp.bol.com:21"

OUTPUT_DIR="/var/www/sneakerpicks/data"
OUTPUT_FILE="${1:-$OUTPUT_DIR/bol-footwear-feed.csv.gz}"

mkdir -p "$OUTPUT_DIR"

echo "=== Bol.com Feed Download at $(date) ==="

# Step 1: List available files
echo "[1/2] Listing available feed files..."
FILE_LIST=$(curl --ftp-ssl --ssl-reqd \
    --user "$BOL_FTP_USER:$BOL_FTP_PASS" \
    --disable-epsv \
    "$BOL_FTP_HOST/" \
    --connect-timeout 30 \
    --max-time 60 \
    2>/dev/null)

echo "  Available files:"
echo "$FILE_LIST" | head -20

# Use the known fashion-footwear feed file
FEED_FILE="product-feed_fashion-footwear-v2.csv.gz"

if [ -z "$FEED_FILE" ]; then
    echo "ERROR: Could not find feed file. Available files:"
    echo "$FILE_LIST"
    exit 1
fi

echo "  Selected feed file: $FEED_FILE"

# Step 2: Download the feed
echo "[2/2] Downloading $FEED_FILE..."
curl --ftp-ssl --ssl-reqd \
    --user "$BOL_FTP_USER:$BOL_FTP_PASS" \
    --disable-epsv \
    "$BOL_FTP_HOST/$FEED_FILE" \
    --output "$OUTPUT_FILE" \
    --connect-timeout 30 \
    --max-time 600 \
    --progress-bar

FILE_SIZE=$(stat -c%s "$OUTPUT_FILE" 2>/dev/null || stat -f%z "$OUTPUT_FILE" 2>/dev/null || echo "unknown")
echo "  Downloaded: $OUTPUT_FILE ($FILE_SIZE bytes)"
echo "=== Bol.com Feed Download complete at $(date) ==="
