# Generated by Django 5.0.9 on 2026-08-17 09:17

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


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('core', '0001_initial'),
        ('members', '0001_initial'),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='Building',
            fields=[
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('name', models.CharField(max_length=150)),
                ('total_floors', models.PositiveIntegerField(default=0)),
                ('created_by', models.ForeignKey(db_constraint=False, blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='%(app_label)s_%(class)s_created', to=settings.AUTH_USER_MODEL)),
                ('project', models.ForeignKey(db_constraint=False, on_delete=django.db.models.deletion.CASCADE, related_name='buildings', to='core.project')),
                ('updated_by', models.ForeignKey(db_constraint=False, blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='%(app_label)s_%(class)s_updated', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'db_table': 'flats_building',
                'ordering': ['name'],
            },
        ),
        migrations.CreateModel(
            name='Floor',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('floor_name', models.CharField(help_text='e.g. Ground, 1st, 2nd', max_length=50)),
                ('floor_number', models.IntegerField(default=0)),
                ('building', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='floors', to='flats.building')),
            ],
            options={
                'db_table': 'flats_floor',
                'ordering': ['floor_number'],
                'unique_together': {('building', 'floor_number')},
            },
        ),
        migrations.CreateModel(
            name='Flat',
            fields=[
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('flat_no', models.CharField(max_length=20)),
                ('share_percent', models.DecimalField(decimal_places=2, default=0, max_digits=5)),
                ('size_sqft', models.DecimalField(decimal_places=2, default=0, max_digits=8)),
                ('parking_count', models.PositiveIntegerField(default=0)),
                ('construction_cost', models.DecimalField(decimal_places=2, default=0, max_digits=14)),
                ('paid_amount', models.DecimalField(decimal_places=2, default=0, max_digits=14)),
                ('status', models.CharField(choices=[('allocated', 'Allocated to Partner'), ('for_sale', 'For Sale'), ('sold', 'Sold'), ('unallocated', 'Unallocated')], default='unallocated', max_length=15)),
                ('notes', models.TextField(blank=True)),
                ('created_by', models.ForeignKey(db_constraint=False, blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='%(app_label)s_%(class)s_created', to=settings.AUTH_USER_MODEL)),
                ('owner', models.ForeignKey(blank=True, help_text='Partner this flat is allocated to (leave blank if for open sale).', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='flats', to='members.member')),
                ('updated_by', models.ForeignKey(db_constraint=False, blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='%(app_label)s_%(class)s_updated', to=settings.AUTH_USER_MODEL)),
                ('floor', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='flats', to='flats.floor')),
            ],
            options={
                'db_table': 'flats_flat',
                'ordering': ['floor__floor_number', 'flat_no'],
                'unique_together': {('floor', 'flat_no')},
            },
        ),
    ]
