# Generated by Django 6.0.5 on 2026-05-28 00:23

import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='Cuenta',
            fields=[
                ('codigo', models.CharField(help_text='Código de la cuenta contable (único)', max_length=50, primary_key=True, serialize=False)),
                ('nombre', models.CharField(help_text='Nombre descriptivo de la cuenta', max_length=255)),
                ('movimiento', models.CharField(choices=[('SI', 'SI'), ('NO', 'NO')], default='SI', help_text='SI si recibe asientos directos, NO si es de agrupación', max_length=2)),
                ('tipo_saldo', models.CharField(choices=[('DEBE', 'DEBE'), ('HABER', 'HABER')], help_text='Naturaleza contable de la cuenta (DEBE o HABER)', max_length=5)),
            ],
            options={
                'verbose_name': 'Cuenta',
                'verbose_name_plural': 'Cuentas',
                'ordering': ['codigo'],
            },
        ),
        migrations.CreateModel(
            name='Asiento',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('fecha', models.DateField(help_text='Fecha de registro del asiento contable')),
                ('glosa', models.TextField(help_text='Descripción o glosa general del movimiento')),
                ('creado_por', models.ForeignKey(help_text='Usuario que registró el asiento', on_delete=django.db.models.deletion.PROTECT, related_name='asientos', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'verbose_name': 'Asiento',
                'verbose_name_plural': 'Asientos',
                'ordering': ['-fecha', '-id'],
            },
        ),
        migrations.CreateModel(
            name='DetalleAsiento',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('debe', models.DecimalField(decimal_places=2, default=0.0, help_text='Monto cargado al Debe', max_digits=15)),
                ('haber', models.DecimalField(decimal_places=2, default=0.0, help_text='Monto abonado al Haber', max_digits=15)),
                ('asiento', models.ForeignKey(help_text='Asiento de cabecera', on_delete=django.db.models.deletion.CASCADE, related_name='detalles', to='contabilidad.asiento')),
                ('cuenta', models.ForeignKey(help_text='Cuenta afectada', on_delete=django.db.models.deletion.PROTECT, related_name='detalles', to='contabilidad.cuenta')),
            ],
            options={
                'verbose_name': 'Detalle de Asiento',
                'verbose_name_plural': 'Detalles de Asiento',
            },
        ),
    ]
