from django.db import models from django.utils.translation import gettext_lazy as _ class QuickAccessLink(models.Model): class ColorChoice(models.TextChoices): EMERALD = "emerald", _("سبز رضوی (Emerald)") ROSE = "rose", _("سرخ زنده (Rose)") BLUE = "blue", _("آبی دانش (Blue)") PURPLE = "purple", _("بنفش چندرسانه‌ای (Purple)") AMBER = "amber", _("طلایی ویژه (Amber)") TEAL = "teal", _("فیروزه‌ای (Teal)") institution = models.ForeignKey( "profiles.Institution", on_delete=models.CASCADE, related_name="quick_access_links", verbose_name=_("مؤسسه مربوطه"), ) title = models.CharField( max_length=255, verbose_name=_("عنوان خدمت") ) url = models.CharField( max_length=500, verbose_name=_("نشانی اینترنتی یا مسیر") ) description = models.CharField( max_length=500, blank=True, default="", verbose_name=_("توضیح مختصر") ) icon = models.CharField( max_length=50, default="link", verbose_name=_("شناسه آیکون") ) color = models.CharField( max_length=20, choices=ColorChoice.choices, default=ColorChoice.EMERALD, verbose_name=_("طیف رنگی"), ) category = models.CharField( max_length=100, blank=True, default="", verbose_name=_("برچسب یا دسته‌بندی") ) is_live = models.BooleanField( default=False, verbose_name=_("نشانگر پخش زنده") ) is_external = models.BooleanField( default=True, verbose_name=_("باز شدن در برگه جدید") ) order = models.PositiveIntegerField( default=0, verbose_name=_("ترتیب نمایش") ) is_active = models.BooleanField( default=True, verbose_name=_("فعال بودن") ) created_at = models.DateTimeField( auto_now_add=True, verbose_name=_("تاریخ ایجاد") ) updated_at = models.DateTimeField( auto_now=True, verbose_name=_("آخرین بروزرسانی") ) class Meta: verbose_name = _("لینک دسترسی سریع") verbose_name_plural = _("لینک‌های دسترسی سریع") ordering = ["order", "id"] def __str__(self): return f"{self.title} ({self.institution.name})"