# Generated by Django 5.2.7 on 2026-01-14 11:26

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


class Migration(migrations.Migration):
    initial = True

    dependencies = [
        ("accounting", "0001_initial"),
        ("business", "0002_initial"),
        ("contenttypes", "0002_remove_content_type_name"),
        ("sales", "0001_initial"),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.AddField(
            model_name="account",
            name="business",
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                related_name="accounts",
                to="business.business",
            ),
        ),
        migrations.AddField(
            model_name="account",
            name="parent_account",
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                related_name="sub_accounts",
                to="accounting.account",
            ),
        ),
        migrations.AddField(
            model_name="commissionstructure",
            name="business",
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                related_name="commission_structures",
                to="business.business",
            ),
        ),
        migrations.AddField(
            model_name="creditpayment",
            name="business",
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE, to="business.business"
            ),
        ),
        migrations.AddField(
            model_name="creditpayment",
            name="credit_transaction",
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                related_name="payments",
                to="sales.credittransaction",
            ),
        ),
        migrations.AddField(
            model_name="journaldetail",
            name="account",
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.PROTECT,
                related_name="journal_details",
                to="accounting.account",
            ),
        ),
        migrations.AddField(
            model_name="journalentry",
            name="business",
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                related_name="journal_entries",
                to="business.business",
            ),
        ),
        migrations.AddField(
            model_name="journalentry",
            name="content_type",
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                to="contenttypes.contenttype",
            ),
        ),
        migrations.AddField(
            model_name="journalentry",
            name="created_by",
            field=models.ForeignKey(
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                related_name="journal_entries",
                to=settings.AUTH_USER_MODEL,
            ),
        ),
        migrations.AddField(
            model_name="journalentry",
            name="posted_by",
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                related_name="posted_entries",
                to=settings.AUTH_USER_MODEL,
            ),
        ),
        migrations.AddField(
            model_name="journaldetail",
            name="journal_entry",
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                related_name="details",
                to="accounting.journalentry",
            ),
        ),
        migrations.AddField(
            model_name="creditpayment",
            name="journal_entry",
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                to="accounting.journalentry",
            ),
        ),
        migrations.AddField(
            model_name="quickbooksconnection",
            name="business",
            field=models.OneToOneField(
                on_delete=django.db.models.deletion.CASCADE,
                related_name="quickbooks_connection",
                to="business.business",
            ),
        ),
        migrations.AddField(
            model_name="transaction",
            name="business",
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE, to="business.business"
            ),
        ),
        migrations.AddField(
            model_name="transaction",
            name="category",
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                related_name="transactions_by_category",
                to="accounting.account",
            ),
        ),
        migrations.AddField(
            model_name="transaction",
            name="content_type",
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                to="contenttypes.contenttype",
            ),
        ),
        migrations.AddField(
            model_name="transaction",
            name="customer",
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                to="sales.customer",
            ),
        ),
        migrations.AddField(
            model_name="transaction",
            name="journal_entry",
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                to="accounting.journalentry",
            ),
        ),
        migrations.AddIndex(
            model_name="account",
            index=models.Index(
                fields=["business", "account_type"],
                name="accounting__busines_c72ce2_idx",
            ),
        ),
        migrations.AddIndex(
            model_name="account",
            index=models.Index(
                fields=["quickbooks_id"], name="accounting__quickbo_d33770_idx"
            ),
        ),
        migrations.AlterUniqueTogether(
            name="account",
            unique_together={("business", "account_code")},
        ),
        migrations.AddIndex(
            model_name="journalentry",
            index=models.Index(
                fields=["business", "entry_date"], name="accounting__busines_4eadb9_idx"
            ),
        ),
        migrations.AddIndex(
            model_name="journalentry",
            index=models.Index(
                fields=["business", "status"], name="accounting__busines_905c9f_idx"
            ),
        ),
        migrations.AddIndex(
            model_name="journalentry",
            index=models.Index(
                fields=["quickbooks_id"], name="accounting__quickbo_4d6410_idx"
            ),
        ),
        migrations.AddIndex(
            model_name="quickbooksconnection",
            index=models.Index(
                fields=["business", "is_active"], name="accounting__busines_7feea4_idx"
            ),
        ),
        migrations.AddIndex(
            model_name="transaction",
            index=models.Index(
                fields=["business", "transaction_date"],
                name="accounting__busines_702019_idx",
            ),
        ),
        migrations.AddIndex(
            model_name="transaction",
            index=models.Index(
                fields=["business", "transaction_type"],
                name="accounting__busines_1eea28_idx",
            ),
        ),
        migrations.AddIndex(
            model_name="transaction",
            index=models.Index(
                fields=["business", "status"], name="accounting__busines_27f68c_idx"
            ),
        ),
        migrations.AddIndex(
            model_name="transaction",
            index=models.Index(
                fields=["content_type", "object_id"],
                name="accounting__content_1f6d93_idx",
            ),
        ),
        migrations.AlterUniqueTogether(
            name="transaction",
            unique_together={("content_type", "object_id")},
        ),
    ]
