148 lines
8.7 KiB
Python
148 lines
8.7 KiB
Python
# 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'),
|
|
),
|
|
]
|