from crispy_forms.helper import FormHelper
from crispy_forms.layout import Column, Field, Layout, Row, Submit
from django import forms
from .models import Contato, Reserva, Comment, PasseioComment, PasseioFoto


class ContatoForm(forms.ModelForm):

    class Meta:
        model = Contato
        fields = ('nome', 'email', 'assunto', 'mensagem')

        widgets = {
            'email': forms.EmailInput(attrs={'type': 'email'}),
            'mensagem': forms.Textarea(attrs={'cols': 120, 'rows': 5})
        }

        labels = {
            'nome': 'Nome',
            'email': 'E-mail',
            'assunto': 'Assunto',
            'mensagem': 'Mensagem'
        }

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.layout = Layout(
            Row(
                Column('nome', css_class='col-md-6 mb-0'),
                Column('email', css_class='col-md-6 mb-0'),
                Column('assunto', css_class='col-md-9 mb-0'),
                css_class='form-row col-md-12 col-md-offset-12'
            ),
            Row(
                Column('mensagem', css_class='form-group col-md-12 mb-0'),
                css_class='form-row col-md-12 col-md-offset-12'
            ),
            Submit("submit", "Enviar")
        )


class CommentForm(forms.ModelForm):
    class Meta:
        model = Comment
        fields = ('name', 'email', 'body')

        labels = {
            'name': 'Nome',
            'email': 'E-mail',
            'body': 'Comentário',
        }


class PasseioCommentForm(forms.ModelForm):
    class Meta:
        model = PasseioComment
        fields = ('name', 'email', 'body')

        labels = {
            'name': 'Nome',
            'email': 'E-mail',
            'body': 'Comentário',
        }


class PasseioFotoForm(forms.ModelForm):
    class Meta:
        model = PasseioFoto
        fields = ('titulo', 'texto', 'imagem')

        labels = {
            'titulo': 'Título',
            'texto': 'Comentário Foto',
            'imagem': 'Foto',
        }


class ReservaForm(forms.ModelForm):
    class Meta:
        model = Reserva
        fields = ('nome', 'email', 'telefone', 'data', 'hora', 'pessoas', 'mensagem')

        widgets = {
            'email': forms.EmailInput(attrs={'type': 'email'}),
            'data': forms.DateInput(format='%d/%m/%Y'),
            'hora': forms.TimeInput(format='%H:%M'),
            'mensagem': forms.Textarea(attrs={'cols': 100, 'rows': 4})
        }

        labels = {
            'nome': 'Nome',
            'email': 'E-mail',
            'telefone': 'Telefone',
            'data': 'Data',
            'hora': 'Horário',
            'pessoas': 'Pessoas',
            'mensagem': 'Mensagem',
        }

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.layout = Layout(
            Row(
                Column('nome', css_class='col-md-6 mb-0'),
                Column('email', css_class='col-md-6 mb-0'),
                Column('telefone', css_class='col-md-4 mb-0'),
                Column('data', css_class='col-md-3 mb-0'),
                Column('hora', css_class='col-md-3 mb-0'),
                Column('pessoas', css_class='col-md-2 mb-0'),
                css_class='form-row col-md-12 col-md-offset-12'
            ),
            Row(
                Column('mensagem', css_class='form-group col-md-12 mb-0'),
                css_class='form-row col-md-12 col-md-offset-12'
            ),
            Submit("submit", "SOLICITAR RESERVA")
        )
