""" Модель спутника. """ from django.db import models class Satellite(models.Model): """ Модель спутника. Представляет спутник связи с его основными характеристиками. """ PLACES = [ ("kr", "КР"), ("dv", "ДВ") ] # Основные поля name = models.CharField( max_length=100, unique=True, verbose_name="Имя спутника", db_index=True, help_text="Название спутника", ) alternative_name = models.CharField( max_length=100, blank=True, null=True, verbose_name="Альтернативное имя", db_index=True, help_text="Альтернативное название спутника", ) location_place = models.CharField( max_length=30, choices=PLACES, null=True, default="kr", verbose_name="Комплекс", help_text="К какому комплексу принадлежит спутник", ) norad = models.IntegerField( blank=True, null=True, verbose_name="NORAD ID", help_text="Идентификатор NORAD для отслеживания спутника", ) international_code = models.CharField( max_length=50, blank=True, null=True, verbose_name="Международный код", help_text="Международный идентификатор спутника (например, 2011-074A)", ) band = models.ManyToManyField( 'mainapp.Band', related_name="bands", verbose_name="Диапазоны", blank=True, help_text="Диапазоны работы спутника", ) undersat_point = models.FloatField( blank=True, null=True, verbose_name="Подспутниковая точка, градусы", help_text="Подспутниковая точка в градусах. Восточное полушарие с +, западное с -", ) url = models.URLField( blank=True, null=True, verbose_name="Ссылка на источник", help_text="Ссылка на сайт, где можно проверить информацию", ) comment = models.TextField( blank=True, null=True, verbose_name="Комментарий", help_text="Любой возможный комменатрий", ) launch_date = models.DateField( blank=True, null=True, verbose_name="Дата запуска", help_text="Дата запуска спутника", ) created_at = models.DateTimeField( auto_now_add=True, verbose_name="Дата создания", help_text="Дата и время создания записи", ) created_by = models.ForeignKey( 'mainapp.CustomUser', on_delete=models.SET_NULL, related_name="satellite_created", null=True, blank=True, verbose_name="Создан пользователем", help_text="Пользователь, создавший запись", ) updated_at = models.DateTimeField( auto_now=True, verbose_name="Дата последнего изменения", help_text="Дата и время последнего изменения", ) updated_by = models.ForeignKey( 'mainapp.CustomUser', on_delete=models.SET_NULL, related_name="satellite_updated", null=True, blank=True, verbose_name="Изменен пользователем", help_text="Пользователь, последним изменивший запись", ) def __str__(self): return self.name class Meta: verbose_name = "Спутник" verbose_name_plural = "Спутники" ordering = ["name"]