# 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
import shared.validators.fields


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='ActividadExposicion',
            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')),
                ('nombre', models.CharField(max_length=200, verbose_name='Nombre')),
                ('descripcion', models.TextField(blank=True, verbose_name='Descripción')),
                ('fecha', models.DateField(blank=True, null=True, verbose_name='Fecha programada')),
                ('estado', models.CharField(choices=[('pendiente', 'Pendiente'), ('activa', 'Activa'), ('cerrada', 'Cerrada')], default='pendiente', max_length=10, verbose_name='Estado')),
            ],
            options={
                'verbose_name': 'Actividad de exposición',
                'verbose_name_plural': 'Actividades de exposición',
                'db_table': 'academic_actividadexposicion',
                'ordering': ['-fecha', '-created_at'],
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='Asignatura',
            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')),
                ('nombre', models.CharField(max_length=200, verbose_name='Nombre')),
                ('codigo', models.CharField(help_text='Código corto sin espacios. Ej: TI2031', max_length=20, validators=[django.core.validators.MinLengthValidator(2)], verbose_name='Código')),
                ('descripcion', models.TextField(blank=True, verbose_name='Descripción')),
                ('color', models.CharField(choices=[('blue', 'Azul'), ('purple', 'Morado'), ('green', 'Verde'), ('pink', 'Rosa'), ('gold', 'Dorado')], default='blue', max_length=10, verbose_name='Color identificador')),
                ('es_publica', models.BooleanField(default=False, help_text='Si True, otros docentes pueden ver las preguntas públicas de esta asignatura', verbose_name='Visible para otros docentes')),
            ],
            options={
                'verbose_name': 'Asignatura',
                'verbose_name_plural': 'Asignaturas',
                'db_table': 'academic_asignatura',
                'ordering': ['-created_at'],
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='Grupo',
            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')),
                ('nombre', models.CharField(max_length=200, verbose_name='Nombre del grupo')),
                ('color', models.CharField(default='#00d4ff', help_text='Color hexadecimal #RRGGBB para identificar el grupo visualmente', max_length=7, validators=[shared.validators.fields.validate_hex_color], verbose_name='Color identificador')),
            ],
            options={
                'verbose_name': 'Grupo',
                'verbose_name_plural': 'Grupos',
                'db_table': 'academic_grupo',
                'ordering': ['-created_at'],
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='Inscripcion',
            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')),
                ('activo', models.BooleanField(default=True, help_text='False si el alumno fue removido de la sección', verbose_name='Inscripción activa')),
            ],
            options={
                'verbose_name': 'Inscripción',
                'verbose_name_plural': 'Inscripciones',
                'db_table': 'academic_inscripcion',
                'ordering': ['-created_at'],
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='Seccion',
            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')),
                ('nombre', models.CharField(max_length=100, verbose_name='Nombre')),
                ('periodo', models.CharField(help_text='Ej: 2026-1, 2026-2', max_length=20, verbose_name='Período')),
                ('capacidad_maxima', models.PositiveSmallIntegerField(blank=True, help_text='Si está definida, no se permiten más inscripciones', null=True, verbose_name='Capacidad máxima')),
                ('codigo_acceso', models.CharField(blank=True, max_length=8, null=True, verbose_name='Código de acceso activo')),
                ('codigo_expira', models.DateTimeField(blank=True, null=True, verbose_name='Expiración del código de acceso')),
                ('asignatura', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='secciones', to='academic.asignatura', verbose_name='Asignatura')),
            ],
            options={
                'verbose_name': 'Sección',
                'verbose_name_plural': 'Secciones',
                'db_table': 'academic_seccion',
                'ordering': ['-created_at'],
                'abstract': False,
            },
        ),
    ]
