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

import django.core.validators
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='ImportacionPreguntas',
            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')),
                ('archivo_hash', models.CharField(help_text='Para detectar importaciones duplicadas', max_length=64, verbose_name='Hash SHA-256 del archivo JSON')),
                ('preguntas_ok', models.PositiveSmallIntegerField(default=0, verbose_name='Preguntas importadas')),
                ('preguntas_err', models.PositiveSmallIntegerField(default=0, verbose_name='Preguntas con error')),
                ('log_errores', models.TextField(blank=True, verbose_name='Log de errores de validación')),
            ],
            options={
                'verbose_name': 'Importación de preguntas',
                'verbose_name_plural': 'Importaciones de preguntas',
                'db_table': 'questions_importacion',
                'ordering': ['-created_at'],
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='Pregunta',
            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')),
                ('deleted_at', models.DateTimeField(blank=True, help_text='Si tiene valor, el registro está desactivado', null=True, verbose_name='Borrado en')),
                ('tipo', models.CharField(choices=[('multiple', 'Selección múltiple'), ('vf', 'Verdadero / Falso'), ('corta', 'Respuesta corta'), ('arrastrar', 'Arrastrar y soltar'), ('confuso', 'Reflexión: ¿Qué no entendiste?'), ('minuto', 'Reflexión: ¿Qué aprendiste?')], max_length=10, verbose_name='Tipo')),
                ('enunciado', models.TextField(verbose_name='Enunciado de la pregunta')),
                ('unidad', models.CharField(blank=True, max_length=200, verbose_name='Unidad / Tema')),
                ('tiempo_seg', models.PositiveSmallIntegerField(default=20, validators=[django.core.validators.MinValueValidator(5), django.core.validators.MaxValueValidator(60)], verbose_name='Tiempo de respuesta (segundos)')),
                ('es_publica', models.BooleanField(default=False, help_text='Si True, otros docentes pueden ver e importar esta pregunta', verbose_name='Pública para otros docentes')),
                ('valoraciones', models.PositiveSmallIntegerField(default=0, help_text='Votos útiles de otros docentes', verbose_name='Valoraciones positivas')),
                ('opciones', models.JSONField(blank=True, help_text='Lista de objetos {texto, correcta}. Mínimo 2 opciones.', null=True, verbose_name='Opciones (tipo múltiple)')),
                ('correcta_vf', models.BooleanField(blank=True, null=True, verbose_name='Respuesta correcta (V/F)')),
                ('palabras_clave', models.JSONField(blank=True, help_text='Lista de strings. Se acepta cualquiera de estas como respuesta válida.', null=True, verbose_name='Palabras clave aceptadas')),
                ('pares', models.JSONField(blank=True, help_text='Lista de objetos {izq, der} para asociar, o {izq} para ordenar.', null=True, verbose_name='Pares / elementos (arrastrar)')),
                ('modo_arrastrar', models.CharField(blank=True, choices=[('asociar', 'Asociar columnas'), ('ordenar', 'Ordenar elementos')], max_length=10, null=True, verbose_name='Modo de arrastrar')),
                ('asignatura', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='preguntas', to='academic.asignatura', verbose_name='Asignatura')),
            ],
            options={
                'verbose_name': 'Pregunta',
                'verbose_name_plural': 'Preguntas',
                'db_table': 'questions_pregunta',
                'ordering': ['-created_at'],
                'abstract': False,
            },
        ),
    ]
