from django.db import models
from django.utils.translation import gettext_lazy as _

from polymorphic.models import PolymorphicModel

from aleksis.core.mixins import ExtensibleModel, PureDjangoModel


class DisplayGroup(ExtensibleModel):

    name = models.CharField(max_length=255, verbose_name=_("Name"))
    slug = models.SlugField(max_length=255, verbose_name=_("Slug"))

    def __str__(self) -> str:
        return self.name


class Display(ExtensibleModel):

    display_group = models.ForeignKey(
        DisplayGroup, verbose_name=_("Display group"), on_delete=models.CASCADE
    )
    hostname = models.CharField(max_length=255, verbose_name=_("Hostname"))

    def __str__(self) -> str:
        return self.hostname


class Slide(PolymorphicModel, PureDjangoModel):

    display_group = models.ForeignKey(
        DisplayGroup, verbose_name=_("Display group"), on_delete=models.CASCADE
    )