from django.views.decorators.csrf import csrf_exempt
from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login
from .forms import SignUpForm
from .models import CustomUser
from dashboard.models import Subscription, UsageStats
from django.contrib.auth import get_user_model

@csrf_exempt
def signup_view(request):
    form = SignUpForm(request.POST or None)
    if form.is_valid():
        user = form.save(commit=False)
        user.set_password(form.cleaned_data['password'])
        user.save()

        # Initialize default subscription and usage stats for the new user
        Subscription.objects.create(user=user)
        UsageStats.objects.create(
            user=user,
            download_speed=0.0,
            upload_speed=0.0,
            data_used=0.0,
            devices_connected=0,
            total_spent=0.00
        )

        # Login with custom backend (if needed, specify backend explicitly)
        backend = 'accounts.backends.PhoneAuthBackend'  # Replace with the actual path of your backend
        user.backend = backend  # Set backend for the user
        login(request, user)

        return redirect('dashboard')

    return render(request, 'accounts/signup.html', {'form': form})

@csrf_exempt
def login_view(request):
    if request.method == 'POST':
        phone = request.POST['phone']
        password = request.POST['password']
        user = authenticate(request, phone=phone, password=password)
        if user:
            login(request, user)
            return redirect('dashboard')
    return render(request, 'accounts/login.html')
