#!/bin/bash

# William Fabric Build Script
# This script builds CSS and JS assets when Vite is not available

echo "🔨 Building William Fabric Assets..."

# Create build directories
mkdir -p public/build/assets

# Build CSS - combine Tailwind utilities with custom styles
echo "📦 Building CSS..."
cat > public/build/assets/app.css << 'EOF'
/* Tailwind CSS Base & Reset */
*,::before,::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}
::before,::after{--tw-content:''}
html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;font-feature-settings:normal;font-variation-settings:normal}
body{margin:0;line-height:inherit}

/* Tailwind Utilities */
.font-sans{font-family:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif}
.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.bg-white{background-color:rgb(255 255 255)}
.bg-blue-600{background-color:rgb(37 99 235)}
.bg-gray-100{background-color:rgb(243 244 246)}
.text-white{color:rgb(255 255 255)}
.text-gray-900{color:rgb(17 24 39)}
.px-4{padding-left:1rem;padding-right:1rem}
.py-2{padding-top:0.5rem;padding-bottom:0.5rem}
.p-6{padding:1.5rem}
.rounded{border-radius:0.25rem}
.rounded-md{border-radius:0.375rem}
.shadow{box-shadow:0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)}
.flex{display:flex}
.items-center{align-items:center}
.justify-center{justify-content:center}
.w-full{width:100%}
.h-screen{height:100vh}
.min-h-screen{min-height:100vh}

/* Custom William Fabric Styles */
EOF

# Append custom CSS from resources/css/app.css
if [ -f "resources/css/app.css" ]; then
    echo "/* Custom Styles from resources/css/app.css */" >> public/build/assets/app.css
    cat resources/css/app.css >> public/build/assets/app.css
fi

# Build JS - create a bundle
echo "📦 Building JavaScript..."
cat > public/build/assets/app.js << 'EOF'
// William Fabric Application JavaScript Bundle

// Bootstrap functionality
if (typeof window.axios === 'undefined' && typeof axios !== 'undefined') {
    window.axios = axios;
    axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
    
    let token = document.head.querySelector('meta[name="csrf-token"]');
    if (token) {
        axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
    }
}

// Load Alpine.js
if (typeof window.Alpine === 'undefined') {
    const script = document.createElement('script');
    script.src = '/alpine.min.js';
    script.defer = true;
    document.head.appendChild(script);
}

// Application initialization
document.addEventListener('DOMContentLoaded', function() {
    console.log('William Fabric Application Initialized');
});
EOF

# Update manifest.json
echo "📝 Updating manifest..."
cat > public/build/manifest.json << 'EOF'
{
  "resources/css/app.css": {
    "file": "assets/app.css",
    "src": "resources/css/app.css",
    "isEntry": true
  },
  "resources/js/app.js": {
    "file": "assets/app.js",
    "src": "resources/js/app.js",
    "isEntry": true
  }
}
EOF

echo "✅ Build completed successfully!"
echo "📁 Assets built to public/build/"
