"""قواعد فعال/غیرفعال بودن پیامک برای مشتری (مدل opt-out).""" from ..models import CustomerSMSSetting, SMSType def is_sms_enabled(customer, sms_type): """اگر رکوردی با is_enabled=False وجود داشته باشد غیرفعال است؛ در غیر این‌صورت فعال.""" if customer is None: return True setting = CustomerSMSSetting.objects.filter(customer=customer, sms_type=sms_type).first() if setting is None: return True return setting.is_enabled def customer_toggle_map(customer): """فهرست نوع‌های پیامک با وضعیت مؤثر (برای نمایش در پنل مشتری).""" overrides = { s.sms_type: s.is_enabled for s in CustomerSMSSetting.objects.filter(customer=customer) } return [ {"code": code, "label": label, "enabled": overrides.get(code, True)} for code, label in SMSType.choices ]