"""
Forms module for the cards app.
"""
from django import forms
from django.forms import ModelForm
from django.forms import TextInput

from .models import Card
from .models import CardMetadata


class CardForm(ModelForm):
    """
    Form to create a card.
    """

    nombre_negocio = forms.CharField(
        label="Business Name",
        max_length=250,
        required=False,
    )
    productos_servicios = forms.CharField(
        label="Products or Services",
        max_length=1000,
        required=False,
    )
    descripcion_productos_servicios = forms.CharField(
        label="Description of Products or Services",
        max_length=1000,
        required=False,
        widget=forms.Textarea,
    )
    latitud = forms.CharField(
        max_length=250,
        required=False,
    )
    longitud = forms.CharField(
        label="Description of Products or Services",
        max_length=250,
        required=False,
    )

    class Meta:
        model = Card
        fields = [
            "name",
            "position",
            "url",
            "email",
            "address",
            "phone",
            "mobile",
            "extra",
            "facebook",
            "twiter",
            "linkedin",
        ]
        widgets = {
            "address": TextInput,
            "extra": TextInput,
        }


class UploadCardForm(ModelForm):
    """
    Form to upload a custom card.
    """

    class Meta:
        model = Card
        fields = ["image", "orientation"]


class MetadataCardForm(ModelForm):
    """
    Form to edit the card metadata.
    """

    class Meta:
        model = CardMetadata
        fields = [
            "nombre_negocio",
            "productos_servicios",
            "descripcion_productos_servicios",
            "descripcion_detallada_productos_servicios",
            "latitude",
            "longitude",
            "video",
            "pdf",
        ]
