# Generated by Django 5.2.7 on 2025-10-27 12:50

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


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('login', '0004_alter_usuario_cc'),
    ]

    operations = [
        migrations.CreateModel(
            name='Url',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('nombre', models.CharField(max_length=250)),
                ('url', models.URLField(max_length=250)),
                ('descrip', models.TextField(blank=True, null=True)),
                ('img_descrip', models.TextField(blank=True, null=True)),
                ('tipo', models.CharField(blank=True, choices=[('informe', 'Informe'), ('datamart', 'Datamart')], max_length=20, null=True)),
                ('campos', models.TextField(blank=True, null=True)),
                ('fecha_creacion', models.DateTimeField(auto_now_add=True)),
                ('area', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='urls', to='login.area')),
            ],
            options={
                'verbose_name': 'URL',
                'verbose_name_plural': 'URLs',
                'db_table': 'url',
            },
        ),
        migrations.CreateModel(
            name='Solicitud',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('justificacion', models.TextField(blank=True, null=True)),
                ('estado', models.IntegerField(choices=[(0, 'Rechazada'), (1, 'Aprobada'), (2, 'Pendiente')], default=2)),
                ('solicitud_area', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='solicitudes_area', to='login.area')),
                ('usuario', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='solicitudes', to='login.usuario')),
                ('solicitud_url', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='solicitudes_url', to='usuarios.url')),
            ],
            options={
                'verbose_name': 'Solicitud',
                'verbose_name_plural': 'Solicitudes',
                'db_table': 'solicitudes',
            },
        ),
        migrations.CreateModel(
            name='PermisoUrl',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('estado', models.IntegerField(default=0)),
                ('usuario', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='permisos_url', to='login.usuario')),
                ('url', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='permisos_url', to='usuarios.url')),
            ],
            options={
                'verbose_name': 'Permiso de URL',
                'verbose_name_plural': 'Permisos de URLs',
                'db_table': 'permisourl',
            },
        ),
        migrations.CreateModel(
            name='PermisoArea',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('estado', models.IntegerField(default=0)),
                ('area', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='permisos_area', to='login.area')),
                ('usuario', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='permisos_area', to='login.usuario')),
            ],
            options={
                'verbose_name': 'Permiso de Área',
                'verbose_name_plural': 'Permisos de Áreas',
                'db_table': 'permisoarea',
                'indexes': [models.Index(fields=['usuario'], name='permisoarea_usuario_idx'), models.Index(fields=['area'], name='permisoarea_area_idx')],
                'unique_together': {('usuario', 'area')},
            },
        ),
        migrations.AddIndex(
            model_name='url',
            index=models.Index(fields=['area'], name='url_area_idx'),
        ),
        migrations.AddIndex(
            model_name='solicitud',
            index=models.Index(fields=['usuario'], name='solicitud_usuario_idx'),
        ),
        migrations.AddIndex(
            model_name='solicitud',
            index=models.Index(fields=['solicitud_area'], name='solicitud_area_idx'),
        ),
        migrations.AddIndex(
            model_name='solicitud',
            index=models.Index(fields=['solicitud_url'], name='solicitud_url_idx'),
        ),
        migrations.AddIndex(
            model_name='permisourl',
            index=models.Index(fields=['usuario'], name='permisourl_usuario_idx'),
        ),
        migrations.AddIndex(
            model_name='permisourl',
            index=models.Index(fields=['url'], name='permisourl_url_idx'),
        ),
        migrations.AlterUniqueTogether(
            name='permisourl',
            unique_together={('usuario', 'url')},
        ),
    ]
