from django.shortcuts import render
# from dj_static1.models import Banner
from django.shortcuts import render
from ad_static.models import Service  # adjust import path as needed
from ad_static.models import Banner
from ad_static.models import Gallery  # both imported


# def home(request):
#     return render(request, 'frontend/content/home.html')

# def about(request):
#     return render(request, 'frontend/content/aboutus.html')
def about1(request):
    return render(request, 'frontend/content/aboutus1.html')

def services(request):
    return render(request, 'frontend/content/service.html')

def projects(request):
    return render(request, 'frontend/content/projects.html')

def pricing(request):
    return render(request, 'frontend/content/pricing.html')
def vaastu(request):
    return render(request, 'frontend/content/vaastu.html')

def contacts(request):
    return render(request, 'frontend/content/contacts.html')




def home(request):
    type1_banner = Banner.objects.filter(type=1).first()
    context = {
        "type1_banner": type1_banner
    }
    return render(request, 'frontend/content/home.html', context)

def about1(request):
    banner = Banner.objects.filter(type=2).first()
    return render(request, 'frontend/content/aboutus1.html', {'banner': banner})
# def retail(request):
#     # banner = Banner.objects.filter(type=2).first()
#     return render(request, 'frontend/content/retail.html')

#     # banner = Banner.objects.filter(type=2).first()
#     return render(request, 'frontend/content/commercial.html')

def services(request):
    banner = Banner.objects.filter(type=3).first()
    return render(request, 'frontend/content/service.html', {'banner': banner})
def projects(request):
    banner = Banner.objects.filter(type=4).first()
    
    # Get all services that have active galleries
    services_with_galleries = Service.objects.filter(
        gallery_images__status=True
    ).distinct().prefetch_related(
        'gallery_images'
    ).order_by('service_title')
    
    context = {
        'services': services_with_galleries,
        'banner': banner,
    }
    return render(request, 'frontend/content/projects.html', context)
# def projects(request):
#     banner = Banner.objects.filter(type=4).first()
#     gallery = Gallery.objects.filter(status=True).order_by('id')
#       # show all active galleries
#     context = {
#         'gallery': gallery,
#         'banner': banner,
#     }
#     return render(request, 'frontend/content/projects.html', context)

# def projects(request):
    
#     banner = Banner.objects.filter(type=4).first()  
#     gallery = Gallery.objects.all().order_by('id') 
#     print(gallery, "galletset")
    
#     context = {
#         'gallery': gallery,
#         'banner': banner,   
#     }
#     return render(request, 'frontend/content/projects.html', context)
    # banner = Banner.objects.filter(type=4).first()
    # return render(request, 'frontend/content/projects.html', {'banner': banner})

def vaastu(request):
    banner = Banner.objects.filter(type=5).first()
    return render(request, 'frontend/content/vaastu.html', {'banner': banner})

# def contacts(request):
#     banner = Banner.objects.filter(type=6).first()
#     return render(request, 'frontend/content/contacts.html', {'banner': banner})




#service
# frontend/views.py

def services_page(request):
    services = Service.objects.filter(status=True).order_by('id')
    banner = Banner.objects.filter(type=3).first()   
    # print(services, "set")
    
    context = {
        'services': services,
        'banner': banner,   
    }
    return render(request, 'frontend/content/service.html', context)

from django.shortcuts import render, redirect
from ad_static.models import Banner, Enquiry
from django.shortcuts import render, redirect
from django.core.mail import send_mail
from django.conf import settings
# from .models import Banner, Enquiry

from django.shortcuts import render, redirect
from django.core.mail import send_mail
from django.conf import settings
# from .models import Banner, Enquiry
import requests
from django.conf import settings

def contacts(request):
    banner = Banner.objects.filter(type=4).first()
    form_data = {}
    errors = {}
    success = False

    if request.method == "POST":
        form_data = {
            'name': request.POST.get('name', '').strip(),
            'phone_number': request.POST.get('phone_number', '').strip(),
            'email': request.POST.get('email', '').strip(),
            'message': request.POST.get('message', '').strip(),
        }

        # Backend validation
        if not form_data['name']:
            errors['name'] = "Name is required."
        if not form_data['phone_number']:
            errors['phone_number'] = "Phone number is required."
        if not form_data['email']:
            errors['email'] = "Email is required."
        if not form_data['message']:
            errors['message'] = "Message is required."

        # ----------- reCAPTCHA VALIDATION ------------
        recaptcha_token = request.POST.get('g-recaptcha-response')

        if not recaptcha_token:
            errors['captcha'] = "Please complete the CAPTCHA."

        else:
            captcha_data = {
                'secret': settings.GOOGLE_RECAPTCHA_SECRET_KEY,
                'response': recaptcha_token
            }
            google_result = requests.post(
                'https://www.google.com/recaptcha/api/siteverify',
                data=captcha_data
            ).json()

            if not google_result.get('success'):
                errors['captcha'] = "Invalid CAPTCHA. Please try again."

        # ------------------------------------------------

        if not errors:
            enquiry = Enquiry.objects.create(**form_data)
            success = True

            # Send thank-you mail to user
            send_mail(
                subject="Thank You for Contacting Us!",
                message=(
                    f"Hi {enquiry.name},\n\n"
                    "Thank you for reaching out to us.\n"
                    "We will get back to you soon.\n\n"
                    "Best Regards,\nYour Company Team"
                ),
                from_email=settings.DEFAULT_FROM_EMAIL,
                recipient_list=[enquiry.email],
                fail_silently=True,
            )

            # Notify admin
            send_mail(
                subject="New Enquiry Received",
                message=(
                    f"New enquiry received:\n\n"
                    f"Name: {enquiry.name}\n"
                    f"Email: {enquiry.email}\n"
                    f"Phone: {enquiry.phone_number}\n"
                    f"Message:\n{enquiry.message}"
                ),
                from_email=settings.DEFAULT_FROM_EMAIL,
                recipient_list=[settings.DEFAULT_FROM_EMAIL],
                fail_silently=True,
            )

    context = {
        'banner': banner,
        'form_data': form_data,
        'errors': errors,
        'success': success,
        'site_key': settings.GOOGLE_RECAPTCHA_SITE_KEY,
    }
    return render(request, 'frontend/content/contacts.html', context)

def residentail(request):
    services = Service.objects.filter(status=True)  
    banner = None  # Or Banner.objects.filter(type=2).first()

    context = {
        'services': services,
        'banner': banner,
    }
    # banner = Banner.objects.filter(type=2).first()
    return render(request, 'frontend/content/residential.html', context)

# def commercial(request):
def retail(request):
    services = Service.objects.filter(status=True)  
    # banner = Banner.objects.filter(type=4).first()
    banner = None  # Or Banner.objects.filter(type=2).first()

    return render(request, "frontend/content/retail.html", {
        "services": services,
        "banner": banner
    })
def commercial(request):
    services = Service.objects.filter(status=True)  
    # banner = Banner.objects.filter(page="commercial").first()
    banner = None
    return render(request, "frontend/content/commercial.html", {
        "services": services,
        "banner": banner
    })

def service_detail(request, slug):
    service = Service.objects.filter(slug=slug, status=True).first()
    banner = None

    return render(request, "frontend/content/service_detail.html", {
        "service": service,
        "banner": banner
    })

