# -*- coding: utf-8 -*-
from django.shortcuts import render, redirect
from django.views.generic import CreateView, TemplateView
from django.urls import reverse_lazy
from django.contrib import messages
from .forms import TenantRegistrationForm
from .models import TenantRegistration


class TenantRegistrationView(CreateView):
    """
    Публичная форма регистрации нового тенанта
    """
    model = TenantRegistration
    form_class = TenantRegistrationForm
    template_name = 'tenants/registration_form.html'
    success_url = reverse_lazy('tenants:registration_success')

    def form_valid(self, form):
        """
        Обработка успешной отправки формы
        """
        response = super().form_valid(form)

        # Добавляем сообщение об успехе
        messages.success(
            self.request,
            f"Спасибо за регистрацию! Ваша заявка на магазин '{self.object.shop_name}' "
            f"отправлена на проверку. Мы свяжемся с вами по email {self.object.owner_email} "
            f"в ближайшее время."
        )

        return response

    def form_invalid(self, form):
        """
        Обработка ошибок валидации
        """
        messages.error(
            self.request,
            "Пожалуйста, исправьте ошибки в форме."
        )
        return super().form_invalid(form)


class RegistrationSuccessView(TemplateView):
    """
    Страница благодарности после успешной регистрации
    """
    template_name = 'tenants/registration_success.html'

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)

        # Получаем последнюю заявку текущего пользователя (если есть)
        # Здесь можно добавить фильтрацию по сессии или email
        context['show_details'] = False

        return context
