def save_as_free_subscription(self):  # type: ignore[no-untyped-def]
        """
        Wipes a subscription to a normal free plan.

        The only normal field that is retained is the notes field.
        """
        self.subscription_id = None
        self.subscription_date = None
        self.plan = FREE_PLAN_ID
        self.max_seats = MAX_SEATS_IN_FREE_PLAN
        self.max_api_calls = MAX_API_CALLS_IN_FREE_PLAN
        self.cancellation_date = None
        self.customer_id = None
        self.billing_status = None
        self.payment_method = None

        self.save()

        if not getattr(self.organisation, "subscription_information_cache", None):
            return

        self.organisation.subscription_information_cache.reset_to_defaults()  # type: ignore[no-untyped-call]
        self.organisation.subscription_information_cache.save()

        Wipes a subscription to a normal free plan.

        The only normal field that is retained is the notes field.
        
api/organisations/models.py