# Generated by Django 4.2.28 on 2026-02-14 05:52

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='Category',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=255, null=True)),
                ('service_status', models.IntegerField(blank=True, null=True)),
                ('description', models.TextField(null=True)),
                ('status', models.SmallIntegerField(default=1)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='category_created_by', to=settings.AUTH_USER_MODEL)),
                ('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='subcategories', to='myapp.category')),
                ('updated_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='category_updated_by', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'db_table': 'category',
                'ordering': ['pk'],
            },
        ),
        migrations.CreateModel(
            name='Client',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('client_name', models.CharField(blank=True, max_length=255, null=True)),
                ('phone', models.CharField(blank=True, max_length=20, null=True)),
                ('email', models.EmailField(blank=True, max_length=255, null=True)),
                ('address', models.TextField(blank=True, null=True)),
                ('aadhar', models.CharField(blank=True, max_length=50, null=True)),
                ('pan', models.CharField(blank=True, max_length=10, null=True)),
                ('doj', models.CharField(blank=True, max_length=10, null=True)),
                ('remarks', models.TextField(blank=True, null=True)),
                ('status', models.SmallIntegerField(default=1)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='clients', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'db_table': 'client',
            },
        ),
        migrations.CreateModel(
            name='Otp',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('email', models.CharField(max_length=255, null=True)),
                ('status', models.SmallIntegerField(default=1)),
                ('otp', models.CharField(blank=True, max_length=6)),
                ('otp_created_at', models.DateTimeField(blank=True, null=True)),
            ],
            options={
                'db_table': 'otp',
                'ordering': ['pk'],
            },
        ),
        migrations.CreateModel(
            name='Subcategory',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=255, null=True)),
                ('description', models.TextField(null=True)),
                ('status', models.SmallIntegerField(default=1)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('category', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='myapp.category')),
                ('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='subcategory_created_by', to=settings.AUTH_USER_MODEL)),
                ('updated_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='subcategory_updated_by', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'db_table': 'subcategory',
                'ordering': ['pk'],
            },
        ),
        migrations.CreateModel(
            name='Student',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('photo', models.FileField(blank=True, default='../static/dummy.png', null=True, upload_to='uploads/')),
                ('monthly_fees', models.DecimalField(decimal_places=3, default=0.0, max_digits=10)),
                ('studentName', models.CharField(blank=True, max_length=255, null=True)),
                ('parentName', models.CharField(blank=True, max_length=255, null=True)),
                ('mobilenumber', models.CharField(blank=True, max_length=20, null=True)),
                ('age', models.CharField(blank=True, max_length=10, null=True)),
                ('address', models.TextField(blank=True, null=True)),
                ('classType', models.IntegerField(choices=[(1, 'Normal'), (2, 'Special'), (3, 'Both')])),
                ('dateOfJoining', models.CharField(blank=True, max_length=20, null=True)),
                ('status', models.SmallIntegerField(default=1)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='students', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'db_table': 'student',
            },
        ),
        migrations.CreateModel(
            name='Profiles',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=255, null=True)),
                ('phone', models.CharField(max_length=255, null=True)),
                ('email', models.CharField(max_length=255, null=True)),
                ('address', models.CharField(max_length=255, null=True)),
                ('servicename', models.CharField(max_length=255, null=True)),
                ('gender', models.CharField(max_length=255, null=True)),
                ('profiles', models.FileField(blank=True, default='../static/dummy.png', null=True, upload_to='uploads/')),
                ('password', models.CharField(max_length=255, null=True)),
                ('gstnumber', models.CharField(max_length=255, null=True)),
                ('pincode', models.CharField(max_length=255, null=True)),
                ('doj', models.DateField(null=True)),
                ('gst', models.FileField(blank=True, null=True, upload_to='uploads/')),
                ('companylogo', models.FileField(blank=True, null=True, upload_to='uploads/')),
                ('alteremail', models.CharField(max_length=255, null=True)),
                ('alteremail1', models.CharField(max_length=255, null=True)),
                ('alteremail2', models.CharField(max_length=255, null=True)),
                ('pan', models.FileField(blank=True, null=True, upload_to='uploads/')),
                ('role', models.SmallIntegerField(default=0)),
                ('status', models.SmallIntegerField(default=1)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='user_profiles', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'db_table': 'profile',
            },
        ),
        migrations.CreateModel(
            name='Product',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('company_name', models.CharField(max_length=255, null=True)),
                ('project_name', models.CharField(max_length=255, null=True)),
                ('application', models.CharField(max_length=255, null=True)),
                ('country', models.CharField(max_length=255, null=True)),
                ('deliverydate', models.CharField(max_length=255, null=True)),
                ('bidclosedate', models.CharField(max_length=255, null=True)),
                ('s2dailyflow', models.CharField(max_length=255, null=True)),
                ('s2monthflow', models.CharField(max_length=255, null=True)),
                ('s2weekflow', models.CharField(max_length=255, null=True)),
                ('s2maxdailyflow', models.CharField(max_length=255, null=True)),
                ('s2hourflow', models.CharField(max_length=255, null=True)),
                ('s2bod', models.CharField(max_length=255, null=True)),
                ('s2bodout', models.CharField(max_length=255, null=True)),
                ('s2bodrate', models.CharField(max_length=255, null=True)),
                ('s2cod', models.CharField(max_length=255, null=True)),
                ('s2codout', models.CharField(max_length=255, null=True)),
                ('s2codrate', models.CharField(max_length=255, null=True)),
                ('s2tss', models.CharField(max_length=255, null=True)),
                ('s2tssout', models.CharField(max_length=255, null=True)),
                ('s2tssrate', models.CharField(max_length=255, null=True)),
                ('s2tn', models.CharField(max_length=255, null=True)),
                ('s2tnout', models.CharField(max_length=100, null=True)),
                ('s2tnrate', models.CharField(max_length=100, null=True)),
                ('s2tp', models.CharField(max_length=100, null=True)),
                ('s2tpout', models.CharField(max_length=100, null=True)),
                ('s2tprate', models.CharField(max_length=100, null=True)),
                ('s2oil', models.CharField(max_length=100, null=True)),
                ('s2oilout', models.CharField(max_length=100, null=True)),
                ('s2oilrate', models.CharField(max_length=100, null=True)),
                ('s2avgwatertemp', models.CharField(max_length=100, null=True)),
                ('s2avgwatertempout', models.CharField(max_length=100, null=True)),
                ('s2avgwatertemprate', models.CharField(max_length=100, null=True)),
                ('s2maxwatertemp', models.CharField(max_length=100, null=True)),
                ('s2maxwatertempout', models.CharField(max_length=100, null=True)),
                ('s2maxwatertemprate', models.CharField(max_length=100, null=True)),
                ('s2minwatertemp', models.CharField(max_length=100, null=True)),
                ('s2minwatertempout', models.CharField(max_length=100, null=True)),
                ('s2minwatertemprate', models.CharField(max_length=100, null=True)),
                ('Davgflux1', models.CharField(max_length=100, null=True)),
                ('Davgflux2', models.CharField(max_length=100, null=True)),
                ('Dpeakflux', models.CharField(max_length=100, null=True)),
                ('Msurfacearea1', models.CharField(max_length=100, null=True)),
                ('Msurfacearea2', models.CharField(max_length=100, null=True)),
                ('productcode', models.CharField(max_length=100, null=True)),
                ('Noofmodule', models.CharField(max_length=100, null=True)),
                ('Noofmtrain', models.CharField(max_length=100, null=True)),
                ('Noofmptrain', models.CharField(max_length=100, null=True)),
                ('TNM', models.CharField(max_length=100, null=True)),
                ('TMsurfacearea', models.CharField(max_length=100, null=True)),
                ('Aavgflux1', models.CharField(max_length=100, null=True)),
                ('Aavgflux2', models.CharField(max_length=100, null=True)),
                ('Apeakflux1', models.CharField(max_length=100, null=True)),
                ('Apeakflux2', models.CharField(max_length=100, null=True)),
                ('s4AT1', models.CharField(max_length=100, null=True)),
                ('s4AT2', models.CharField(max_length=100, null=True)),
                ('s4AT3', models.CharField(max_length=100, null=True)),
                ('s4AT4', models.CharField(max_length=100, null=True)),
                ('s4AT5', models.CharField(max_length=100, null=True)),
                ('s4AT6', models.CharField(max_length=100, null=True)),
                ('s4AT7', models.CharField(max_length=100, null=True)),
                ('s4TT1', models.CharField(max_length=100, null=True)),
                ('s4TT2', models.CharField(max_length=100, null=True)),
                ('s4TT3', models.CharField(max_length=100, null=True)),
                ('s4TT4', models.CharField(max_length=100, null=True)),
                ('s4TT5', models.CharField(max_length=100, null=True)),
                ('s4TT6', models.CharField(max_length=100, null=True)),
                ('s4TT7', models.CharField(max_length=100, null=True)),
                ('s4MT1', models.CharField(max_length=100, null=True)),
                ('s4MT2', models.CharField(max_length=100, null=True)),
                ('s4MT3', models.CharField(max_length=100, null=True)),
                ('s4MT4', models.CharField(max_length=100, null=True)),
                ('s4MT5', models.CharField(max_length=100, null=True)),
                ('s4MT6', models.CharField(max_length=100, null=True)),
                ('s4MT7', models.CharField(max_length=100, null=True)),
                ('status', models.SmallIntegerField(default=1)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='product_created_by', to=settings.AUTH_USER_MODEL)),
                ('updated_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='product_updated_by', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'db_table': 'product',
                'ordering': ['pk'],
            },
        ),
        migrations.CreateModel(
            name='Notification',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('type', models.CharField(max_length=20)),
                ('message', models.TextField()),
                ('status', models.SmallIntegerField(default=0)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='Notifications', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'db_table': 'notification',
                'ordering': ['pk'],
            },
        ),
        migrations.CreateModel(
            name='Loan',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('loan_amount', models.DecimalField(decimal_places=2, max_digits=10)),
                ('loan_date', models.DateField()),
                ('interest_rate', models.DecimalField(decimal_places=2, max_digits=5)),
                ('loan_tenure_months', models.PositiveIntegerField()),
                ('emi_start_date', models.DateField()),
                ('collection_type', models.CharField(default='Day', max_length=10)),
                ('collection_day', models.CharField(max_length=50)),
                ('loan_status', models.CharField(default='Active', max_length=10)),
                ('remarks', models.TextField(blank=True, null=True)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='loans', to='myapp.client')),
            ],
            options={
                'db_table': 'loan',
            },
        ),
        migrations.CreateModel(
            name='JobPost',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=255)),
                ('poster', models.FileField(blank=True, default='../static/dummy.png', null=True, upload_to='uploads/')),
                ('salary', models.CharField(max_length=100)),
                ('location', models.CharField(max_length=255)),
                ('description', models.TextField()),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('status', models.IntegerField(default=1)),
                ('category', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='myapp.category')),
                ('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='jobpost_created_by', to=settings.AUTH_USER_MODEL)),
                ('sub_category', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='myapp.subcategory')),
                ('updated_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='jobpost_updated_by', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'db_table': 'jobpost',
                'ordering': ['pk'],
            },
        ),
        migrations.CreateModel(
            name='FeesHistory',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('amount_paid', models.DecimalField(decimal_places=3, max_digits=10)),
                ('payment_mode', models.CharField(default='Cash', max_length=50)),
                ('payment_date', models.DateField(auto_now_add=True)),
                ('transaction_id', models.CharField(blank=True, max_length=100, null=True)),
                ('student', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='payment_history', to='myapp.student')),
            ],
            options={
                'db_table': 'fees_history',
            },
        ),
        migrations.CreateModel(
            name='Fees',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('receipt_no', models.CharField(default='D3244F37', max_length=20, unique=True)),
                ('total_amount', models.DecimalField(decimal_places=3, max_digits=10)),
                ('paid_amount', models.DecimalField(decimal_places=3, max_digits=10)),
                ('balance_amount', models.DecimalField(decimal_places=3, max_digits=10)),
                ('payment_date', models.DateField()),
                ('remarks', models.TextField(blank=True, null=True)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='student_fees', to='myapp.student')),
            ],
            options={
                'db_table': 'fees',
            },
        ),
        migrations.CreateModel(
            name='Collection',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('collectedamonut', models.CharField(max_length=255, null=True)),
                ('method', models.CharField(max_length=50)),
                ('remarks', models.TextField(blank=True, null=True)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('loan', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='collections', to='myapp.loan')),
            ],
            options={
                'db_table': 'collection',
            },
        ),
        migrations.CreateModel(
            name='Attendance',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('date', models.DateField()),
                ('status', models.CharField(choices=[('Present', 'Present'), ('Absent', 'Absent')], max_length=10)),
                ('session_type', models.IntegerField(choices=[(1, 'Normal Class'), (2, 'Special Class')])),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='attendances', to='myapp.student')),
                ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'db_table': 'attendance',
            },
        ),
    ]
