# Generated by Django 3.0.5 on 2021-03-26 15:17

from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import mptt.fields


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='Address',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(db_index=True, max_length=512, verbose_name='Название места')),
                ('address', models.CharField(blank=True, max_length=512, verbose_name='Адрес')),
                ('contacts', models.TextField(blank=True, max_length=1024, verbose_name='Контакты')),
                ('geo_latitude', models.FloatField(default=0, verbose_name='Гео широта')),
                ('geo_longitude', models.FloatField(default=0, verbose_name='Гео долгота')),
                ('lft', models.PositiveIntegerField(editable=False)),
                ('rght', models.PositiveIntegerField(editable=False)),
                ('tree_id', models.PositiveIntegerField(db_index=True, editable=False)),
                ('level', models.PositiveIntegerField(editable=False)),
                ('parent', mptt.fields.TreeForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='address_parent', to='events.Address')),
            ],
            options={
                'verbose_name': 'Адрес',
                'verbose_name_plural': 'Адреса',
                'ordering': ['title'],
            },
        ),
        migrations.CreateModel(
            name='AgeCategory',
            fields=[
                ('age', models.IntegerField(help_text='Укажите возраст, начиная с которого, можно посещать события.', primary_key=True, serialize=False, verbose_name='Возраст (лет)')),
            ],
            options={
                'verbose_name': 'Возрастная категория',
                'verbose_name_plural': 'Возрастные категории',
                'ordering': ['age'],
            },
        ),
        migrations.CreateModel(
            name='Category',
            fields=[
                ('code', models.SlugField(help_text='Разрешены латинские буквы, знаки _ и -', max_length=128, primary_key=True, serialize=False, verbose_name='Код категории')),
                ('title', models.CharField(db_index=True, max_length=1024, verbose_name='Название')),
                ('order', models.IntegerField(db_index=True, default=0, verbose_name='Порядок вывода')),
                ('lft', models.PositiveIntegerField(editable=False)),
                ('rght', models.PositiveIntegerField(editable=False)),
                ('tree_id', models.PositiveIntegerField(db_index=True, editable=False)),
                ('level', models.PositiveIntegerField(editable=False)),
                ('parent', mptt.fields.TreeForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='events.Category', verbose_name='Родительская категория')),
            ],
            options={
                'verbose_name': 'Категория',
                'verbose_name_plural': 'Категории',
                'ordering': ['-order', 'title'],
            },
        ),
        migrations.CreateModel(
            name='Event',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('start_date', models.DateTimeField(db_index=True, verbose_name='Дата начала')),
                ('end_date', models.DateTimeField(db_index=True, verbose_name='Дата окончания')),
                ('address', models.CharField(blank=True, max_length=512, verbose_name='Подразделение')),
                ('active', models.BooleanField(db_index=True, default=True, verbose_name='Активно')),
                ('keywords', models.CharField(blank=True, help_text='Через запятую', max_length=1024, verbose_name='Ключевые слова')),
                ('translation_html', models.TextField(blank=True, max_length=10240, verbose_name='HTML код плеера для трансляций или воспроизведения')),
                ('create_date', models.DateTimeField(auto_now=True, db_index=True, verbose_name='Дата создания')),
                ('address_reference', mptt.fields.TreeForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='events.Address', verbose_name='Подразделение из справочника')),
                ('age_category', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='events.AgeCategory', verbose_name='Возрастная категория')),
                ('category', models.ManyToManyField(blank=True, to='events.Category', verbose_name='Категории')),
            ],
            options={
                'verbose_name': 'мероприятие',
                'verbose_name_plural': 'мероприятия',
            },
        ),
        migrations.CreateModel(
            name='EventParticipant',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('last_name', models.CharField(max_length=256, verbose_name='Фамилия')),
                ('first_name', models.CharField(max_length=256, verbose_name='Имя Отчество')),
                ('reader_id', models.CharField(max_length=256, verbose_name='№ читательского билета')),
                ('email', models.EmailField(max_length=256, verbose_name='Email')),
                ('create_date', models.DateTimeField(auto_now=True, db_index=True, verbose_name='Дата создания')),
                ('event', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.Event', verbose_name='Мероприятие')),
                ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Пользователь')),
            ],
            options={
                'verbose_name': 'Участник мероприятия',
                'verbose_name_plural': 'Участники мероприятий',
                'unique_together': {('user', 'event')},
            },
        ),
        migrations.CreateModel(
            name='FavoriteEvent',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('event', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.Event', verbose_name='Мероприятие')),
                ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Пользователь')),
            ],
            options={
                'verbose_name': 'отмеченное мероприятие',
                'verbose_name_plural': 'отмеченные мероприятия',
                'unique_together': {('user', 'event')},
            },
        ),
        migrations.CreateModel(
            name='EventRemember',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('remember_date', models.DateField(blank=True, null=True, verbose_name='Дата напоминания')),
                ('remember_system', models.IntegerField(default=0, verbose_name='Система напоминания (0-email, 1-sms)')),
                ('favorite_event', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.FavoriteEvent', verbose_name='Избранное событие')),
            ],
        ),
        migrations.CreateModel(
            name='EventParticipationReminder',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('remind_date', models.DateTimeField(db_index=True, verbose_name='Время напоминания')),
                ('type', models.CharField(choices=[('email', 'по электронной почте'), ('sms', 'sms')], default='email', max_length=64, verbose_name='Тип напоминияния')),
                ('is_sent', models.BooleanField(db_index=True, default=False, verbose_name='Отправлено')),
                ('created', models.DateTimeField(auto_now=True, db_index=True, verbose_name='Дата создания')),
                ('event_participant', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.EventParticipant', verbose_name='Участник')),
            ],
            options={
                'verbose_name': 'Напоминания об участии',
                'verbose_name_plural': 'Напоминания об участии',
            },
        ),
        migrations.CreateModel(
            name='EventComment',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('text', models.CharField(max_length=1024, verbose_name='Текст комментария (макс. 1024 символа)')),
                ('post_date', models.DateTimeField(auto_now_add=True, verbose_name='Дата отправления')),
                ('event', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.Event', verbose_name='Мероприятие')),
                ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Пользователь')),
            ],
            options={
                'verbose_name': 'комментарий',
                'verbose_name_plural': 'комментарии',
            },
        ),
        migrations.CreateModel(
            name='EventContent',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('lang', models.CharField(choices=[('ru', 'Russian')], db_index=True, max_length=2, verbose_name='Язык')),
                ('title', models.CharField(max_length=512, verbose_name='Заглавие')),
                ('teaser', models.CharField(max_length=512, verbose_name='Тизер')),
                ('content', models.TextField(verbose_name='Описание события')),
                ('event', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.Event')),
            ],
            options={
                'unique_together': {('event', 'lang')},
            },
        ),
    ]
