<?php
// File: /artist/profile_handler.php
session_start();
require_once __DIR__ . '/../db.php';

ini_set('display_errors', 1);
error_reporting(E_ALL);

if (!isset($_SESSION['user_id'])) {
    die("Access Denied.");
}
$artist_user_id = $_SESSION['user_id'];

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    
    // --- 0. HANDLE PHOTO DELETION (New Feature) ---
    if (isset($_POST['delete_photo_id'])) {
        $photo_id = intval($_POST['delete_photo_id']);
        
        // 1. Get path to delete file from server
        $stmt = $conn->prepare("SELECT image_path FROM artist_achievements WHERE id = ? AND user_id = ?");
        $stmt->bind_param("ii", $photo_id, $artist_user_id);
        $stmt->execute();
        $res = $stmt->get_result();
        
        if ($row = $res->fetch_assoc()) {
            $file_path = __DIR__ . '/../' . $row['image_path'];
            if (file_exists($file_path)) {
                unlink($file_path); // Delete file
            }
            
            // 2. Delete from DB
            $del = $conn->prepare("DELETE FROM artist_achievements WHERE id = ?");
            $del->bind_param("i", $photo_id);
            $del->execute();
        }
        
        header("Location: profile.php?status=deleted");
        exit();
    }

    // --- 1. GET TEXT DATA ---
    $first_name = $_POST['first_name'] ?? '';
    $last_name = $_POST['last_name'] ?? '';
    $phone = $_POST['phone'] ?? '';
    $address = $_POST['address'] ?? '';
    $bio = $_POST['bio'] ?? '';
    $achievements = $_POST['achievements'] ?? '';
    $artist_statement = $_POST['artist_statement'] ?? '';
    $art_specialization = $_POST['art_specialization'] ?? '';
    $subjects = $_POST['subjects'] ?? '';
    $awards = $_POST['awards'] ?? '';
    $additional_notes = $_POST['additional_notes'] ?? '';
    $shop_name = $_POST['shop_name'] ?? '';
    $shop_slug = $_POST['shop_slug'] ?? '';
    $bank_name = $_POST['bank_name'] ?? '';
    $bank_account_iban = $_POST['bank_account_iban'] ?? '';

    // --- 2. UPDATE MAIN PROFILE ---
    $sql = "INSERT INTO artist_profiles 
            (user_id, first_name, last_name, phone, address, bio, achievements, artist_statement, art_specialization, subjects, awards, additional_notes, shop_name, shop_slug, bank_name, bank_account_iban) 
            VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
            ON DUPLICATE KEY UPDATE 
            first_name=?, last_name=?, phone=?, address=?, bio=?, achievements=?, artist_statement=?, art_specialization=?, subjects=?, awards=?, additional_notes=?, shop_name=?, shop_slug=?, bank_name=?, bank_account_iban=?";
    
    $stmt = $conn->prepare($sql);
    $stmt->bind_param("isssssssssssssssssssssssssssss", 
        $artist_user_id, $first_name, $last_name, $phone, $address, $bio, $achievements, $artist_statement, $art_specialization, $subjects, $awards, $additional_notes, $shop_name, $shop_slug, $bank_name, $bank_account_iban,
        $first_name, $last_name, $phone, $address, $bio, $achievements, $artist_statement, $art_specialization, $subjects, $awards, $additional_notes, $shop_name, $shop_slug, $bank_name, $bank_account_iban
    );
    $stmt->execute();
    $stmt->close();

    // --- 3. HANDLE PROFILE PICTURE UPLOAD ---
    if (isset($_FILES['profile_image']) && $_FILES['profile_image']['error'] === UPLOAD_ERR_OK) {
        $upload_dir = __DIR__ . '/../uploads/profiles/';
        if (!is_dir($upload_dir)) mkdir($upload_dir, 0755, true);
        
        $ext = pathinfo($_FILES['profile_image']['name'], PATHINFO_EXTENSION);
        $safe_filename = 'artist_' . $artist_user_id . '_' . uniqid() . '.' . $ext;
        $target_path = $upload_dir . $safe_filename;

        if (move_uploaded_file($_FILES['profile_image']['tmp_name'], $target_path)) {
            $db_path = 'uploads/profiles/' . $safe_filename; 
            $img_stmt = $conn->prepare("UPDATE artist_profiles SET profile_image_path = ? WHERE user_id = ?");
            $img_stmt->bind_param("si", $db_path, $artist_user_id);
            $img_stmt->execute();
            $img_stmt->close();
        }
    }

    // --- 4. HANDLE ACHIEVEMENT PHOTOS ---
    if (!empty($_FILES['achievement_photos']['name'][0])) {
        $ach_target_dir = __DIR__ . '/../uploads/achievements/';
        if (!is_dir($ach_target_dir)) mkdir($ach_target_dir, 0777, true);

        $total_files = count($_FILES['achievement_photos']['name']);

        for ($i = 0; $i < $total_files; $i++) {
            $file_name = $_FILES['achievement_photos']['name'][$i];
            $file_tmp = $_FILES['achievement_photos']['tmp_name'][$i];
            $file_size = $_FILES['achievement_photos']['size'][$i];
            $file_error = $_FILES['achievement_photos']['error'][$i];

            if ($file_error !== UPLOAD_ERR_OK) continue;
            if ($file_size > 102400) continue; // Skip if > 100KB

            $ext = strtolower(pathinfo($file_name, PATHINFO_EXTENSION));
            $new_name = uniqid('ach_' . $artist_user_id . '_') . "." . $ext;
            $target = $ach_target_dir . $new_name;

            if (move_uploaded_file($file_tmp, $target)) {
                $db_path = "uploads/achievements/" . $new_name;
                $stmt_ach = $conn->prepare("INSERT INTO artist_achievements (user_id, image_path) VALUES (?, ?)");
                $stmt_ach->bind_param("is", $artist_user_id, $db_path);
                $stmt_ach->execute();
                $stmt_ach->close();
            }
        }
    }

    header("Location: profile.php?status=success");
    exit();

} else {
    header("Location: profile.php");
    exit();
}
?>