from .models import *
import pandas as pd
from MNF.settings import BasePath
from django.http import HttpResponse
basePath = BasePath()

def create_juggernaut_models(user_object, service_name):
    df = pd.read_excel(f'{basePath}/juggernaut/juggernaut_package.xlsx')
    production_package = ['Radiate','Regionalise','Globalise']
    screen_package = ['Longjump','Triplejump','Highjump']
    if JuggernautPackage.objects.filter(user_id = user_object).exists():
        if JuggernautPackage.objects.filter(user_id = user_object).count() ==2 :
            dual_package=JuggernautPackage.objects.filter(user_id = user_object)
            for i in dual_package:
                if (i.package_name in production_package and service_name in production_package) or (i.package_name in screen_package and service_name in screen_package):
                    jp = i 
                    break
        else:
            jp = JuggernautPackage.objects.get(user_id = user_object) #if user will take more than 2 package #change
        
        if (jp.package_name in production_package and service_name in production_package) or (jp.package_name in screen_package and service_name in screen_package):
            print("in if condition")

            for i,row in df.iterrows():
                if row['juggernaut_package'] == service_name:
                    if jp.validity_days <= row['Validity_Days']:
                        jp.validity_days = row['Validity_Days']
                    jp.package_name += service_name
                    jp.price += row['Price']
                    jp.beat_scene_generation += row['beat_scene_generation']
                    jp.beat_scene_generation_initial += row['beat_scene_generation']
                    jp.conversion_pages +=row['conversion_pages']
                    jp.conversion_pages_initial +=row['conversion_pages']
                    jp.subtitling_minutes +=row['subtitling_minutes']
                    jp.subtitling_minutes_initial +=row['subtitling_minutes']
                    jp.scheduling_and_budget_projects +=row['scheduling_and_budget_projects']
                    jp.scheduling_and_budget_projects_initial +=row['scheduling_and_budget_projects']
                    jp.pitchdeck_one_pager +=row['pitchdeck_one_pager']
                    jp.pitchdeck_elevator +=row['pitchdeck_elevator']
                    jp.pitchdeck_screenplay +=row['pitchdeck_screenplay']
                    jp.narrarion_character_intro +=row['narrarion_character_intro']
                    jp.narrarion_line_by_line +=row['narrarion_line_by_line']
                    jp.narrarion_characterwise +=row['narrarion_characterwise']
                    jp.conversion_iteration +=row['conversion_iterations']
                    jp.conversion_languages +=row['conversion_Languages']
                    jp.subtitling_iteration +=row['subtitling_iterations']
                    jp.subtitling_languages += row['subtitling_languages']
                    print("merged data")
                    break
        else:  
            print("creating new one package of juggernaut")
            jp = JuggernautPackage()
            jp.user_id = user_object
            jp.package_name = service_name
            print(user_object,"user_object")

            for i,row in df.iterrows():
                if row['juggernaut_package'] == service_name:
                    jp.validity_days =row['Validity_Days']
                    jp.price = row['Price']
                    jp.beat_scene_generation = row['beat_scene_generation']
                    jp.beat_scene_generation_initial = row['beat_scene_generation']
                    jp.conversion_pages =row['conversion_pages']
                    jp.conversion_pages_initial =row['conversion_pages']
                    jp.subtitling_minutes =row['subtitling_minutes']
                    jp.subtitling_minutes_initial =row['subtitling_minutes']
                    jp.scheduling_and_budget_projects =row['scheduling_and_budget_projects']
                    jp.scheduling_and_budget_projects_initial =row['scheduling_and_budget_projects']
                    jp.pitchdeck_one_pager =row['pitchdeck_one_pager']
                    jp.pitchdeck_elevator =row['pitchdeck_elevator']
                    jp.pitchdeck_screenplay =row['pitchdeck_screenplay']
                    jp.narrarion_character_intro =row['narrarion_character_intro']
                    jp.narrarion_line_by_line =row['narrarion_line_by_line']
                    jp.narrarion_characterwise =row['narrarion_characterwise']
                    jp.conversion_iteration =row['conversion_iterations']
                    jp.conversion_languages =row['conversion_Languages']
                    jp.subtitling_iteration =row['subtitling_iterations']
                    jp.subtitling_languages = row['subtitling_languages']
                    break
    else:  
        print("creating new one package of juggernaut")
        jp = JuggernautPackage()
        jp.user_id = user_object
        jp.package_name = service_name
        print(user_object,"user_object")

        for i,row in df.iterrows():
            if row['juggernaut_package'] == service_name:
                jp.validity_days =row['Validity_Days']
                jp.price = row['Price']
                jp.beat_scene_generation = row['beat_scene_generation']
                jp.beat_scene_generation_initial = row['beat_scene_generation']
                jp.conversion_pages =row['conversion_pages']
                jp.conversion_pages_initial =row['conversion_pages']
                jp.subtitling_minutes =row['subtitling_minutes']
                jp.subtitling_minutes_initial =row['subtitling_minutes']
                jp.scheduling_and_budget_projects =row['scheduling_and_budget_projects']
                jp.scheduling_and_budget_projects_initial =row['scheduling_and_budget_projects']
                jp.pitchdeck_one_pager =row['pitchdeck_one_pager']
                jp.pitchdeck_elevator =row['pitchdeck_elevator']
                jp.pitchdeck_screenplay =row['pitchdeck_screenplay']
                jp.narrarion_character_intro =row['narrarion_character_intro']
                jp.narrarion_line_by_line =row['narrarion_line_by_line']
                jp.narrarion_characterwise =row['narrarion_characterwise']
                jp.conversion_iteration =row['conversion_iterations']
                jp.conversion_languages =row['conversion_Languages']
                jp.subtitling_iteration =row['subtitling_iterations']
                jp.subtitling_languages = row['subtitling_languages']
                break
            
            
    jp.save()
    return HttpResponse("Done transposed")