# Generated by Django 5.2.6 on 2025-09-24 00:40 import django.db.models.deletion from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ ('authentication', '0001_initial'), ('events', '0001_initial'), ] operations = [ migrations.CreateModel( name='Attendance', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('timestamp', models.DateTimeField(auto_now_add=True, verbose_name='Hora de registro')), ('registration_method', models.CharField(choices=[('manual', 'Registro Manual'), ('barcode', 'Código de Barras'), ('external', 'Usuario Externo')], default='manual', max_length=10, verbose_name='Método de registro')), ('notes', models.TextField(blank=True, null=True, verbose_name='Notas adicionales')), ('is_valid', models.BooleanField(default=True, verbose_name='Asistencia válida')), ('event', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.event', verbose_name='Evento')), ('external_user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='events.externaluser', verbose_name='Usuario Externo')), ('registered_by', models.ForeignKey(limit_choices_to={'user_type': 'teacher'}, on_delete=django.db.models.deletion.CASCADE, related_name='registered_attendances', to='authentication.userprofile', verbose_name='Registrado por')), ('student', models.ForeignKey(blank=True, limit_choices_to={'user_type': 'student'}, null=True, on_delete=django.db.models.deletion.CASCADE, to='authentication.userprofile', verbose_name='Estudiante')), ], options={ 'verbose_name': 'Asistencia', 'verbose_name_plural': 'Asistencias', 'ordering': ['-timestamp'], }, ), migrations.CreateModel( name='AttendanceStats', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('total_events', models.IntegerField(default=0, verbose_name='Total de eventos')), ('attended_events', models.IntegerField(default=0, verbose_name='Eventos asistidos')), ('attendance_percentage', models.FloatField(default=0.0, verbose_name='Porcentaje de asistencia')), ('last_updated', models.DateTimeField(auto_now=True, verbose_name='Última actualización')), ('student', models.OneToOneField(limit_choices_to={'user_type': 'student'}, on_delete=django.db.models.deletion.CASCADE, to='authentication.userprofile', verbose_name='Estudiante')), ], options={ 'verbose_name': 'Estadísticas de asistencia', 'verbose_name_plural': 'Estadísticas de asistencia', }, ), ]