from django.shortcuts import render,redirect
from django.views import View
from django.views.decorators.cache import cache_control
from django.utils.decorators import method_decorator
from usermanagement.models import UserProfile
from codesofy_lib.custom_config import set_user_profile,get_months_dic,get_privilleges,is_authorized,set_menu_items,get_global_master_details,get_local_date
from datetime import date
from django.db.models import Q,F
from django.db.models import Sum,Count
from django.db.models.functions import Coalesce
from codesofy_lib.master_details import InvoiceStatus,PaymentMethod,ItemType,PaymentStatus,SRNStatus
from django.db import transaction, IntegrityError
from django.contrib import messages
from django.db.models import DecimalField, ExpressionWrapper,FloatField
from django.db.models.functions import Cast

# Create your views here.

menu_item = "dashboard"

def set_sub_menu_item(sub_menu_item,context):
    context = set_menu_items(menu_item,sub_menu_item,context)
    return context

def get_local_master_details():
    context = get_global_master_details()
    return context


    


@method_decorator(cache_control(no_cache=True, must_revalidate=True,no_store=True), name='dispatch')
class WelcomeView(View):

    user_dashboard = "user_dashboard"
    back_office_dashboard = "back_office_dashboard"
    
    def get(self, request):

        context = get_local_master_details()

        user_profile = set_user_profile(request,context)

        if user_profile==None:
            return redirect('login')

        get_privilleges(user_profile,context)

        if is_authorized(user_profile,self.user_dashboard):
            return redirect('user-dashboard')
        elif is_authorized(user_profile,self.back_office_dashboard):
            return redirect('back-office-dashboard')
        else:
            return render(request, 'welcome.html',context)

