from .models import NewModel

from django.shortcuts import render, get_object_or_404, redirect
# from .models import Category, Product, Cart, CartItem, Order, OrderItem, Review
from django.core.exceptions import ObjectDoesNotExist
# import stripe
from django.conf import settings
from django.contrib.auth.models import Group, User
# from accounts.forms import SignUpForm, ContactForm
from accounts.forms import SignUpForm

from django.contrib.auth.forms import AuthenticationForm
from django.contrib.auth import login, authenticate, logout
from django.contrib.auth.decorators import login_required



def index(request):
    return render(request, 'carrentals_app/index.html', {})

def about(request):
    return render(request, 'carrentals_app/about.html',{})

def blog(request):
    return render(request, 'carrentals_app/blog.html',{})

def listing(request):
    return render(request, 'carrentals_app/listing.html',{})

def contact(request):
    return render(request, 'carrentals_app/contact.html',{})

def main(request):
    return render(request, 'carrentals_app/main.html',{})

def single(request):
    return render(request, 'carrentals_app/single.html',{})

def testimonials(request):
    return render(request, 'carrentals_app/testimonials.html',{})




def signupView(request):
    if request.method == 'POST':
        form = SignUpForm(request.POST)
        if form.is_valid():
            form.save()
            username = form.cleaned_data.get('username')
            signup_user = User.objects.get(username=username)
            customer_group = Group.objects.get(name='Customer')
            customer_group.user_set.add(signup_user)
            login(request, signup_user)
    else:
        form = SignUpForm()
    return render(request, 'signup.html', {'form': form})


def signinView(request):
    if request.method == 'POST':
        form = AuthenticationForm(data=request.POST)
        if form.is_valid():
            username = request.POST['username']
            password = request.POST['password']
            user = authenticate(username=username, password=password)
            if user is not None:
                login(request, user)
                return redirect('home')
            else:
                return redirect('signup')
    else:
        form = AuthenticationForm()
    return render(request, 'signin.html', {'form': form})


def signoutView(request):
    logout(request)
    return redirect('signin')

