# Generated by Django 5.2.13 on 2026-04-17 07:47

import django.db.models.deletion
import django.utils.timezone
import uuid
from decimal import Decimal
from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('finance', '0003_examen_serviciomedico'),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='DiaClinica',
            fields=[
                ('created_at', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='fecha de creación')),
                ('updated_at', models.DateTimeField(auto_now=True, verbose_name='fecha de actualización')),
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('is_active', models.BooleanField(db_index=True, default=True, verbose_name='activo')),
                ('deleted_at', models.DateTimeField(blank=True, null=True, verbose_name='fecha de eliminación')),
                ('fecha', models.DateField(db_index=True, verbose_name='fecha')),
                ('estado', models.CharField(choices=[('abierto', 'Abierto'), ('cerrado', 'Cerrado')], default='abierto', max_length=10, verbose_name='estado')),
                ('hora_apertura', models.DateTimeField(default=django.utils.timezone.now, verbose_name='hora apertura')),
                ('hora_cierre', models.DateTimeField(blank=True, null=True, verbose_name='hora cierre')),
                ('total_precio_venta', models.DecimalField(decimal_places=2, default=Decimal('0'), max_digits=14, verbose_name='total precio venta (Kz)')),
                ('total_porciento_medico', models.DecimalField(decimal_places=2, default=Decimal('0'), max_digits=14, verbose_name='total porciento médico (Kz)')),
                ('abierto_por', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='dias_abiertos', to=settings.AUTH_USER_MODEL, verbose_name='abierto por')),
                ('cerrado_por', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='dias_cerrados', to=settings.AUTH_USER_MODEL, verbose_name='cerrado por')),
                ('clinica', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='dias', to='finance.clinica', verbose_name='clínica')),
            ],
            options={
                'verbose_name': 'día clínica',
                'verbose_name_plural': 'días clínica',
                'ordering': ['-fecha'],
            },
        ),
        migrations.CreateModel(
            name='DiaClinicaDetalle',
            fields=[
                ('created_at', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='fecha de creación')),
                ('updated_at', models.DateTimeField(auto_now=True, verbose_name='fecha de actualización')),
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('is_active', models.BooleanField(db_index=True, default=True, verbose_name='activo')),
                ('deleted_at', models.DateTimeField(blank=True, null=True, verbose_name='fecha de eliminación')),
                ('numero', models.PositiveIntegerField(verbose_name='No.')),
                ('numero_factura', models.CharField(blank=True, max_length=50, verbose_name='factura')),
                ('laboratorio_precio', models.DecimalField(decimal_places=2, default=Decimal('0'), max_digits=14, verbose_name='lab. precio venta')),
                ('laboratorio_porciento', models.DecimalField(decimal_places=2, default=Decimal('0'), max_digits=5, verbose_name='lab. % médico')),
                ('imagen_precio', models.DecimalField(decimal_places=2, default=Decimal('0'), max_digits=14, verbose_name='img. precio venta')),
                ('imagen_porciento', models.DecimalField(decimal_places=2, default=Decimal('0'), max_digits=5, verbose_name='img. % médico')),
                ('proceder_precio', models.DecimalField(decimal_places=2, default=Decimal('0'), max_digits=14, verbose_name='proc. precio venta')),
                ('proceder_porciento', models.DecimalField(decimal_places=2, default=Decimal('0'), max_digits=5, verbose_name='proc. % médico')),
                ('examen_precio', models.DecimalField(decimal_places=2, default=Decimal('0'), max_digits=14, verbose_name='examen precio venta')),
                ('dia', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='detalles', to='finance.diaclinica', verbose_name='día clínica')),
                ('examen', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='finance.examen', verbose_name='examen')),
                ('imagen', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='finance.imagen', verbose_name='imagen')),
                ('laboratorio', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='finance.laboratorio', verbose_name='laboratorio')),
                ('paciente', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='dia_clinica_detalles', to=settings.AUTH_USER_MODEL, verbose_name='paciente')),
                ('proceder', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='finance.proceder', verbose_name='proceder')),
                ('servicio_medico', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='finance.serviciomedico', verbose_name='servicio médico')),
                ('tipo_cliente', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='finance.tipocliente', verbose_name='tipo cliente')),
            ],
            options={
                'verbose_name': 'detalle día clínica',
                'verbose_name_plural': 'detalles día clínica',
                'ordering': ['numero'],
            },
        ),
        migrations.AddConstraint(
            model_name='diaclinica',
            constraint=models.UniqueConstraint(condition=models.Q(('is_active', True)), fields=('clinica', 'fecha'), name='unique_dia_clinica_fecha'),
        ),
    ]
