# Generated by Django 6.0.5 on 2026-06-04 04:16

import django.db.models.deletion
import django.utils.timezone
import modelcluster.fields
import wagtail.fields
from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('wagtailcore', '0097_baselogentry_uuid_action_timestamp_indexes'),
        ('wagtaildocs', '0014_alter_document_file_size'),
        ('wagtailimages', '0027_image_description'),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='Autor',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('nombre', models.CharField(max_length=100, verbose_name='Nombre del Autor')),
            ],
            options={
                'verbose_name': 'Autor de la UTRAU',
                'verbose_name_plural': 'Autores de la UTRAU',
                'db_table': '_home_autor',
            },
        ),
        migrations.CreateModel(
            name='CarpetaNoticiasPage',
            fields=[
                ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')),
            ],
            options={
                'verbose_name': 'Carpeta de Archivo (La Cacatúa)',
            },
            bases=('wagtailcore.page',),
        ),
        migrations.CreateModel(
            name='DocumentGalleryPage',
            fields=[
                ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')),
                ('introduction', wagtail.fields.RichTextField(blank=True)),
            ],
            options={
                'abstract': False,
            },
            bases=('wagtailcore.page',),
        ),
        migrations.CreateModel(
            name='HomePage',
            fields=[
                ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')),
                ('body', wagtail.fields.StreamField([('welcome_banner', 2), ('ultima_noticia', 4)], blank=True, block_lookup={0: ('wagtail.blocks.RichTextBlock', (), {'features': ['h2', 'h3', 'h4', 'bold', 'italic', 'table', 'font-size', 'font-family', 'link', 'document-link', 'ol', 'ul', 'hr', 'image', 'embed', 'blockquote', 'left', 'center', 'right', 'justify'], 'label': 'Texto de Bienvenida'}), 1: ('wagtail.blocks.URLBlock', (), {'label': 'Video YouTube', 'required': False}), 2: ('wagtail.blocks.StructBlock', [[('banner_text', 0), ('lsu_video_url', 1)]], {}), 3: ('wagtail.blocks.CharBlock', (), {'default': 'Última Noticia Sindical', 'label': 'Título de la Sección', 'required': False}), 4: ('wagtail.blocks.StructBlock', [[('titulo_seccion', 3)]], {})})),
            ],
            options={
                'abstract': False,
            },
            bases=('wagtailcore.page',),
        ),
        migrations.CreateModel(
            name='NoticiasIndexPage',
            fields=[
                ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')),
                ('introduction', wagtail.fields.RichTextField(blank=True)),
            ],
            options={
                'verbose_name': 'Visor de Noticias (Público)',
            },
            bases=('wagtailcore.page',),
        ),
        migrations.CreateModel(
            name='StandardPage',
            fields=[
                ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')),
                ('body', wagtail.fields.RichTextField(blank=True)),
            ],
            options={
                'abstract': False,
            },
            bases=('wagtailcore.page',),
        ),
        migrations.CreateModel(
            name='Suscriptor',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('nombre', models.CharField(max_length=150, verbose_name='Nombre Completo')),
                ('f_nacimiento', models.DateField(blank=True, null=True, verbose_name='Fecha de Nacimiento')),
                ('departamento', models.CharField(blank=True, max_length=100, verbose_name='Departamento')),
                ('email', models.EmailField(blank=True, max_length=254, verbose_name='Correo Electrónico')),
                ('celular', models.CharField(max_length=30, verbose_name='Número de WhatsApp')),
                ('recibir_mail', models.BooleanField(default=False, verbose_name='Recibir por Mail')),
                ('recibir_whatsapp', models.BooleanField(default=True, verbose_name='Recibir por WhatsApp')),
                ('fecha_suscripcion', models.DateTimeField(auto_now_add=True, verbose_name='Fecha de Alta')),
                ('activo', models.BooleanField(default=True, verbose_name='Suscripción Activa')),
            ],
            options={
                'verbose_name': 'Suscriptor del Pie',
                'verbose_name_plural': 'Suscriptores del Pie',
                'db_table': '_home_suscriptor',
            },
        ),
        migrations.CreateModel(
            name='Tema',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('nombre', models.CharField(max_length=100, verbose_name='Nombre del Tema')),
            ],
            options={
                'verbose_name': 'Tema / Categoría',
                'verbose_name_plural': 'Temas / Categorías',
                'db_table': '_home_tema',
            },
        ),
        migrations.CreateModel(
            name='DocumentGalleryItem',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('sort_order', models.IntegerField(blank=True, editable=False, null=True)),
                ('title', models.CharField(max_length=255)),
                ('document', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='wagtaildocs.document')),
                ('page', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='document_items', to='home.documentgallerypage')),
            ],
            options={
                'ordering': ['sort_order'],
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='NoticiaPage',
            fields=[
                ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')),
                ('fecha_publicacion', models.DateTimeField(default=django.utils.timezone.now, verbose_name='Fecha y Hora de Publicación')),
                ('generar_audio', models.BooleanField(default=False, verbose_name='¿Activar reproductor de audio?')),
                ('copete', models.TextField(verbose_name='Copete / Resumen breve')),
                ('body', wagtail.fields.RichTextField(verbose_name='Cuerpo del Artículo')),
                ('autores', modelcluster.fields.ParentalManyToManyField(related_name='noticias', to='home.autor', verbose_name='Autores')),
                ('main_image', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.image')),
                ('tema', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='noticias', to='home.tema', verbose_name='Tema')),
            ],
            options={
                'abstract': False,
            },
            bases=('wagtailcore.page',),
        ),
        migrations.CreateModel(
            name='Comentario',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('texto', models.TextField()),
                ('fecha_creacion', models.DateTimeField(auto_now_add=True)),
                ('activo', models.BooleanField(default=True)),
                ('padre', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='respuestas', to='home.comentario')),
                ('usuario', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='comentarios_realizados', to=settings.AUTH_USER_MODEL)),
                ('noticia', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='comentarios', to='home.noticiapage')),
            ],
            options={
                'db_table': '_comentarios_noticias',
            },
        ),
        migrations.CreateModel(
            name='NoticiaPieImagen',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('sort_order', models.IntegerField(blank=True, editable=False, null=True)),
                ('image', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='wagtailimages.image')),
                ('page', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='imagenes_pie', to='home.noticiapage')),
            ],
            options={
                'ordering': ['sort_order'],
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='ValoracionComentario',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('valor', models.SmallIntegerField()),
                ('fecha_voto', models.DateTimeField(auto_now_add=True)),
                ('comentario', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='valoraciones', to='home.comentario')),
                ('usuario', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='valoraciones_comentarios', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'db_table': '_valoraciones_comentarios',
                'unique_together': {('comentario', 'usuario')},
            },
        ),
        migrations.CreateModel(
            name='ValoracionNoticia',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('puntuacion', models.IntegerField()),
                ('fecha_voto', models.DateTimeField(auto_now_add=True)),
                ('noticia', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='valoraciones_noticia', to='home.noticiapage')),
                ('usuario', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='valoraciones_noticias', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'db_table': '_valoraciones_noticias',
                'unique_together': {('noticia', 'usuario')},
            },
        ),
    ]
