# Generated by Django 4.2.5 on 2026-01-23 06:31

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


class Migration(migrations.Migration):
    initial = True

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name="Lead",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                (
                    "is_individual",
                    models.BooleanField(
                        choices=[(True, "Individual"), (False, "Company")]
                    ),
                ),
                (
                    "company_name",
                    models.CharField(blank=True, max_length=255, null=True),
                ),
                ("last_name", models.CharField(blank=True, max_length=255, null=True)),
                ("first_name", models.CharField(blank=True, max_length=255, null=True)),
                ("is_active", models.BooleanField(default=True)),
                ("demo_date", models.DateField(blank=True, null=True)),
                ("demo_time", models.TimeField(blank=True, null=True)),
                ("street", models.CharField(blank=True, max_length=255, null=True)),
                ("city", models.CharField(blank=True, max_length=255, null=True)),
                ("state", models.CharField(blank=True, max_length=255, null=True)),
                ("post_code", models.CharField(blank=True, max_length=6, null=True)),
                ("country", models.CharField(blank=True, max_length=255, null=True)),
                (
                    "geolocation",
                    models.CharField(blank=True, max_length=255, null=True),
                ),
                ("work_phone", models.CharField(blank=True, max_length=21, null=True)),
                (
                    "business_type",
                    models.BigIntegerField(
                        blank=True,
                        choices=[
                            (1, "Commercial"),
                            (2, "Residential"),
                            (3, "Shopfitters"),
                            (4, "Other"),
                        ],
                        null=True,
                    ),
                ),
                (
                    "lead_source",
                    models.BigIntegerField(
                        blank=True,
                        choices=[
                            (1, "Sales agent"),
                            (2, "Facebook"),
                            (3, "Instagram"),
                            (4, "Linkin"),
                            (5, "Website"),
                            (6, "Referral"),
                        ],
                        null=True,
                    ),
                ),
                (
                    "status",
                    models.BigIntegerField(
                        blank=True,
                        choices=[
                            (1, "New"),
                            (2, "Initial Contact Made"),
                            (3, "Un-Qualified"),
                            (4, "In Discussion"),
                            (5, "Demo Scheduled"),
                            (6, "Quoted"),
                            (7, "Closed Won"),
                            (8, "Closed Lost"),
                        ],
                        null=True,
                    ),
                ),
                ("mobile", models.CharField(blank=True, max_length=21, null=True)),
                ("email", models.EmailField(blank=True, max_length=255, null=True)),
                ("website", models.URLField(blank=True, max_length=255, null=True)),
                (
                    "contact_name",
                    models.CharField(blank=True, max_length=25, null=True),
                ),
                ("salutation", models.CharField(blank=True, max_length=255, null=True)),
                ("abn", models.CharField(blank=True, max_length=11, null=True)),
                ("customer_id", models.CharField(blank=True, max_length=11, null=True)),
                ("products", models.JSONField(blank=True, default=list, null=True)),
                ("created_at", models.DateTimeField(auto_now_add=True)),
                ("updated_at", models.DateTimeField(auto_now=True)),
                ("deleted_at", models.DateTimeField(blank=True, null=True)),
                ("soft_deleted", models.BooleanField(default=False)),
                (
                    "assigned_to",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        related_name="assigned_leads",
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
                (
                    "created_by",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        related_name="created_lead",
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
                (
                    "deleted_by",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        related_name="deleted_lead",
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
                (
                    "updated_by",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        related_name="updated_lead",
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
            ],
        ),
        migrations.CreateModel(
            name="Leadnote",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                ("note", models.TextField()),
                ("groupid", models.BigIntegerField()),
                ("reminder_date", models.DateField(blank=True, null=True)),
                ("meeting_time", models.TimeField(blank=True, null=True)),
                ("mail_status", models.BooleanField(default=False)),
                ("is_read", models.BooleanField(default=False)),
                ("created_at", models.DateTimeField(auto_now_add=True)),
                ("updated_at", models.DateTimeField(auto_now_add=True)),
                ("meeting_invitation", models.BooleanField(default=False)),
                ("meet_link", models.URLField(blank=True, max_length=500, null=True)),
                ("deleted_at", models.DateTimeField(blank=True, null=True)),
                ("soft_deleted", models.BooleanField(default=False)),
                ("is_it_lead_demo", models.BooleanField(default=False)),
                (
                    "assigned_to",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        related_name="assigned_leadnotes",
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
                (
                    "created_by",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        related_name="created_leadnotes",
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
                (
                    "deleted_by",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        related_name="deleted_leadnotes",
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
                (
                    "lead",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        related_name="notes",
                        to="leads.lead",
                    ),
                ),
                (
                    "updated_by",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        related_name="updated_leadnotes",
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
            ],
        ),
        migrations.CreateModel(
            name="LeadAttachmentPhotos",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                (
                    "attachment",
                    models.FileField(blank=True, null=True, upload_to="attachments/"),
                ),
                ("deleted_at", models.DateTimeField(blank=True, null=True)),
                ("created_at", models.DateTimeField(auto_now_add=True)),
                ("soft_deleted", models.BooleanField(default=False)),
                (
                    "created_by",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        related_name="created_leadattachmentphotos",
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
                (
                    "deleted_by",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        related_name="deleted_leadattachmentphotos",
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
                (
                    "lead",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE, to="leads.lead"
                    ),
                ),
                (
                    "updated_by",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        related_name="updated_leadattachmentphotos",
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
            ],
        ),
        migrations.CreateModel(
            name="LeadAttachmentFiles",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                (
                    "attachment",
                    models.FileField(blank=True, null=True, upload_to="attachments/"),
                ),
                ("deleted_at", models.DateTimeField(blank=True, null=True)),
                ("created_at", models.DateTimeField(auto_now_add=True)),
                ("soft_deleted", models.BooleanField(default=False)),
                (
                    "created_by",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        related_name="created_leadattachmentfiles",
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
                (
                    "deleted_by",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        related_name="deleted_leadattachmentfiles",
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
                (
                    "lead",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE, to="leads.lead"
                    ),
                ),
                (
                    "updated_by",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        related_name="updated_leadattachmentfiles",
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
            ],
        ),
        migrations.CreateModel(
            name="Lead_Quote",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                (
                    "attachment",
                    models.FileField(null=True, upload_to="leadQuote_attachment/"),
                ),
                ("version", models.BigIntegerField()),
                (
                    "mailstatus",
                    models.PositiveSmallIntegerField(
                        choices=[(0, "Created"), (1, "Mail Sent"), (2, "Close")],
                        default=0,
                    ),
                ),
                ("created_at", models.DateTimeField(auto_now_add=True)),
                ("updated_at", models.DateTimeField(auto_now=True)),
                ("deleted_at", models.DateTimeField(blank=True, null=True)),
                ("soft_deleted", models.BooleanField(default=False)),
                (
                    "created_by",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        related_name="created_lead_quote",
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
                (
                    "deleted_by",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        related_name="deleted_lead_quote",
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
                (
                    "lead",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE, to="leads.lead"
                    ),
                ),
                (
                    "updated_by",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        related_name="updated_lead_quote",
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
            ],
        ),
    ]
