from django.shortcuts import render
from django.views.generic import TemplateView, ListView
from apps.properties.models import Property
from apps.sales_updates.models import SalesUpdate
from apps.videos.models import Video
from apps.analytics.models import VisitorStat
from apps.landing_pages.models import LandingPage
from .models import Testimonial, FAQ, TeamMember


def home(request):
    featured_estates = LandingPage.objects.filter(is_published=True).order_by('-created_at')[:4]
    featured = Property.objects.filter(is_featured=True, is_published=True)[:6]
    recent = Property.objects.filter(is_published=True).order_by('-created_at')[:8]
    testimonials = Testimonial.objects.filter(is_published=True)[:6]
    updates = SalesUpdate.objects.filter(is_published=True).order_by('-publish_at')[:3]
    videos = Video.objects.filter(is_published=True).order_by('-created_at')[:3]
    stats = VisitorStat.get_summary()

    return render(request, 'core/home.html', {
        'featured_estates': featured_estates,
        'featured': featured,
        'recent': recent,
        'testimonials': testimonials,
        'updates': updates,
        'videos': videos,
        'stats': stats,
    })


def about(request):
    team = TeamMember.objects.filter(is_active=True)
    testimonials = Testimonial.objects.filter(is_published=True)
    return render(request, 'core/about.html', {
        'team': team,
        'testimonials': testimonials,
    })


def contact(request):
    return render(request, 'core/contact.html')


def faq(request):
    faqs = FAQ.objects.filter(is_published=True)
    return render(request, 'core/faq.html', {'faqs': faqs})


def blog(request):
    updates = SalesUpdate.objects.filter(is_published=True).order_by('-publish_at')
    return render(request, 'core/blog.html', {'updates': updates})
