# Generated by Django 6.0.1 on 2026-02-14 07:53

import ckeditor.fields
import django.contrib.auth.models
import django.contrib.auth.validators
import django.db.models.deletion
import django.utils.timezone
from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('auth', '0012_alter_user_first_name_max_length'),
    ]

    operations = [
        migrations.CreateModel(
            name='ContactMessage',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=100)),
                ('phone', models.CharField(max_length=15)),
                ('message', models.TextField()),
                ('created_at', models.DateTimeField(auto_now_add=True)),
            ],
        ),
        migrations.CreateModel(
            name='User',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('password', models.CharField(max_length=128, verbose_name='password')),
                ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
                ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),
                ('username', models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], verbose_name='username')),
                ('first_name', models.CharField(blank=True, max_length=150, verbose_name='first name')),
                ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')),
                ('email', models.EmailField(blank=True, max_length=254, verbose_name='email address')),
                ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')),
                ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')),
                ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')),
                ('is_recruiter', models.BooleanField(default=False)),
                ('is_candidate', models.BooleanField(default=False)),
                ('role_selected', models.BooleanField(default=False)),
                ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.group', verbose_name='groups')),
                ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.permission', verbose_name='user permissions')),
            ],
            options={
                'verbose_name': 'user',
                'verbose_name_plural': 'users',
                'abstract': False,
            },
            managers=[
                ('objects', django.contrib.auth.models.UserManager()),
            ],
        ),
        migrations.CreateModel(
            name='Job',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=200)),
                ('meta_title', models.CharField(blank=True, help_text='Google pe dikhne wala title', max_length=100)),
                ('meta_description', models.TextField(blank=True, help_text='Chota summary SEO ke liye', max_length=160)),
                ('seo_keywords', models.CharField(blank=True, help_text='Keywords (comma se alag karein)', max_length=255)),
                ('job_code', models.CharField(editable=False, max_length=10, unique=True)),
                ('sequence', models.PositiveIntegerField(default=0)),
                ('is_featured', models.BooleanField(default=False, verbose_name='Featured Job (Paid)')),
                ('image', models.ImageField(blank=True, null=True, upload_to='job_images/')),
                ('vacancies', models.IntegerField(default=1)),
                ('country', models.CharField(choices=[('Afghanistan', 'Afghanistan 🇦🇫'), ('Albania', 'Albania 🇦🇱'), ('Algeria', 'Algeria 🇩🇿'), ('Andorra', 'Andorra 🇦🇩'), ('Angola', 'Angola 🇦🇴'), ('Argentina', 'Argentina 🇦🇷'), ('Armenia', 'Armenia 🇦🇲'), ('Australia', 'Australia 🇦🇺'), ('Austria', 'Austria 🇦🇹'), ('Azerbaijan', 'Azerbaijan 🇦🇿'), ('Bahamas', 'Bahamas 🇧🇸'), ('Bahrain', 'Bahrain 🇧🇭'), ('Bangladesh', 'Bangladesh 🇧🇩'), ('Barbados', 'Barbados 🇧🇧'), ('Belarus', 'Belarus 🇧🇾'), ('Belgium', 'Belgium 🇧🇪'), ('Belize', 'Belize 🇧🇿'), ('Benin', 'Benin 🇧🇯'), ('Bhutan', 'Bhutan 🇧🇹'), ('Bolivia', 'Bolivia 🇧🇴'), ('Bosnia and Herzegovina', 'Bosnia and Herzegovina 🇧🇦'), ('Botswana', 'Botswana 🇧🇼'), ('Brazil', 'Brazil 🇧🇷'), ('Brunei', 'Brunei 🇧🇳'), ('Bulgaria', 'Bulgaria 🇧🇬'), ('Burkina Faso', 'Burkina Faso 🇧🇫'), ('Burundi', 'Burundi 🇧🇮'), ('Cambodia', 'Cambodia 🇰🇭'), ('Cameroon', 'Cameroon 🇨🇲'), ('Canada', 'Canada 🇨🇦'), ('Chad', 'Chad 🇹🇩'), ('Chile', 'Chile 🇨🇱'), ('China', 'China 🇨🇳'), ('Colombia', 'Colombia 🇨🇴'), ('Congo', 'Congo 🇨🇬'), ('Costa Rica', 'Costa Rica 🇨🇷'), ('Croatia', 'Croatia 🇭🇷'), ('Cuba', 'Cuba 🇨🇺'), ('Cyprus', 'Cyprus 🇨🇾'), ('Czech Republic', 'Czech Republic 🇨🇿'), ('Denmark', 'Denmark 🇩🇰'), ('Djibouti', 'Djibouti 🇩🇯'), ('Dominica', 'Dominica 🇩🇲'), ('Dominican Republic', 'Dominican Republic 🇩🇴'), ('Ecuador', 'Ecuador 🇪🇨'), ('Egypt', 'Egypt 🇪🇬'), ('El Salvador', 'El Salvador 🇸🇻'), ('Estonia', 'Estonia 🇪🇪'), ('Ethiopia', 'Ethiopia 🇪🇹'), ('Fiji', 'Fiji 🇫🇯'), ('Finland', 'Finland 🇫🇮'), ('France', 'France 🇫🇷'), ('Gabon', 'Gabon 🇬🇦'), ('Gambia', 'Gambia 🇬🇲'), ('Georgia', 'Georgia 🇬🇪'), ('Germany', 'Germany 🇩🇪'), ('Ghana', 'Ghana 🇬🇭'), ('Greece', 'Greece 🇬🇷'), ('Grenada', 'Grenada 🇬🇩'), ('Guatemala', 'Guatemala 🇬🇹'), ('Guinea', 'Guinea 🇬🇳'), ('Guyana', 'Guyana 🇬🇾'), ('Haiti', 'Haiti 🇭🇹'), ('Honduras', 'Honduras 🇭🇳'), ('Hungary', 'Hungary 🇭🇺'), ('Iceland', 'Iceland 🇮🇸'), ('India', 'India 🇮🇳'), ('Indonesia', 'Indonesia 🇮🇩'), ('Iran', 'Iran 🇮🇷'), ('Iraq', 'Iraq 🇮🇶'), ('Ireland', 'Ireland 🇮🇪'), ('Israel', 'Israel 🇮🇱'), ('Italy', 'Italy 🇮🇹'), ('Jamaica', 'Jamaica 🇯🇲'), ('Japan', 'Japan 🇯🇵'), ('Jordan', 'Jordan 🇯🇴'), ('Kazakhstan', 'Kazakhstan 🇰🇿'), ('Kenya', 'Kenya 🇰🇪'), ('Kuwait', 'Kuwait 🇰🇼'), ('Kyrgyzstan', 'Kyrgyzstan 🇰🇬'), ('Laos', 'Laos 🇱🇦'), ('Latvia', 'Latvia 🇱🇻'), ('Lebanon', 'Lebanon 🇱🇧'), ('Lesotho', 'Lesotho 🇱🇸'), ('Liberia', 'Liberia 🇱🇷'), ('Libya', 'Libya 🇱🇾'), ('Lithuania', 'Lithuania 🇱🇹'), ('Luxembourg', 'Luxembourg 🇱🇺'), ('Madagascar', 'Madagascar 🇲🇬'), ('Malawi', 'Malawi 🇲🇼'), ('Malaysia', 'Malaysia 🇲🇾'), ('Maldives', 'Maldives 🇲️🇻'), ('Mali', 'Mali 🇲🇱'), ('Malta', 'Malta 🇲🇹'), ('Mauritania', 'Mauritania 🇲🇷'), ('Mauritius', 'Mauritius 🇲🇺'), ('Mexico', 'Mexico 🇲🇽'), ('Moldova', 'Moldova 🇲🇩'), ('Monaco', 'Monaco 🇲🇨'), ('Mongolia', 'Mongolia 🇲🇳'), ('Montenegro', 'Montenegro 🇲🇪'), ('Morocco', 'Morocco 🇲🇦'), ('Mozambique', 'Mozambique 🇲🇿'), ('Myanmar', 'Myanmar 🇲🇲'), ('Namibia', 'Namibia 🇳🇦'), ('Nepal', 'Nepal 🇳🇵'), ('Netherlands', 'Netherlands 🇳🇱'), ('New Zealand', 'New Zealand 🇳🇿'), ('Nicaragua', 'Nicaragua 🇳🇮'), ('Niger', 'Niger 🇳🇪'), ('Nigeria', 'Nigeria 🇳🇬'), ('North Korea', 'North Korea 🇰🇵'), ('Norway', 'Norway 🇳🇴'), ('Oman', 'Oman 🇴🇲'), ('Pakistan', 'Pakistan 🇵🇰'), ('Panama', 'Panama 🇵🇦'), ('Papua New Guinea', 'Papua New Guinea 🇵🇬'), ('Paraguay', 'Paraguay 🇵🇾'), ('Peru', 'Peru 🇵🇪'), ('Philippines', 'Philippines 🇵🇭'), ('Poland', 'Poland 🇵🇱'), ('Portugal', 'Portugal 🇵🇹'), ('Qatar', 'Qatar 🇶🇦'), ('Romania', 'Romania 🇷🇴'), ('Russia', 'Russia 🇷🇺'), ('Rwanda', 'Rwanda 🇷🇼'), ('Saudi Arabia', 'Saudi Arabia 🇸🇦'), ('Senegal', 'Senegal 🇸🇳'), ('Serbia', 'Serbia 🇷🇸'), ('Singapore', 'Singapore 🇸🇬'), ('Slovakia', 'Slovakia 🇸🇰'), ('Slovenia', 'Slovenia 🇸🇮'), ('South Africa', 'South Africa 🇿🇦'), ('South Korea', 'South Korea 🇰🇷'), ('Spain', 'Spain 🇪🇸'), ('Sri Lanka', 'Sri Lanka 🇱🇰'), ('Sudan', 'Sudan 🇸🇩'), ('Sweden', 'Sweden 🇸🇪'), ('Switzerland', 'Switzerland 🇨🇭'), ('Syria', 'Syria 🇸🇾'), ('Taiwan', 'Taiwan 🇹🇼'), ('Tajikistan', 'Tajikistan 🇹🇯'), ('Tanzania', 'Tanzania 🇹🇿'), ('Thailand', 'Thailand 🇹🇭'), ('Tunisia', 'Tunisia 🇹🇳'), ('Turkey', 'Turkey 🇹🇷'), ('Turkmenistan', 'Turkmenistan 🇹🇲'), ('Uganda', 'Uganda 🇺🇬'), ('Ukraine', 'Ukraine 🇺🇦'), ('United Arab Emirates', 'United Arab Emirates 🇦🇪'), ('United Kingdom', 'United Kingdom 🇬🇧'), ('United States', 'United States 🇺🇸'), ('Uruguay', 'Uruguay 🇺🇾'), ('Uzbekistan', 'Uzbekistan 🇺🇿'), ('Vatican City', 'Vatican City 🇻🇦'), ('Venezuela', 'Venezuela 🇻🇪'), ('Vietnam', 'Vietnam 🇻🇳'), ('Yemen', 'Yemen 🇾🇪'), ('Zambia', 'Zambia 🇿🇲'), ('Zimbabwe', 'Zimbabwe 🇿🇼')], default='Italy', max_length=100)),
                ('age_limit', models.CharField(default='18-45', help_text='e.g., 18-45', max_length=50)),
                ('contract_period', models.CharField(max_length=50)),
                ('job_type', models.CharField(choices=[('Full-time', 'Full-time'), ('Part-time', 'Part-time'), ('Contract', 'Contract'), ('Internship', 'Internship')], default='Full-time', max_length=50)),
                ('industry', models.CharField(choices=[('Information Technology (IT) & Software', 'Information Technology (IT) & Software'), ('Healthcare & Medical', 'Healthcare & Medical'), ('Engineering & Manufacturing', 'Engineering & Manufacturing'), ('Construction & Architecture', 'Construction & Architecture'), ('Finance & Banking', 'Finance & Banking'), ('Education & Training', 'Education & Training'), ('Hospitality & Tourism', 'Hospitality & Tourism'), ('Sales & Marketing', 'Sales & Marketing'), ('Customer Service & Support', 'Customer Service & Support'), ('Logistics & Supply Chain', 'Logistics & Supply Chain'), ('Creative & Design', 'Creative & Design'), ('Legal & Compliance', 'Legal & Compliance'), ('Human Resources (HR)', 'Human Resources (HR)'), ('Research & Development', 'Research & Development'), ('Telecommunications', 'Telecommunications'), ('Energy & Utilities', 'Energy & Utilities'), ('Real Estate & Property Management', 'Real Estate & Property Management'), ('Media & Communications', 'Media & Communications'), ('Agriculture & Farming', 'Agriculture & Farming'), ('Other', 'Other')], default='Other', max_length=100)),
                ('experience', models.IntegerField(default=2)),
                ('language', models.CharField(max_length=100)),
                ('salary', models.CharField(max_length=100)),
                ('overtime', models.CharField(choices=[('Allowed', 'Allowed'), ('Not Allowed', 'Not Allowed')], default='Yes', max_length=50)),
                ('working_hours', models.CharField(max_length=50)),
                ('day_off', models.CharField(choices=[('5 Days a Week', 'Saturday and Sunday Off'), ('6 Days a Week', 'Sunday Off'), ('6 Days a Week and Saturday Half-day', 'Sunday Off and Saturday Half-day'), ('6 Days a Week', 'Friday Off')], default='5 Days a Week', max_length=50)),
                ('is_approved', models.BooleanField(default=False)),
                ('accommodation', models.CharField(choices=[('Provided', 'Yes'), ('Not Provided', 'No')], default='Yes', max_length=100)),
                ('food', models.CharField(choices=[('Provided', 'Yes'), ('Not Provided', 'No')], default='Yes', max_length=100)),
                ('transportation', models.CharField(choices=[('Provided', 'Provided'), ('Not Provided', 'Not Provided')], default='Provided', max_length=100)),
                ('description', ckeditor.fields.RichTextField()),
                ('is_hot', models.BooleanField(default=False, verbose_name='Mark as Hot Job 🔥')),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('favorites', models.ManyToManyField(blank=True, related_name='favorite_jobs', to=settings.AUTH_USER_MODEL)),
                ('posted_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='posted_jobs', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'ordering': ['sequence', '-is_featured'],
            },
        ),
        migrations.CreateModel(
            name='Application',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('full_name', models.CharField(max_length=100)),
                ('email', models.EmailField(max_length=254)),
                ('phone', models.CharField(max_length=15)),
                ('resume', models.FileField(blank=True, null=True, upload_to='resumes/')),
                ('applied_at', models.DateTimeField(auto_now_add=True)),
                ('status', models.CharField(choices=[('Pending', 'Pending ⏳'), ('Viewed', 'Viewed 👁️'), ('Under Review', 'Under Review 🔍'), ('Approved', 'Selected ✅'), ('Rejected', 'Not Selected ❌')], default='Pending', max_length=20)),
                ('recruiter_message', models.TextField(blank=True, help_text='User ko kya karna hai yahan likhein', null=True)),
                ('unlocked_by', models.ManyToManyField(blank=True, related_name='unlocked_applications', to=settings.AUTH_USER_MODEL)),
                ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='my_applications', to=settings.AUTH_USER_MODEL)),
                ('job', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='applications', to='jobs.job')),
            ],
        ),
        migrations.CreateModel(
            name='Profile',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('whatsapp_number', models.CharField(blank=True, max_length=15, null=True)),
                ('city', models.CharField(blank=True, max_length=100, null=True)),
                ('avatar', models.ImageField(blank=True, null=True, upload_to='avatars/')),
                ('is_recruiter', models.BooleanField(default=False)),
                ('is_candidate', models.BooleanField(default=False)),
                ('role_selected', models.BooleanField(default=False)),
                ('gender', models.CharField(blank=True, choices=[('Male', 'Male'), ('Female', 'Female'), ('Other', 'Other')], max_length=10, null=True)),
                ('dob', models.DateField(blank=True, null=True, verbose_name='Date of Birth')),
                ('skills', models.CharField(blank=True, help_text='Apni skills comma se alag likhein', max_length=500, null=True)),
                ('qualification', models.CharField(blank=True, max_length=200, null=True)),
                ('experience_years', models.IntegerField(default=0)),
                ('state', models.CharField(blank=True, choices=[('Andhra Pradesh', 'Andhra Pradesh'), ('Arunachal Pradesh ', 'Arunachal Pradesh '), ('Assam', 'Assam'), ('Bihar', 'Bihar'), ('Chhattisgarh', 'Chhattisgarh'), ('Goa', 'Goa'), ('Gujarat', 'Gujarat'), ('Haryana', 'Haryana'), ('Himachal Pradesh', 'Himachal Pradesh'), ('Jammu and Kashmir ', 'Jammu and Kashmir '), ('Jharkhand', 'Jharkhand'), ('Karnataka', 'Karnataka'), ('Kerala', 'Kerala'), ('Madhya Pradesh', 'Madhya Pradesh'), ('Maharashtra', 'Maharashtra'), ('Manipur', 'Manipur'), ('Meghalaya', 'Meghalaya'), ('Mizoram', 'Mizoram'), ('Nagaland', 'Nagaland'), ('Odisha', 'Odisha'), ('Punjab', 'Punjab'), ('Rajasthan', 'Rajasthan'), ('Sikkim', 'Sikkim'), ('Tamil Nadu', 'Tamil Nadu'), ('Telangana', 'Telangana'), ('Tripura', 'Tripura'), ('Uttar Pradesh', 'Uttar Pradesh'), ('Uttarakhand', 'Uttarakhand'), ('West Bengal', 'West Bengal'), ('Andaman and Nicobar Islands', 'Andaman and Nicobar Islands'), ('Chandigarh', 'Chandigarh'), ('Dadra and Nagar Haveli', 'Dadra and Nagar Haveli'), ('Daman and Diu', 'Daman and Diu'), ('Lakshadweep', 'Lakshadweep'), ('National Capital Territory of Delhi', 'National Capital Territory of Delhi'), ('Puducherry', 'Puducherry')], max_length=100, null=True)),
                ('resume', models.FileField(blank=True, null=True, upload_to='resumes/')),
                ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='profile', to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='RecruiterProfile',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('company_name', models.CharField(help_text='Aapki Firm ya Company ka naam', max_length=200)),
                ('company_logo', models.ImageField(blank=True, null=True, upload_to='company_logos/')),
                ('industry', models.CharField(choices=[('Information Technology (IT) & Software', 'Information Technology (IT) & Software'), ('Healthcare & Medical', 'Healthcare & Medical'), ('Engineering & Manufacturing', 'Engineering & Manufacturing'), ('Construction & Architecture', 'Construction & Architecture'), ('Finance & Banking', 'Finance & Banking'), ('Education & Training', 'Education & Training'), ('Hospitality & Tourism', 'Hospitality & Tourism'), ('Sales & Marketing', 'Sales & Marketing'), ('Customer Service & Support', 'Customer Service & Support'), ('Logistics & Supply Chain', 'Logistics & Supply Chain'), ('Creative & Design', 'Creative & Design'), ('Legal & Compliance', 'Legal & Compliance'), ('Human Resources (HR)', 'Human Resources (HR)'), ('Research & Development', 'Research & Development'), ('Telecommunications', 'Telecommunications'), ('Energy & Utilities', 'Energy & Utilities'), ('Real Estate & Property Management', 'Real Estate & Property Management'), ('Media & Communications', 'Media & Communications'), ('Agriculture & Farming', 'Agriculture & Farming'), ('Other', 'Other')], default='Other', max_length=100)),
                ('company_description', ckeditor.fields.RichTextField(blank=True, null=True)),
                ('city', models.CharField(blank=True, max_length=100, null=True)),
                ('website', models.URLField(blank=True, null=True)),
                ('licence_number', models.CharField(blank=True, max_length=100, null=True)),
                ('contact_person', models.CharField(blank=True, max_length=100, null=True)),
                ('whatsapp_number', models.CharField(blank=True, max_length=15, null=True)),
                ('credits', models.IntegerField(default=5)),
                ('is_verified', models.BooleanField(default=False)),
                ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='recruiter_profile', to=settings.AUTH_USER_MODEL)),
            ],
        ),
    ]
