from dash_app.models import Blog
from dash_app.models import Gallery  
from django.shortcuts import render, redirect
from django.contrib import messages
from dash_app.models import ContactUs
from dash_app.forms import ContactForm

def index(request):
    blogs = Blog.objects.filter(status=True).order_by('-created_at')[:3]
    galleries = Gallery.objects.all()

    return render(request, 'frontend/index.html', {'blogs': blogs ,'galleries': galleries})
def about(request):
    return render(request, 'frontend/about.html')

def courses(request):
    return render(request, 'frontend/course.html')
def python(request):
    return render(request, 'frontend/courses/python.html')
def designing(request):
    return render(request, 'frontend/courses/designing.html')
def marketting(request):
    return render(request, 'frontend/courses/marketing.html')
def node(request):
    return render(request, 'frontend/courses/node.html')
def uiux(request):
    return render(request, 'frontend/courses/uiux.html')
def video(request):
    return render(request, 'frontend/courses/video.html')
def full_stack(request):
    return render(request, 'frontend/courses/full.html')


def blog(request):

    blogs = Blog.objects.filter(
        status=True
    )

    return render(
        request,
        'frontend/blog.html',
        {
            'blogs': blogs
        }
    )
def blog_detail(request, slug):

    blog = get_object_or_404(
        Blog,
        url=slug,
        status=True
    )

    return render(
        request,
        'frontend/blogdetails.html',
        {
            'blog': blog
        }
    )



def gallery(request):
    galleries = Gallery.objects.all()
    return render(request, 'frontend/gallery.html', {'galleries': galleries})

def contact(request):
    return render(request, 'frontend/contact.html')
def privacy(request):
    return render(request, 'frontend/privacy.html')
def refund(request):
    return render(request, 'frontend/refund.html')
def terms(request):
    return render(request, 'frontend/terms.html')
def faq(request):
    return render(request, 'frontend/faq.html')

from django.shortcuts import render, get_object_or_404
from dash_app.models import Page

def page_detail(request, slug):

    page = get_object_or_404(
        Page,
        slug=slug
    )

    return render(
        request,
        'frontend/page_detail.html',
        {
            'page': page
        }
    )


from django.shortcuts import render, redirect
from django.contrib import messages
from django.core.mail import send_mail
from django.conf import settings


def contact(request):
    if request.method == 'POST':
        form = ContactForm(request.POST)
        if form.is_valid():
            contact = form.save()
            print(f"✅ Form saved: {contact.first_name} {contact.last_name}")  # ✅ add

            try:
                send_mail(
                    subject=f'New Contact Message from {contact.first_name} {contact.last_name}',
                    message=f'''
You have received a new contact form submission.

Name    : {contact.first_name} {contact.last_name}
Email   : {contact.email}
Phone   : {contact.phone}
Message : {contact.message}

Submitted on: {contact.created_at.strftime("%B %d, %Y %I:%M %p")}
                    ''',
                    from_email=settings.DEFAULT_FROM_EMAIL,
                    recipient_list=[settings.ADMIN_EMAIL],
                    fail_silently=False,
                )
                print("✅ Email sent successfully")  # ✅ add

            except Exception as e:
                print(f"❌ Email error: {e}")  # ✅ add

            messages.success(request, "Your message has been sent successfully!")
            return redirect('contact')
        else:
            print(f"❌ Form errors: {form.errors}")  # ✅ add
            messages.error(request, "Please fix the errors below.")
    else:
        form = ContactForm()

    return render(request, 'frontend/contact.html', {'form': form})


from dash_app.models import Application
from dash_app.forms import ApplicationForm

def apply(request):
    if request.method == 'POST':
        form = ApplicationForm(request.POST)
        if form.is_valid():
            application = form.save()
            print(f"✅ Application saved: {application.name}")

            try:
                send_mail(
                    subject=f'New Application from {application.name}',
                    message=f'''
New course application received.

Name          : {application.name}
Email         : {application.email}
Phone         : {application.phone}
Qualification : {application.get_qualification_display()}
Course        : {application.get_course_display()}
DOB           : {application.dob}
Location      : {application.get_location_display()}

Submitted on  : {application.created_at.strftime("%B %d, %Y %I:%M %p")}
                    ''',
                    from_email=settings.DEFAULT_FROM_EMAIL,
                    recipient_list=[settings.ADMIN_EMAIL],
                    fail_silently=False,
                )
                print("✅ Email sent successfully")
            except Exception as e:
                print(f"❌ Email error: {e}")

            return redirect('index')  # or wherever you want
        else:
            print(f"❌ Form errors: {form.errors}")
            return redirect('index')
    return redirect('index')
