Files
dbstorage/dbapp/mainapp/models/references.py

137 lines
3.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
Справочные модели (справочники).
"""
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"]