<?php

namespace App\Http\Controllers\Shop;

use App\Http\Controllers\Controller;
use App\Models\Order;
use Illuminate\Http\Request;

class OrderController extends Controller
{
    /**
     * Afficher la page de succès de commande
     */
    public function success(Order $order)
    {
        try {
            // Charger les items de la commande
            $order->load('orderItems');
            
            // Vérifier que la commande existe et a été créée
            if ($order && $order->id) {
                // Message de succès avec détails de la commande
                $message = "✅ Commande #{$order->order_number} reçue ! Votre commande est en cours de traitement. " . 
                           "Montant: " . number_format($order->total_amount, 0, ',', ' ') . ' XOF';
                
                // Rediriger vers le panel member avec le message de succès
                return redirect()->route('member.dashboard')->with('success', $message);
            }
            
            // Fallback si pas de commande
            return redirect()->route('member.dashboard')->with('info', 'Votre commande est en cours de traitement.');
            
        } catch (\Exception $e) {
            \Log::error('Order success page error', [
                'order_id' => $order->id ?? null,
                'error' => $e->getMessage(),
                'trace' => $e->getTraceAsString()
            ]);
            
            // Rediriger avec message informatif au lieu d'erreur
            return redirect()->route('member.dashboard')->with('info', 'Votre commande est en cours de traitement.');
        }
    }

    /**
     * Afficher les détails d'une commande
     */
    public function show(Order $order)
    {
        try {
            // Charger les items de la commande
            $order->load('orderItems');
            
            return view('shop.order-details', compact('order'));
        } catch (\Exception $e) {
            \Log::error('Order details page error', [
                'order_id' => $order->id ?? null,
                'error' => $e->getMessage(),
                'trace' => $e->getTraceAsString()
            ]);
            return redirect()->route('shop.index')->with('error', 'Une erreur est survenue.');
        }
    }
}
