/home3/bmscom/apps.theaffluentman.com/universal_update.php
<?php
require_once 'config/database.php';

echo "<html><head><title>Universal System Update</title>";
echo "<style>body{font-family:sans-serif; background:#f0f2f5; padding:40px;} .success{color:green;} .error{color:red;} .skipped{color:orange;} .card{background:white; padding:20px; border-radius:8px; box-shadow:0 2px 10px rgba(0,0,0,0.1); margin-bottom:20px;}</style></head><body>";
echo "<h1>Universal System Synchronization (v8.5)</h1>";

if ($conn->connect_error) {
    die("<div class='card error'>Connection failed: " . $conn->connect_error . "</div>");
}

function runQuery($conn, $sql) {
    if ($conn->query($sql) === TRUE) {
        echo "<div class='success'>✅ Success: " . htmlspecialchars($sql) . "</div>";
    } else {
        if (strpos($conn->error, "Duplicate column") !== false) {
             echo "<div class='skipped'>ℹ️ Skipped (Already exists): " . htmlspecialchars($sql) . "</div>";
        } else {
             echo "<div class='error'>❌ Error: " . $conn->error . "</div>";
        }
    }
}

// 1. Create Users Table
echo "<div class='card'><h3>1. User Role System</h3>";
$sql_users = "CREATE TABLE IF NOT EXISTS `users` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `username` varchar(100) NOT NULL UNIQUE,
    `password` varchar(255) NOT NULL,
    `role` enum('admin', 'tailor', 'worker') NOT NULL DEFAULT 'worker',
    `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;";
runQuery($conn, $sql_users);

// Insert default Admin
$admin_user = 'admin';
$admin_pass = password_hash('admin123', PASSWORD_DEFAULT);
$check_admin = $conn->query("SELECT id FROM users WHERE username = '$admin_user'");
if ($check_admin->num_rows === 0) {
    $conn->query("INSERT INTO users (username, password, role) VALUES ('$admin_user', '$admin_pass', 'admin')");
    echo "<div class='success'>✅ Default admin user created (Username: admin, Password: admin123).</div>";
}
// Insert Tailor & Worker if empty
$count = $conn->query("SELECT COUNT(*) as count FROM users")->fetch_assoc()['count'];
if ($count <= 1) {
    $tailor_pass = password_hash('tailor123', PASSWORD_DEFAULT);
    $worker_pass = password_hash('worker123', PASSWORD_DEFAULT);
    $conn->query("INSERT INTO users (username, password, role) VALUES ('tailor', '$tailor_pass', 'tailor')");
    $conn->query("INSERT INTO users (username, password, role) VALUES ('worker', '$worker_pass', 'worker')");
    echo "<div class='success'>✅ Sample 'tailor' and 'worker' users created.</div>";
}
echo "</div>";

// 2. Order Table Schema Updates
echo "<div class='card'><h3>2. Schema Updates (v6 & v8)</h3>";
$alter_queries = [
    // Core Columns
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS gender varchar(20) DEFAULT 'man'",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS status varchar(50) DEFAULT 'pending'",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS item_number_total varchar(50) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS item_number_current varchar(50) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS lapel_width_inches varchar(50) DEFAULT NULL",
    
    // Vest
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS vest_style varchar(100) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS vest_fabric_color varchar(100) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS vest_fabric_number varchar(100) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS vest_notes text DEFAULT NULL",
    
    // Shirt
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS shirt_neck varchar(50) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS shirt_sleeve_measure varchar(50) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS shirt_chest varchar(50) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS shirt_back varchar(50) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS shirt_length_measure varchar(50) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS shirt_back_shoulder varchar(50) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS shirt_fabric_color_number varchar(100) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS shirt_cuff_type varchar(100) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS shirt_cuff_style varchar(100) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS shirt_embroidery varchar(50) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS shirt_embroidery_color varchar(100) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS shirt_embroidery_size varchar(100) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS shirt_notes text DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS pants_notes text DEFAULT NULL",

    // Women's Measurements
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS w_shoulder_to_bust varchar(50) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS w_front_length varchar(50) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS w_jacket_length varchar(50) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS w_skirt_length varchar(50) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS w_top_coat_length varchar(50) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS w_high_shoulders varchar(50) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS w_low_shoulders varchar(50) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS w_back_length varchar(50) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS w_bust varchar(50) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS w_bust_width varchar(50) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS w_waist varchar(50) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS w_hips varchar(50) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS w_sleeves varchar(50) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS w_cuff varchar(50) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS w_neck varchar(50) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS w_slack_out_seam varchar(50) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS w_slack_inseam varchar(50) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS w_slack_cuff varchar(50) DEFAULT NULL",
    "ALTER TABLE orders ADD COLUMN IF NOT EXISTS w_figure_type varchar(100) DEFAULT NULL"
];

foreach ($alter_queries as $sql) {
    runQuery($conn, $sql);
}
echo "</div>";

echo "<h2>Synchronization Complete!</h2>";
echo "<p>Please delete this file (<code>universal_update.php</code>) from your server for security.</p>";
echo "<br><a href='admin/login.php' style='background:#0b0f1a; color:white; padding:15px 30px; text-decoration:none; border-radius:4px;'>Go to Admin Login</a>";
echo "</body></html>";
?>