#!/bin/bash

# ============================================
# MASTER SYNC - ALL FILES (BitCo & Link Africa)
# Includes: company, contracts, location, resource, 
#           service_manager, service, sub_account, vendor
# ============================================

echo "=========================================="
echo "MASTER SYNC - ALL SYSTEMS (including Vendor)"
echo "=========================================="
echo "Started: $(date '+%Y-%m-%d %H:%M:%S')"
echo ""

LOG_FILE="/var/www/html/logs/sync_all_$(date +%Y%m%d_%H%M%S).log"
mkdir -p /var/www/html/logs

# Function to run a sync script
run_sync() {
    local script_path=$1
    local name=$2
    
    # Check if file exists
    if [ ! -f "$script_path" ]; then
        echo "  ⚠ File not found: $script_path (skipping)"
        return 1
    fi
    
    echo "----------------------------------------"
    echo "▶ Running: $name"
    echo "  Script: $script_path"
    
    timeout 300 php -r "
        \$_SERVER['REQUEST_METHOD'] = 'POST';
        \$_SERVER['HTTP_AUTHORIZATION'] = 'NDUzY2RlYzFhMWRhNTAU9xZDhhYzI0YTA5MTcTA3NTE2OA==';
        \$_POST = [];
        include('$script_path');
    " 2>&1 | tee -a "$LOG_FILE" | grep -E "Inserted|Updated|success|completed|record" || echo "  Completed"
    
    local exit_code=$?
    
    if [ $exit_code -eq 0 ] || [ $exit_code -eq 124 ]; then
        echo "  ✓ $name completed"
    else
        echo "  ⚠ $name had issues (exit: $exit_code)"
    fi
    echo ""
}

# ============================================
# BITCO SYNC (upload directory)
# ============================================
echo "=========================================="
echo "BITCO SYNC (System ID: 1)"
echo "=========================================="
echo ""

run_sync "/var/www/html/upload/company.php" "BitCo - Company"
run_sync "/var/www/html/upload/contracts.php" "BitCo - Contracts (with NRC)"
run_sync "/var/www/html/upload/location.php" "BitCo - Location"
run_sync "/var/www/html/upload/resource.php" "BitCo - Resource"
run_sync "/var/www/html/upload/service_manager.php" "BitCo - Service Manager"
run_sync "/var/www/html/upload/service.php" "BitCo - Service"
run_sync "/var/www/html/upload/sub_account.php" "BitCo - Sub Account"
run_sync "/var/www/html/upload/vendor.php" "BitCo - Vendor"

# ============================================
# LINK AFRICA SYNC (upload_la directory)
# ============================================
echo "=========================================="
echo "LINK AFRICA SYNC (System ID: 2)"
echo "=========================================="
echo ""

run_sync "/var/www/html/upload_la/company.php" "Link Africa - Company"
run_sync "/var/www/html/upload_la/contracts.php" "Link Africa - Contracts (with NRC)"
run_sync "/var/www/html/upload_la/location.php" "Link Africa - Location"
run_sync "/var/www/html/upload_la/service.php" "Link Africa - Service"
run_sync "/var/www/html/upload_la/sub_account.php" "Link Africa - Sub Account"
run_sync "/var/www/html/upload_la/users.php" "Link Africa - Users"
run_sync "/var/www/html/upload_la/vendor.php" "Link Africa - Vendor"

# ============================================
# UPDATE NULL NRC VALUES IN CENTRAL DB
# ============================================
echo "=========================================="
echo "UPDATING NULL NRC VALUES"
echo "=========================================="

mysql -h localhost -u bitco1 -p'1ST8LCc9*bQ#5%3JSXE' data_mart << SQLEOF 2>/dev/null
-- Update any remaining NULL NRC to 0
UPDATE contract SET NRC = 0, lastupdated = NOW() WHERE NRC IS NULL;

-- Show final summary
SELECT 
    'FINAL SUMMARY' as Status,
    systemId,
    CASE systemId
        WHEN 1 THEN 'BitCo'
        WHEN 2 THEN 'Link Africa'
        ELSE 'Other'
    END as System,
    COUNT(*) as total_records,
    SUM(CASE WHEN NRC IS NULL THEN 1 ELSE 0 END) as null_nrc,
    SUM(CASE WHEN NRC = 0 THEN 1 ELSE 0 END) as zero_nrc,
    SUM(CASE WHEN NRC > 0 THEN 1 ELSE 0 END) as has_nrc_value
FROM contract 
WHERE systemId IN (1, 2)
GROUP BY systemId;
SQLEOF

echo ""
echo "=========================================="
echo "SYNC COMPLETED"
echo "=========================================="
echo "Completed: $(date '+%Y-%m-%d %H:%M:%S')"
echo "Log file: $LOG_FILE"
echo "=========================================="
