""" Справочные модели (справочники). """ from django.db import models class ObjectInfo(models.Model): name = models.CharField( max_length=255, unique=True, verbose_name="Тип объекта", help_text="Информация о типе объекта", ) def __str__(self): return self.name class Meta: verbose_name = "Тип объекта" verbose_name_plural = "Типы объектов" ordering = ["name"] class ObjectOwnership(models.Model): """ Модель принадлежности объекта. """ name = models.CharField( max_length=255, unique=True, verbose_name="Принадлежность", help_text="Принадлежность объекта", ) def __str__(self): return self.name class Meta: verbose_name = "Принадлежность объекта" verbose_name_plural = "Принадлежности объектов" ordering = ["name"] class Polarization(models.Model): """ Модель поляризации сигнала. Определяет тип поляризации спутникового сигнала (H, V, L, R и т.д.). """ name = models.CharField( max_length=20, unique=True, verbose_name="Поляризация", db_index=True, help_text="Тип поляризации (H - горизонтальная, V - вертикальная, L - левая круговая, R - правая круговая)", ) def __str__(self): return self.name class Meta: verbose_name = "Поляризация" verbose_name_plural = "Поляризация" ordering = ["name"] class Modulation(models.Model): """ Модель типа модуляции сигнала. Определяет схему модуляции (QPSK, 8PSK, 16APSK и т.д.). """ name = models.CharField( max_length=20, unique=True, verbose_name="Модуляция", db_index=True, help_text="Тип модуляции сигнала (QPSK, 8PSK, 16APSK и т.д.)", ) def __str__(self): return self.name class Meta: verbose_name = "Модуляция" verbose_name_plural = "Модуляции" ordering = ["name"] class Standard(models.Model): """ Модель стандарта передачи данных. Определяет стандарт передачи (DVB-S, DVB-S2, DVB-S2X и т.д.). """ name = models.CharField( max_length=80, unique=True, verbose_name="Стандарт", db_index=True, help_text="Стандарт передачи данных (DVB-S, DVB-S2, DVB-S2X и т.д.)", ) def __str__(self): return self.name class Meta: verbose_name = "Стандарт" verbose_name_plural = "Стандарты" ordering = ["name"] class Band(models.Model): name = models.CharField( max_length=50, unique=True, verbose_name="Название", help_text="Название диапазона", ) border_start = models.FloatField( blank=True, null=True, verbose_name="Нижняя граница диапазона, МГц" ) border_end = models.FloatField( blank=True, null=True, verbose_name="Верхняя граница диапазона, МГц" ) def __str__(self): return f"{self.name}({int(self.border_start)}-{int(self.border_end)})МГц" class Meta: verbose_name = "Диапазон" verbose_name_plural = "Диапазоны" ordering = ["name"]