from django.shortcuts import render, redirect, get_object_or_404
from django.contrib.auth.decorators import login_required
from .models import CustomerOrder, CustomerOrderItem
from inventory.models import Product


@login_required
def order_history(request):
    orders = CustomerOrder.objects.filter(customer=request.user).order_by('-created_at')
    return render(request, 'customer_orders/order_history.html', {'orders': orders})


@login_required
def order_detail(request, order_id):
    order = get_object_or_404(CustomerOrder, id=order_id, customer=request.user)
    return render(request, 'customer_orders/order_detail.html', {'order': order})


@login_required
def create_order(request):
    if request.method == 'POST':
        # Logic for creating an order
        cart = request.session.get('cart', {})
        if not cart:
            return redirect('cart')  # Redirect to the cart page if empty

        order = CustomerOrder.objects.create(customer=request.user, total_amount=0)
        total_amount = 0

        for product_id, quantity in cart.items():
            product = get_object_or_404(Product, id=product_id)
            CustomerOrderItem.objects.create(order=order, product=product, quantity=quantity, price=product.selling_price)
            total_amount += product.selling_price * quantity

        order.total_amount = total_amount
        order.save()

        # Clear the cart
        request.session['cart'] = {}

        return redirect('customer_orders:order_history')
    return redirect('cart')
