# votre_app/management/commands/run.py

# 1. Importer l'objet settings de Django
from django.conf import settings
from django.core.management.commands.runserver import Command as RunserverCommand


class Command(RunserverCommand):
    """
    Commande personnalisée qui lance le serveur de développement en utilisant
    le port défini dans settings.py (DEFAULT_RUNSERVER_PORT).
    """
    # L'aide est maintenant plus générique car le port n'est plus codé en dur ici
    help = 'Starts a lightweight Web server for development, using the port defined in settings.py.'

    def add_arguments(self, parser):
        # On appelle la méthode parente pour avoir tous les arguments de runserver
        super().add_arguments(parser)

        # 2. Récupérer le port depuis les settings, avec une valeur de secours
        #    getattr() est une façon sûre de lire un attribut.
        #    Si 'DEFAULT_RUNSERVER_PORT' n'existe pas dans settings.py,
        #    il utilisera '8000' (le port par défaut de Django) pour ne pas casser la commande.
        default_port = getattr(settings, 'DEFAULT_RUNSERVER_PORT', '8000')

        # 3. On modifie la valeur par défaut de l'argument 'addrport'
        #    On s'assure que le port est bien une chaîne de caractères (str).
        parser.set_defaults(addrport=str(default_port))