# Generated by Django 4.2.30 on 2026-06-11 01:24

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('academic', '0001_initial'),
    ]

    operations = [
        migrations.CreateModel(
            name='DudaAlumno',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('created_at', models.DateTimeField(auto_now_add=True, help_text='Fecha y hora de creación del registro (UTC)', verbose_name='Creado en')),
                ('updated_at', models.DateTimeField(auto_now=True, help_text='Fecha y hora de la última modificación (UTC)', verbose_name='Modificado en')),
                ('texto', models.TextField(verbose_name='Texto de la duda')),
                ('es_anonima', models.BooleanField(default=False, help_text='El docente siempre ve el autor. Los compañeros no si es True.', verbose_name='Anónima para compañeros')),
                ('votos', models.PositiveSmallIntegerField(default=0, verbose_name='Upvotes')),
                ('destacada', models.BooleanField(default=False, help_text='Al destacar, el alumno recibe la insignia FILOSOFO', verbose_name='Destacada por docente')),
                ('respondida', models.BooleanField(default=False)),
                ('respuesta_docente', models.TextField(blank=True, help_text='Si tiene respuesta, se agrega automáticamente al FAQ', verbose_name='Respuesta del docente')),
                ('visible_para_grupo', models.BooleanField(default=False, help_text='El docente activa esto para mostrarla al grupo que expone', verbose_name='Visible para el grupo expositor')),
            ],
            options={
                'verbose_name': 'Duda de alumno',
                'verbose_name_plural': 'Dudas de alumnos',
                'db_table': 'sessions_dudaalumno',
                'ordering': ['-votos', '-created_at'],
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='PreguntaActiva',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('created_at', models.DateTimeField(auto_now_add=True, help_text='Fecha y hora de creación del registro (UTC)', verbose_name='Creado en')),
                ('updated_at', models.DateTimeField(auto_now=True, help_text='Fecha y hora de la última modificación (UTC)', verbose_name='Modificado en')),
                ('orden', models.PositiveSmallIntegerField(default=0)),
                ('estado', models.CharField(choices=[('activa', 'Activa (recibiendo respuestas)'), ('cerrada', 'Cerrada')], default='activa', max_length=10)),
                ('activada_en', models.DateTimeField(auto_now_add=True)),
                ('expira_en', models.DateTimeField(verbose_name='Expira en')),
            ],
            options={
                'verbose_name': 'Pregunta activa',
                'verbose_name_plural': 'Preguntas activas',
                'db_table': 'sessions_preguntaactiva',
                'ordering': ['-created_at'],
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='PreguntaSesion',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('created_at', models.DateTimeField(auto_now_add=True, help_text='Fecha y hora de creación del registro (UTC)', verbose_name='Creado en')),
                ('updated_at', models.DateTimeField(auto_now=True, help_text='Fecha y hora de la última modificación (UTC)', verbose_name='Modificado en')),
                ('orden', models.PositiveSmallIntegerField(default=0, verbose_name='Orden')),
            ],
            options={
                'db_table': 'sessions_preguntasesion',
                'ordering': ['orden'],
            },
        ),
        migrations.CreateModel(
            name='Respuesta',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('created_at', models.DateTimeField(auto_now_add=True, help_text='Fecha y hora de creación del registro (UTC)', verbose_name='Creado en')),
                ('updated_at', models.DateTimeField(auto_now=True, help_text='Fecha y hora de la última modificación (UTC)', verbose_name='Modificado en')),
                ('opcion_elegida', models.PositiveSmallIntegerField(blank=True, null=True)),
                ('respuesta_vf', models.BooleanField(blank=True, null=True)),
                ('texto_respuesta', models.TextField(blank=True)),
                ('respuesta_json', models.JSONField(blank=True, null=True)),
                ('es_correcta', models.BooleanField(blank=True, null=True)),
                ('puntos', models.SmallIntegerField(default=0)),
                ('tiempo_ms', models.PositiveIntegerField(default=0, help_text='Calculado en el servidor: timestamp_respuesta - activada_en', verbose_name='Tiempo de respuesta (ms)')),
                ('es_sospechosa', models.BooleanField(default=False, help_text='True si el tiempo de respuesta fue anormalmente rápido', verbose_name='Respuesta sospechosa')),
            ],
            options={
                'verbose_name': 'Respuesta',
                'verbose_name_plural': 'Respuestas',
                'db_table': 'sessions_respuesta',
                'ordering': ['-created_at'],
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='Sesion',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('created_at', models.DateTimeField(auto_now_add=True, help_text='Fecha y hora de creación del registro (UTC)', verbose_name='Creado en')),
                ('updated_at', models.DateTimeField(auto_now=True, help_text='Fecha y hora de la última modificación (UTC)', verbose_name='Modificado en')),
                ('titulo', models.CharField(max_length=200, verbose_name='Título')),
                ('tipo', models.CharField(choices=[('clase', 'Clase normal'), ('exposicion', 'Sesión de exposición')], default='clase', max_length=12)),
                ('estado', models.CharField(choices=[('esperando', 'Esperando alumnos'), ('activa', 'Activa'), ('cerrada', 'Cerrada')], default='esperando', max_length=10)),
                ('abierta_en', models.DateTimeField(blank=True, null=True, verbose_name='Abierta en')),
                ('cerrada_en', models.DateTimeField(blank=True, null=True, verbose_name='Cerrada en')),
                ('actividad_exposicion', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='sesiones', to='academic.actividadexposicion', verbose_name='Actividad de exposición')),
            ],
            options={
                'verbose_name': 'Sesión',
                'verbose_name_plural': 'Sesiones',
                'db_table': 'sessions_sesion',
                'ordering': ['-created_at'],
                'abstract': False,
            },
        ),
    ]
