import os

from django.apps import AppConfig


class LettersConfig(AppConfig):
    name = "letters"

    def ready(self):
        """
        Start the scheduler only when the server is starting.
        NOTE: If we don't check for RUN_MAIN, the scheduler triggers for all django operations (migration, test etc.)
        NOTE++: For uvicorn, we make sure to set the env var `UVICORN_MAIN` to `true` in the docker command.
        """
        if not (
            os.environ.get("RUN_MAIN") == "true"
            or os.environ.get("WERKZEUG_RUN_MAIN") == "true"
            or os.environ.get("UVICORN_MAIN") == "true"
        ):
            return
        from .tasks import start_scheduler

        start_scheduler()
