import logging

from django.views import View
from django.conf import settings
from django.http import JsonResponse
from django.shortcuts import render, redirect
from django.core.mail.message import EmailMessage

from apps.subscriptions.models import Plan, PlanType

logger = logging.getLogger(__file__)

# Create your views here.

def is_ajax(request):
    return request.META.get('HTTP_X_REQUESTED_WITH') == 'XMLHttpRequest'

class ProfileView(View):
    """ Index view """
    def get(self, request, *args, **kwargs):
        # code to process a GET request:
        if not request.user.is_authenticated:
            
            return redirect("landing:index")
        context = {
            "page": "overview",
        }
        template = "profiles/overview.html"
        return render(request, template, context)

    def post(self, request, *args, **kwargs):
        # code to process a POST request
        if request.user.is_authenticated:
            pass
    

class SettingsView(View):
    """ Settings view """
    def get(self, request, *args, **kwargs):
        # code to process a GET request:
        if not request.user.is_authenticated:
            return redirect("landing:index")
        context = {
            "page": "settings",
        }
        template = "profiles/settings.html"
        return render(request, template, context)

    def post(self, request, *args, **kwargs):
        # code to process a POST request
        if not request.user.is_authenticated:
            return redirect("landing:index")
        if is_ajax(request):
            profile = request.user.profile
            if request.FILES:
                avatar = request.FILES.get("avatar")
                if avatar:
                    profile.avatar = avatar
                    profile.save()
            country = request.POST.get("country")
            if country:
                profile.country = country
                profile.save()
            first_name = request.POST.get("first_name")
            last_name = request.POST.get("last_name")
            if first_name and last_name:
                request.user.first_name = first_name
                request.user.last_name = last_name
                request.user.save()
            logger.info(request.POST)
            return JsonResponse({'status':"success",'message':"Your profile information is updated"})
        else:
            pass
 
class SecurityView(View):
    """ Settings view """
    def get(self, request, *args, **kwargs):
        # code to process a GET request:
        if not request.user.is_authenticated:
            return redirect("landing:index")
        context = {
            "page": "security",
        }
        template = "profiles/security.html"
        return render(request, template, context)

    def post(self, request, *args, **kwargs):
        # code to process a POST request
        if request.user.is_authenticated:
            pass

class BillingView(View):
    """ Settings view """
    def get(self, request, *args, **kwargs):
        # code to process a GET request:
        if not request.user.is_authenticated:
            return redirect("landing:index")
        context = {
            "page": "subscription",
        }
        template = "profiles/billing.html"
        return render(request, template, context)

    def post(self, request, *args, **kwargs):
        # code to process a POST request
        if request.user.is_authenticated:
            pass

class StatementsView(View):
    """ Settings view """
    def get(self, request, *args, **kwargs):
        # code to process a GET request:
        if not request.user.is_authenticated:
            return redirect("landing:index")
        context = {
            "page": "statements",
        }
        template = "profiles/statements.html"
        return render(request, template, context)

    def post(self, request, *args, **kwargs):
        # code to process a POST request
        if request.user.is_authenticated:
            pass

class LogsView(View):
    """ Settings view """
    def get(self, request, *args, **kwargs):
        # code to process a GET request:
        if not request.user.is_authenticated:
            return redirect("landing:index")
        context = {
            "page": "logs",
        }
        template = "profiles/logs.html"
        return render(request, template, context)

    def post(self, request, *args, **kwargs):
        # code to process a POST request
        if request.user.is_authenticated:
            pass
