# Generated by Django 6.1 on 2026-08-20 19:14

import django.db.models.deletion
import django.utils.timezone
from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('puntos', '0002_cargar_catalogos'),
    ]

    operations = [
        migrations.CreateModel(
            name='CategoriaNecesidad',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('nombre', models.CharField(max_length=100, unique=True)),
            ],
            options={
                'verbose_name': 'categoría de necesidad',
                'verbose_name_plural': 'categorías de necesidad',
                'ordering': ('nombre',),
            },
        ),
        migrations.CreateModel(
            name='SubcategoriaNecesidad',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('nombre', models.CharField(max_length=150)),
                ('categoria', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='subcategorias', to='reportes.categorianecesidad')),
            ],
            options={
                'verbose_name': 'subcategoría de necesidad',
                'verbose_name_plural': 'subcategorías de necesidad',
                'ordering': ('categoria__nombre', 'nombre'),
            },
        ),
        migrations.CreateModel(
            name='ReporteNecesidad',
            fields=[
                ('id_reporte', models.BigAutoField(primary_key=True, serialize=False)),
                ('estado', models.CharField(choices=[('SIN_ATENDER', 'Sin atender'), ('EN_PROCESO', 'En proceso'), ('ATENDIDO_PARCIAL', 'Atendido parcialmente'), ('ATENDIDO', 'Atendido')], default='SIN_ATENDER', max_length=20, verbose_name='estado de atención')),
                ('necesidad_texto', models.TextField(verbose_name='necesidad')),
                ('observacion', models.TextField(blank=True, verbose_name='observación')),
                ('fecha_realizacion', models.DateField(default=django.utils.timezone.localdate, verbose_name='fecha de realización')),
                ('categoria', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='reportes', to='reportes.categorianecesidad')),
                ('punto', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='reportes_necesidades', to='puntos.puntoafectado')),
                ('subcategoria', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='reportes', to='reportes.subcategorianecesidad')),
            ],
            options={
                'verbose_name': 'reporte de necesidad',
                'verbose_name_plural': 'reportes de necesidades',
                'ordering': ('-fecha_realizacion', '-id_reporte'),
            },
        ),
        migrations.AddConstraint(
            model_name='subcategorianecesidad',
            constraint=models.UniqueConstraint(fields=('categoria', 'nombre'), name='subcategoria_unica_por_categoria'),
        ),
    ]
