# Generated by Django 5.2.7 on 2025-10-13 12:47 import django.contrib.gis.db.models.fields import django.db.models.deletion import mainapp.models from django.conf import settings from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name='Mirror', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=30, unique=True, verbose_name='Имя зеркала')), ], options={ 'verbose_name': 'Зеркало', 'verbose_name_plural': 'Зеркала', }, ), migrations.CreateModel( name='Modulation', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=20, unique=True, verbose_name='Модуляция')), ], options={ 'verbose_name': 'Модуляция', 'verbose_name_plural': 'Модуляции', }, ), migrations.CreateModel( name='Polarization', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=20, unique=True, verbose_name='Поляризация')), ], options={ 'verbose_name': 'Поляризация', 'verbose_name_plural': 'Поляризация', }, ), migrations.CreateModel( name='Satellite', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=30, unique=True, verbose_name='Имя спутника')), ('norad', models.IntegerField(blank=True, null=True, verbose_name='NORAD ID')), ], options={ 'verbose_name': 'Спутник', 'verbose_name_plural': 'Спутники', }, ), migrations.CreateModel( name='Standard', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=20, unique=True, verbose_name='Стандарт')), ], options={ 'verbose_name': 'Стандарт', 'verbose_name_plural': 'Стандарты', }, ), migrations.CreateModel( name='CustomUser', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('role', models.CharField(choices=[('admin', 'Администратор'), ('moderator', 'Модератор'), ('user', 'Пользователь')], default='user', max_length=20, verbose_name='Роль пользователя')), ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], options={ 'verbose_name': 'Пользователь', 'verbose_name_plural': 'Пользователи', }, ), migrations.CreateModel( name='Geo', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('timestamp', models.DateTimeField(blank=True, null=True, verbose_name='Время')), ('coords', django.contrib.gis.db.models.fields.PointField(blank=True, null=True, srid=4326, verbose_name='Координата геолокации')), ('location', models.CharField(blank=True, max_length=255, null=True, verbose_name='Метоположение')), ('comment', models.CharField(blank=True, max_length=255, verbose_name='Комментарий')), ('coords_kupsat', django.contrib.gis.db.models.fields.PointField(blank=True, null=True, srid=4326, verbose_name='Координаты Кубсата')), ('coords_valid', django.contrib.gis.db.models.fields.PointField(blank=True, null=True, srid=4326, verbose_name='Координаты оперативников')), ('is_average', models.BooleanField(blank=True, null=True, verbose_name='Усреднённое')), ('id_user_add', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='geos_added', to='mainapp.customuser', verbose_name='Пользователь')), ('mirrors', models.ManyToManyField(related_name='geo_mirrors', to='mainapp.mirror', verbose_name='Зеркала')), ], options={ 'verbose_name': 'Гео', 'verbose_name_plural': 'Гео', }, ), migrations.CreateModel( name='Parameter', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('frequency', models.FloatField(blank=True, default=0, null=True, verbose_name='Частота, МГц')), ('freq_range', models.FloatField(blank=True, default=0, null=True, verbose_name='Полоса частот, МГц')), ('bod_velocity', models.FloatField(blank=True, default=0, null=True, verbose_name='Символьная скорость, БОД')), ('snr', models.FloatField(blank=True, default=0, null=True, verbose_name='ОСШ')), ('id_user_add', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='parameter_added', to='mainapp.customuser', verbose_name='Пользователь')), ('modulation', models.ForeignKey(blank=True, default=mainapp.models.get_default_modulation, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, related_name='modulations', to='mainapp.modulation', verbose_name='Модуляция')), ('polarization', models.ForeignKey(blank=True, default=mainapp.models.get_default_polarization, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, related_name='polarizations', to='mainapp.polarization', verbose_name='Поляризация')), ('standard', models.ForeignKey(blank=True, default=mainapp.models.get_default_standard, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, related_name='standards', to='mainapp.standard', verbose_name='Стандарт')), ], options={ 'verbose_name': 'ВЧ загрузка', 'verbose_name_plural': 'ВЧ загрузки', }, ), migrations.CreateModel( name='ObjItem', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(blank=True, max_length=100, null=True, verbose_name='Имя объекта')), ('id_geo', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='objitems', to='mainapp.geo', verbose_name='Геоданные')), ('id_user_add', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='objitems', to='mainapp.customuser', verbose_name='Пользователь')), ('id_vch_load', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='objitems', to='mainapp.parameter', verbose_name='ВЧ загрузка')), ('id_satellite', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='objitems', to='mainapp.satellite', verbose_name='Спутник')), ], options={ 'verbose_name': 'Объект', 'verbose_name_plural': 'Объекты', }, ), migrations.AddConstraint( model_name='geo', constraint=models.UniqueConstraint(fields=('timestamp', 'coords'), name='unique_geo_combination'), ), migrations.AddConstraint( model_name='objitem', constraint=models.UniqueConstraint(fields=('id_vch_load', 'id_geo'), name='unique_objitem_combination'), ), ]