"""Génération des formulaires pour la gestion des produits."""

from django import forms
from .models import Produit, Categorie, Commander, Demander


class EnregistrementProduit(forms.ModelForm):
    """Formulaire pour l'enregistrement d'un produit."""

    class Meta:
        """Métadonnées du formulaire."""

        model = Produit
        fields = (
            "image",
            "libelle",
            "quantite_stock",
            "conditionnement",
            "seuil_pre_rupture",
            "categorie",
        )
        widgets = {
            "libelle": forms.TextInput(attrs={"class": "form-control"}),
            "quantite_stock": forms.NumberInput(
                attrs={"class": "form-control"}
            ),
            "conditionnement": forms.Select(attrs={"class": "form-select"}),
            "seuil_pre_rupture": forms.NumberInput(
                attrs={"class": "form-control"}
            ),
            "categorie": forms.Select(attrs={"class": "form-select"}),
        }


class EnregistrementCategorie(forms.ModelForm):
    """Formulaire pour l'enregistrement d'une catégorie de produit."""

    class Meta:
        """Métadonnées du formulaire."""

        model = Categorie
        fields = ("categorie", )
        widgets = {
            "categorie": forms.TextInput(attrs={"class": "form-control"})
        }

class CommanderProduit(forms.ModelForm):
    """Formulaire pour l'enregistrement d'une commande de produit."""

    class Meta:
        """Métadonnées du formulaire."""

        model = Commander
        fields = (
            "produit",
            "fournisseur",
            "quantite_commander",
            "prix_achat",
            "date_commande",
            "date_livraison",
        )
        widgets = {
            "produit": forms.Select(attrs={"class": "form-select"}),
            "fournisseur": forms.Select(attrs={"class": "form-select"}),
            "quantite_commander": forms.NumberInput(
                attrs={"class": "form-control"}
            ),
            "prix_achat": forms.NumberInput(attrs={"class": "form-control"}),
            "date_commande": forms.DateInput(
                attrs={"class": "form-control", "type": "date"}
            ),
            "date_livraison": forms.DateInput(
                attrs={"class": "form-control", "type": "date"}
            ),
        }


class DemanderProduit(forms.ModelForm):
    """Formulaire pour l'enregistrement d'une demande de produit."""

    class Meta:
        """Métadonnées du formulaire."""

        model = Demander
        fields = (
            "produit",
            "quantite",
            "motifs",
            "date_de_mise_a_dispo_souhaite",
            "a_rendre",
        )
        widgets = {
            "produit": forms.Select(attrs={"class": "form-select"}),
            "quantite": forms.NumberInput(attrs={"class": "form-control"}),
            "motifs": forms.Textarea(
                attrs={"class": "form-control", "rows": 4}
            ),
            "date_de_mise_a_dispo_souhaite": forms.DateInput(
                attrs={"class": "form-control", "type": "date"}
            ),
            "a_rendre": forms.CheckboxInput(
                attrs={"class": "form-check-input"}
            ),
        }
