from django.shortcuts import render, redirect
from .forms import *
from django.contrib import messages
from django.contrib.auth.decorators import login_required
from payments.views import create_transaction
from payments.models import Payment
from django.db.models import Q
# Create your views here.
@login_required
def event_list(request):
    events = Event.objects.all()
    return render(request, 'events/event_list.html', {'events': events})

@login_required
def event_create(request):
    form = EventForm()
    if request.method == 'POST':
        form = EventForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            messages.success(request, "évènement ajouté avec succès")
            return redirect('event_list')
    return render(request, 'events/create_event.html')

@login_required
def create_stand(request):
    form = StandForm()
    if request.method == 'POST':
        form = StandForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            messages.success(request, "stand ajouté avec succès")
            return redirect('event_list')
    return render(request, 'events/create_stand.html', {'form': form})


@login_required
def event_detail(request, pk):
    event = Event.objects.get(id=pk)
    stands = Stand.objects.filter(event_id=pk, stock__gt=0)
    return render(request, 'events/event_details.html', {'event': event, 'stands': stands})


@login_required
def stand_booking(request, pk):
    stand = Stand.objects.get(id=pk)  
    event = stand.event
    product_data = {"name": f"Stand {stand.type}", "description":stand.description}
    
    checkout_session = create_transaction(product_data, stand.price)    
    Booking.objects.create(
        stripe_checkout_id=checkout_session.id, 
        stand=stand,
        user=request.user,
        event=event,
    )
    return redirect(checkout_session.url)

      
