from django.shortcuts import render, redirect
from django.views import View   
from django.contrib.auth.mixins import LoginRequiredMixin
from settings.views import get_company_data
from .forms import PhotoForm
from . models import *
from django.core.paginator import Paginator
import os
from django.conf import settings
from django.shortcuts import get_object_or_404, redirect



# Create your views here.


class slider_images(LoginRequiredMixin,View):
    def get(self, request):
        photos = Images.objects.all()
        pages = request.GET.get('page_count', 0)
        page_list = [10, 20, 50, 100, 500]

        
        if int(pages) in page_list:
            page_passed = pages
        else:
            page_passed = 10


        count = len(photos)
        paginator = Paginator(photos, page_passed)
        page_number = request.GET.get('page', 1)
        page_obj = paginator.get_page(page_number)
        
        context = {"photos": photos,"page_obj":page_obj,"title":"Users","company_data":get_company_data(),'title': "Slider Images",'pageview':"Slider Images"}

    
        return render(request, 'menu/slider_images/slider_images.html',context)
    

class upload_photos(LoginRequiredMixin,View):
    def get(self, request):
        greeting = {}
        greeting['title'] = " Add Slider Images"
        greeting['pageview'] = " Add Slider Images"   
        greeting['company_data'] = get_company_data()       
        return render(request, 'menu/slider_images/add_slider_images.html',greeting)
    
    def post(self, request):
        if request.method == 'POST':
            form = PhotoForm(request.POST, request.FILES)
            
            if form.is_valid():
                form.save()
                return redirect('slider_images')  # Redirect to a success page after uploading
            else:
                form = PhotoForm()
                greeting = {}
                greeting['title'] = " Add Slider Images"
                greeting['pageview'] = " Add Slider Images"   
                greeting['company_data'] = get_company_data()  
            return render(request, 'menu/slider_images/add_slider_images.html', {'form': form,'title':"Add Slider Images","pageview":"Add Slider Images","company_data":get_company_data()})
            


class delete_photos(LoginRequiredMixin,View):
    def get(self, request, id):
        image = get_object_or_404(Images, id=id)
        media_file_path = os.path.join(settings.MEDIA_ROOT, image.image.name)

        # Check if the media file exists
        if os.path.exists(media_file_path):
            # Remove the media file
            os.remove(media_file_path)
            print("Media file removed successfully.")
             
        image.delete() 
        return redirect('slider_images')