# Generated by Django 6.0 on 2026-01-07 14:34

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


class Migration(migrations.Migration):

    initial = True

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

    operations = [
        migrations.CreateModel(
            name='TblClient',
            fields=[
                ('client_id', models.AutoField(primary_key=True, serialize=False)),
                ('client_name', models.CharField(max_length=255)),
                ('client_type', models.CharField(blank=True, default='End', max_length=100, null=True)),
                ('client_contact_name', models.CharField(max_length=255)),
                ('client_contact_email', models.CharField(max_length=255)),
                ('address1', models.CharField(blank=True, max_length=255, null=True)),
                ('address2', models.CharField(blank=True, max_length=255, null=True)),
                ('state', models.CharField(blank=True, max_length=255, null=True)),
                ('pincode', models.CharField(blank=True, max_length=255, null=True)),
                ('client_country_code', models.CharField(max_length=5)),
                ('client_contact_number', models.CharField(blank=True, max_length=100, null=True)),
                ('status', models.CharField(choices=[('Active', 'Active'), ('Inactive', 'Inactive')], default='Active', max_length=50)),
                ('created_date', models.DateTimeField(auto_now_add=True, null=True)),
                ('created_by', models.CharField(blank=True, max_length=100, null=True)),
                ('updated_by', models.CharField(blank=True, max_length=100, null=True)),
                ('updated_date', models.DateTimeField(auto_now=True, null=True)),
                ('client_logo', models.ImageField(blank=True, null=True, upload_to='images/client/logo/')),
                ('website_url', models.CharField(blank=True, max_length=200, null=True)),
                ('client_jd_serial_number', models.CharField(default=1, max_length=200)),
            ],
            options={
                'db_table': 'tbl_client',
            },
        ),
        migrations.CreateModel(
            name='TblVendor',
            fields=[
                ('vendor_id', models.AutoField(primary_key=True, serialize=False)),
                ('vendor_name', models.CharField(max_length=255)),
                ('vendor_type', models.CharField(blank=True, max_length=100, null=True)),
                ('vendor_contact_name', models.CharField(max_length=255)),
                ('vendor_contact_email', models.CharField(max_length=255)),
                ('address1', models.CharField(blank=True, max_length=255, null=True)),
                ('address2', models.CharField(blank=True, max_length=255, null=True)),
                ('state', models.CharField(blank=True, max_length=255, null=True)),
                ('pincode', models.CharField(blank=True, max_length=255, null=True)),
                ('vendor_country_code', models.CharField(max_length=5)),
                ('vendor_contact_number', models.CharField(blank=True, max_length=100, null=True)),
                ('status', models.CharField(choices=[('Active', 'Active'), ('Inactive', 'Inactive')], default='Active', max_length=50)),
                ('created_date', models.DateTimeField(auto_now_add=True, null=True)),
                ('created_by', models.CharField(blank=True, max_length=100, null=True)),
                ('updated_by', models.CharField(blank=True, max_length=100, null=True)),
                ('updated_date', models.DateTimeField(auto_now=True, null=True)),
                ('vendor_logo', models.ImageField(blank=True, null=True, upload_to='images/vendor/logo/')),
                ('website_url', models.URLField(blank=True, null=True)),
            ],
            options={
                'db_table': 'tbl_vendor',
            },
        ),
        migrations.CreateModel(
            name='EmailOTPUser',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('counter', models.IntegerField(default=0)),
                ('is_verified', models.BooleanField(default=False)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='api_email_otps', to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='TblClientDocument',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('document', models.FileField(upload_to='documents/client/')),
                ('uploaded_date', models.DateTimeField(auto_now_add=True)),
                ('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='documents', to='masters.tblclient')),
            ],
            options={
                'db_table': 'tbl_client_documents',
            },
        ),
        migrations.CreateModel(
            name='TblDepartment',
            fields=[
                ('department_id', models.AutoField(primary_key=True, serialize=False)),
                ('department_name', models.CharField(max_length=255)),
                ('dep_contact_name', models.CharField(blank=True, max_length=100, null=True)),
                ('dep_contact_email', models.CharField(max_length=255)),
                ('dep_country_code', models.CharField(max_length=5)),
                ('dep_contact_number', models.CharField(max_length=255)),
                ('address1', models.CharField(blank=True, max_length=255, null=True)),
                ('address2', models.CharField(blank=True, max_length=255, null=True)),
                ('state', models.CharField(blank=True, max_length=255, null=True)),
                ('pincode', models.CharField(blank=True, max_length=255, null=True)),
                ('status', models.CharField(choices=[('Active', 'Active'), ('Inactive', 'Inactive')], default='Active', max_length=50)),
                ('created_date', models.DateTimeField(auto_now_add=True, null=True)),
                ('created_by', models.DateTimeField(auto_now_add=True, null=True)),
                ('updated_by', models.CharField(blank=True, max_length=100, null=True)),
                ('updated_date', models.DateTimeField(auto_now=True, null=True)),
                ('client', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='client', to='masters.tblclient')),
            ],
            options={
                'db_table': 'tbl_department',
            },
        ),
        migrations.CreateModel(
            name='TblImpDepartment',
            fields=[
                ('imp_department_id', models.AutoField(primary_key=True, serialize=False)),
                ('imp_department_name', models.CharField(max_length=255)),
                ('imp_dep_contact_name', models.CharField(blank=True, max_length=100, null=True)),
                ('imp_dep_contact_email', models.CharField(max_length=255)),
                ('imp_dep_country_code', models.CharField(max_length=5)),
                ('imp_dep_contact_number', models.CharField(max_length=255)),
                ('address1', models.CharField(blank=True, max_length=255, null=True)),
                ('address2', models.CharField(blank=True, max_length=255, null=True)),
                ('state', models.CharField(blank=True, max_length=255, null=True)),
                ('pincode', models.CharField(blank=True, max_length=255, null=True)),
                ('status', models.CharField(choices=[('Active', 'Active'), ('Inactive', 'Inactive')], default='Active', max_length=50)),
                ('created_date', models.DateTimeField(auto_now_add=True, null=True)),
                ('created_by', models.DateTimeField(auto_now_add=True, null=True)),
                ('updated_by', models.CharField(blank=True, max_length=100, null=True)),
                ('updated_date', models.DateTimeField(auto_now=True, null=True)),
                ('implementer', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='implementer', to='admin_users.implementerdetails')),
            ],
            options={
                'db_table': 'tbl_impdepartment',
            },
        ),
        migrations.AddField(
            model_name='tblclient',
            name='imp_department',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='clients', to='masters.tblimpdepartment'),
        ),
        migrations.CreateModel(
            name='TblJobDescription',
            fields=[
                ('jd_id', models.AutoField(primary_key=True, serialize=False)),
                ('jd_display_id', models.CharField(max_length=50, unique=True)),
                ('jd_date', models.DateField(blank=True, null=True)),
                ('job_title', models.CharField(max_length=500)),
                ('job_type', models.CharField(blank=True, max_length=200, null=True)),
                ('years_of_experience', models.CharField(max_length=200)),
                ('about_company', models.TextField(blank=True, null=True)),
                ('job_summary', models.TextField()),
                ('responsibilities', models.TextField()),
                ('domain_requirements', models.TextField(blank=True, null=True)),
                ('certification_requirements', models.TextField(blank=True, null=True)),
                ('security_clearance_requirements', models.TextField(blank=True, null=True)),
                ('onsite_job', models.CharField(blank=True, max_length=50, null=True)),
                ('job_location', models.CharField(blank=True, max_length=500, null=True)),
                ('required_qualifications', models.TextField(blank=True, null=True)),
                ('preferred_qualifications', models.TextField(blank=True, null=True)),
                ('working_condition', models.TextField(blank=True, null=True)),
                ('benefits', models.TextField(blank=True, null=True)),
                ('jd_source', models.CharField(blank=True, max_length=200, null=True)),
                ('search_pattern', models.CharField(blank=True, max_length=200, null=True)),
                ('requirement_priority', models.CharField(blank=True, max_length=500, null=True)),
                ('salary_range', models.CharField(blank=True, max_length=500, null=True)),
                ('no_of_open_positions', models.CharField(blank=True, default='1', max_length=500, null=True)),
                ('status', models.CharField(blank=True, max_length=100, null=True)),
                ('has_error', models.BooleanField(default=False)),
                ('error_desc', models.TextField(blank=True, null=True)),
                ('created_by', models.CharField(blank=True, max_length=100, null=True)),
                ('created_dt', models.DateTimeField(auto_now_add=True, null=True)),
                ('updated_by', models.CharField(blank=True, max_length=100, null=True)),
                ('updated_dt', models.DateTimeField(auto_now=True, null=True)),
                ('client_id', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='jd_client', to='masters.tblclient')),
                ('department_id', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='jd_department', to='masters.tbldepartment')),
                ('implementor_id', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='jd_implementor', to='admin_users.implementerdetails')),
            ],
            options={
                'db_table': 'tbl_job_description',
            },
        ),
        migrations.CreateModel(
            name='LinkedInJobPost',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('linkedin_post_urn', models.CharField(blank=True, max_length=255, null=True)),
                ('apply_url', models.URLField()),
                ('status', models.CharField(choices=[('Posted', 'Posted'), ('Failed', 'Failed')], default='Posted', max_length=20)),
                ('posted_payload', models.JSONField(blank=True, help_text='Fields selected and custom text used for posting', null=True)),
                ('posted_at', models.DateTimeField(auto_now_add=True)),
                ('posted_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
                ('jd', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='linkedin_posts', to='masters.tbljobdescription')),
            ],
        ),
        migrations.CreateModel(
            name='AssignJd',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('status', models.CharField(default='Assigned', max_length=100)),
                ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='assignjd', to=settings.AUTH_USER_MODEL)),
                ('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='masters.tblclient')),
                ('departments', models.ManyToManyField(blank=True, to='masters.tbldepartment')),
                ('jd', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='masters.tbljobdescription')),
            ],
        ),
        migrations.CreateModel(
            name='TblVendorDocument',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('document', models.FileField(upload_to='documents/vendor/')),
                ('uploaded_date', models.DateTimeField(auto_now_add=True)),
                ('vendor', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='documents', to='masters.tblvendor')),
            ],
            options={
                'db_table': 'tbl_vendor_documents',
            },
        ),
        migrations.CreateModel(
            name='UserClient',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='user_mappings', to='masters.tblclient')),
                ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='client_mappings', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'db_table': 'user_client',
                'unique_together': {('user', 'client')},
            },
        ),
        migrations.CreateModel(
            name='UserRecruiterMapping',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('recruiter', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='mapped_delivery_managers', to=settings.AUTH_USER_MODEL)),
                ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='recruiter_mappings', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'unique_together': {('user', 'recruiter')},
            },
        ),
    ]
