# Generated by Django 5.2.16 on 2026-09-15 17:18

import django.core.validators
import django.db.models.deletion
from decimal import Decimal
from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('admin_panel', '0001_initial'),
    ]

    operations = [
        migrations.CreateModel(
            name='BusinessBankDetail',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('key', models.CharField(max_length=100)),
                ('value', models.TextField(blank=True)),
            ],
            options={
                'ordering': ['id'],
            },
        ),
        migrations.CreateModel(
            name='BusinessDetailField',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('key', models.CharField(max_length=100)),
                ('value', models.TextField(blank=True)),
            ],
            options={
                'ordering': ['id'],
            },
        ),
        migrations.CreateModel(
            name='CertificateAttachment',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(blank=True, max_length=255)),
                ('file', models.FileField(upload_to='certificates/attachments/')),
                ('sort_order', models.PositiveIntegerField(default=0)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
            ],
            options={
                'ordering': ['sort_order', 'id'],
            },
        ),
        migrations.CreateModel(
            name='InvestorDetailField',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('section', models.CharField(choices=[('IDENTITY', 'Identity'), ('BANK', 'Bank'), ('NOMINEE', 'Nominee')], max_length=20)),
                ('key', models.CharField(max_length=100)),
                ('value', models.TextField(blank=True)),
            ],
            options={
                'ordering': ['section', 'id'],
            },
        ),
        migrations.CreateModel(
            name='InvestorDocument',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('section', models.CharField(choices=[('IDENTITY', 'Identity'), ('BANK', 'Bank'), ('NOMINEE', 'Nominee'), ('OTHER', 'Other')], default='OTHER', max_length=20)),
                ('title', models.CharField(max_length=255)),
                ('file', models.FileField(upload_to='investors/documents/')),
                ('created_at', models.DateTimeField(auto_now_add=True)),
            ],
            options={
                'ordering': ['-created_at'],
            },
        ),
        migrations.RemoveField(
            model_name='business',
            name='bank_details',
        ),
        migrations.RemoveField(
            model_name='business',
            name='business_details',
        ),
        migrations.RemoveField(
            model_name='business',
            name='documents',
        ),
        migrations.RemoveField(
            model_name='certificate',
            name='attachment_files',
        ),
        migrations.RemoveField(
            model_name='investor',
            name='bank_details',
        ),
        migrations.RemoveField(
            model_name='investor',
            name='identity_details',
        ),
        migrations.RemoveField(
            model_name='investor',
            name='nominee_details',
        ),
        migrations.RemoveField(
            model_name='scheme',
            name='monthly_installment',
        ),
        migrations.AddField(
            model_name='investment',
            name='monthly_installment',
            field=models.DecimalField(blank=True, decimal_places=2, max_digits=14, null=True, validators=[django.core.validators.MinValueValidator(Decimal('0.01'))]),
        ),
        migrations.AlterField(
            model_name='investment',
            name='amount',
            field=models.DecimalField(blank=True, decimal_places=2, max_digits=14, null=True, validators=[django.core.validators.MinValueValidator(Decimal('0.01'))]),
        ),
        migrations.AlterField(
            model_name='investor',
            name='other_details',
            field=models.TextField(blank=True),
        ),
        migrations.AddConstraint(
            model_name='ledgerentry',
            constraint=models.UniqueConstraint(condition=models.Q(('kuber_investment__isnull', False)), fields=('kuber_investment', 'entry_date', 'entry_type'), name='unique_kuber_ledger_entry_per_day_type'),
        ),
        migrations.AddConstraint(
            model_name='ledgerentry',
            constraint=models.UniqueConstraint(condition=models.Q(('investment__isnull', False)), fields=('investment', 'entry_date', 'entry_type'), name='unique_investment_ledger_entry_per_day_type'),
        ),
        migrations.AddField(
            model_name='businessbankdetail',
            name='business',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='bank_detail_fields', to='admin_panel.business'),
        ),
        migrations.AddField(
            model_name='businessdetailfield',
            name='business',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='detail_fields', to='admin_panel.business'),
        ),
        migrations.AddField(
            model_name='certificateattachment',
            name='certificate',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='attachments', to='admin_panel.certificate'),
        ),
        migrations.AddField(
            model_name='investordetailfield',
            name='investor',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='detail_fields', to='admin_panel.investor'),
        ),
        migrations.AddField(
            model_name='investordocument',
            name='investor',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='uploaded_documents', to='admin_panel.investor'),
        ),
        migrations.AddField(
            model_name='investordocument',
            name='uploaded_by',
            field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL),
        ),
        migrations.AddIndex(
            model_name='investordetailfield',
            index=models.Index(fields=['investor', 'section'], name='admin_panel_investo_b5a181_idx'),
        ),
    ]
