from django.shortcuts import render
from .models import *
from django.http import JsonResponse, HttpResponse
from django.template.loader import render_to_string


def home(request):
    hero = Hero.objects.filter(is_active=True).first()
    about = About.objects.prefetch_related('slides', 'skills').first()
    tracks = AudioTrack.objects.filter(is_active=True)[:8]
    movies = Movie.objects.filter(is_active=True)
    movies_bg = MovieBackground.objects.filter(is_active=True)
    testimonials = Testimonial.objects.filter(is_active=True)
    partners = Partner.objects.filter(is_active=True)
    teams = TeamMember.objects.filter(is_active=True)

    texts = SiteText.objects.first()
    menu = Menu.objects.filter(is_active=True)

    # form = ContactForm()

    return render(request, 'index.html', {
        'hero': hero,
        'about': about,
        'tracks': tracks,
        'movies': movies,
        'movies_bg': movies_bg,
        'testimonials': testimonials,
        'partners': partners,
        'teams': teams,
        'texts': texts,
        'menu': menu,
        })


def ajax_audio_tracks(request):
    offset = int(request.GET.get("offset", 0))
    limit = 8

    tracks = AudioTrack.objects.filter(is_active=True)[offset:offset + limit]

    html = render_to_string(
        "include/audio_tracks_items.html",
        {"tracks": tracks},
        request=request
    )

    has_more = AudioTrack.objects.filter(is_active=True).count() > offset + limit

    return JsonResponse({
        "html": html,
        "has_more": has_more
    })


def robots_txt(request):
    return HttpResponse(
        "User-agent: *\n"
        "Allow: /\n"
        "Sitemap: https://idalgofilm.ru/sitemap.xml\n",
        content_type="text/plain"
    )


# def send_email_async(subject, message, from_email, recipient_list):
#     """Асинхронная отправка email"""
#     try:
#         send_mail(
#             subject=subject,
#             message=message,
#             from_email=from_email,
#             recipient_list=recipient_list,
#             fail_silently=False,
#         )
#         print(f'✅ Email sent successfully to {recipient_list}')
#     except Exception as e:
#         print(f'❌ Email sending error: {e}')
#         print(f'❌ Full traceback:')
#         traceback.print_exc()  # ← Покажет полную ошибку
#
#
# @require_http_methods(["POST"])
# def contact_form_submit(request):
#     form = ContactForm(request.POST)
#
#     if form.is_valid():
#         # Сохраняем в БД
#         contact = form.save()
#
#         # Подготавливаем данные для письма
#         name = form.cleaned_data['name']
#         email = form.cleaned_data['email']
#         telegram = form.cleaned_data.get('telegram_username', 'Не указан')
#         message = form.cleaned_data['message']
#
#         # Формируем текст письма
#         email_subject = f'Новое сообщение от {name}'
#         email_body = f"""
# Новое сообщение с сайта Idalgo Film:
#
# Имя: {name}
# Email: {email}
# Telegram: {telegram}
#
# Сообщение:
# {message}
#
# ---
# Отправлено: {contact.created_at.strftime('%d.%m.%Y %H:%M')}
#         """
#
#         # Отправляем email в фоне
#         email_thread = threading.Thread(
#             target=send_email_async,
#             args=(
#                 email_subject,
#                 email_body,
#                 settings.DEFAULT_FROM_EMAIL,
#                 [settings.CONTACT_RECEIVER_EMAIL]
#             )
#         )
#         email_thread.daemon = True
#         email_thread.start()
#
#         # Сразу возвращаем ответ
#         return JsonResponse({
#             'success': True,
#             'message': 'Your message is successfully sent!'
#         }, status=200)
#     else:
#         return JsonResponse({
#             'success': False,
#             'message': 'Please correct the errors.',
#             'errors': form.errors
#         }, status=400)
