#!/bin/bash
#
# Batch Backstock CSV Import
#
# Runs the import script for multiple stores in sequence.
# Default: dry run for all stores (preview mode).
# Use --execute to actually import.
# Use --execute --force to skip confirmations.
#
# Usage:
#   ./import-backstock-batch.sh                    # Dry run all stores
#   ./import-backstock-batch.sh --execute          # Import all (with confirmation per store)
#   ./import-backstock-batch.sh --execute --force   # Import all (no confirmation)
#   ./import-backstock-batch.sh --store=80744      # Single store only
#

set -euo pipefail

SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PROJECT_ROOT="$(dirname "$(dirname "$SCRIPT_DIR")")"
IMPORT_SCRIPT="$SCRIPT_DIR/import-backstock-csv.php"

# All PC stores to import
ALL_STORES=(80744 80771 80832 80855 80917 80958)

# Parse arguments
EXECUTE=""
FORCE=""
SINGLE_STORE=""

for arg in "$@"; do
    case $arg in
        --execute)  EXECUTE="--execute" ;;
        --force)    FORCE="--force" ;;
        --store=*)  SINGLE_STORE="${arg#*=}" ;;
        --help)
            echo "Usage: $0 [--execute] [--force] [--store=NNNNN]"
            echo ""
            echo "Options:"
            echo "  --execute     Actually perform imports (default is dry run)"
            echo "  --force       Skip per-store confirmation prompts"
            echo "  --store=NNNNN Run for a single store only (e.g., --store=80744)"
            echo ""
            echo "Stores: ${ALL_STORES[*]}"
            exit 0
            ;;
    esac
done

# Determine which stores to process
if [[ -n "$SINGLE_STORE" ]]; then
    STORES=("$SINGLE_STORE")
else
    STORES=("${ALL_STORES[@]}")
fi

echo ""
echo "=============================================="
echo "  Backstock CSV Batch Import"
echo "=============================================="
echo "  Stores:  ${STORES[*]}"
echo "  Mode:    ${EXECUTE:-DRY RUN}"
echo "=============================================="
echo ""

TOTAL=${#STORES[@]}
CURRENT=0
SUCCEEDED=0
FAILED=0

for STORE_NUM in "${STORES[@]}"; do
    CURRENT=$((CURRENT + 1))
    TYPE_NUM="pc${STORE_NUM}"
    CSV_FILE="uploads/InvSnapshot_${STORE_NUM}_Apr2026.csv"
    FULL_CSV_PATH="$PROJECT_ROOT/$CSV_FILE"

    echo ""
    echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
    echo "  Store $CURRENT/$TOTAL: $TYPE_NUM"
    echo "  CSV: $CSV_FILE"
    echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"

    # Check CSV exists
    if [[ ! -f "$FULL_CSV_PATH" ]]; then
        echo "  [ERR] CSV file not found: $FULL_CSV_PATH"
        FAILED=$((FAILED + 1))
        continue
    fi

    # Run import
    if php "$IMPORT_SCRIPT" --store="$TYPE_NUM" --csv="$CSV_FILE" $EXECUTE $FORCE; then
        SUCCEEDED=$((SUCCEEDED + 1))
    else
        echo "  [ERR] Import failed for $TYPE_NUM"
        FAILED=$((FAILED + 1))

        # In execute mode, ask whether to continue on failure
        if [[ -n "$EXECUTE" && -z "$FORCE" && $CURRENT -lt $TOTAL ]]; then
            echo -n "  Continue with remaining stores? [Y/n]: "
            read -r answer
            if [[ "${answer,,}" == "n" ]]; then
                echo "  Aborted."
                break
            fi
        fi
    fi
done

echo ""
echo "=============================================="
echo "  Batch Complete"
echo "  Succeeded: $SUCCEEDED / $TOTAL"
if [[ $FAILED -gt 0 ]]; then
    echo "  Failed:    $FAILED / $TOTAL"
fi
echo "=============================================="
echo ""
