# Generated by Django 4.2.12 on 2025-10-05 10:11

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


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('auth', '0012_alter_user_first_name_max_length'),
    ]

    operations = [
        migrations.CreateModel(
            name='ClientDataView',
            fields=[
                ('client_id', models.IntegerField(primary_key=True, serialize=False)),
                ('ref_client_id', models.IntegerField(null=True)),
                ('relation', models.CharField(blank=True, max_length=255, null=True)),
                ('client_salutation', models.CharField(blank=True, max_length=20, null=True)),
                ('client_first_name', models.CharField(max_length=255)),
                ('client_middle_name', models.CharField(blank=True, max_length=255, null=True)),
                ('client_last_name', models.CharField(blank=True, max_length=255, null=True)),
                ('client_code', models.CharField(max_length=100)),
                ('dob', models.DateField(blank=True, null=True)),
                ('country_code', models.IntegerField(blank=True, null=True)),
                ('contact_no', models.CharField(blank=True, max_length=50, null=True)),
                ('email', models.CharField(blank=True, max_length=255, null=True)),
                ('gender', models.CharField(blank=True, max_length=20, null=True)),
                ('marital_status', models.CharField(blank=True, max_length=50, null=True)),
                ('anniversary_date', models.DateField(blank=True, null=True)),
                ('occupation', models.CharField(blank=True, max_length=255, null=True)),
                ('aadhaar_card_file', models.CharField(blank=True, max_length=255, null=True)),
                ('aadhaar_no', models.CharField(blank=True, max_length=50, null=True)),
                ('pan_card_file', models.CharField(blank=True, max_length=255, null=True)),
                ('pan_no', models.CharField(blank=True, max_length=50, null=True)),
                ('residential_address', models.CharField(blank=True, max_length=500, null=True)),
                ('residential_city', models.IntegerField(blank=True, null=True)),
                ('residential_state', models.IntegerField(blank=True, null=True)),
                ('residential_country', models.IntegerField(blank=True, null=True)),
                ('residential_pincode', models.CharField(blank=True, max_length=20, null=True)),
                ('client_status', models.CharField(blank=True, max_length=20, null=True)),
                ('created_at', models.DateTimeField(blank=True, null=True)),
                ('created_by', models.IntegerField(blank=True, null=True)),
                ('updated_at', models.DateTimeField(blank=True, null=True)),
                ('updated_by', models.IntegerField(blank=True, null=True)),
                ('full_contact_no', models.CharField(blank=True, max_length=50, null=True)),
                ('dateOfBirth', models.CharField(blank=True, max_length=20, null=True)),
                ('anniversaryDate', models.CharField(blank=True, max_length=20, null=True)),
                ('passport_no', models.CharField(blank=True, max_length=50, null=True)),
                ('passportExpiryDate', models.CharField(blank=True, max_length=20, null=True)),
                ('city_name', models.CharField(blank=True, max_length=255, null=True)),
                ('company_name', models.CharField(blank=True, max_length=255, null=True)),
                ('client_name', models.CharField(max_length=500)),
                ('ResidentialAddress', models.CharField(blank=True, max_length=500, null=True)),
                ('client_type', models.CharField(max_length=50)),
                ('clientStatus', models.CharField(max_length=20)),
                ('createdOn', models.CharField(max_length=50)),
            ],
            options={
                'db_table': 'view_client_data',
                'managed': False,
            },
        ),
        migrations.CreateModel(
            name='CompanyDataView',
            fields=[
                ('id', models.IntegerField(primary_key=True, serialize=False)),
                ('company_name', models.CharField(max_length=255)),
                ('gst_name', models.CharField(blank=True, max_length=255, null=True)),
                ('gst_no', models.CharField(blank=True, max_length=50, null=True)),
                ('CompanyAddress', models.CharField(blank=True, max_length=500, null=True)),
                ('account_concerned_person', models.CharField(blank=True, max_length=255, null=True)),
                ('account_concerned_person_contact_no', models.CharField(blank=True, max_length=50, null=True)),
                ('full_account_concerned_person_contact_no', models.CharField(blank=True, max_length=50, null=True)),
                ('company_status', models.IntegerField(blank=True, null=True)),
                ('companyStatus', models.CharField(max_length=20)),
            ],
            options={
                'db_table': 'view_company_data',
                'managed': False,
            },
        ),
        migrations.CreateModel(
            name='User',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('email', models.EmailField(max_length=254, unique=True)),
                ('username', models.CharField(blank=True, max_length=30, null=True)),
                ('contact_no', models.CharField(blank=True, max_length=15, null=True)),
                ('designation', models.CharField(blank=True, max_length=255, null=True)),
                ('status', models.CharField(blank=True, choices=[('active', 'Active'), ('inactive', 'Inactive')], default='active', max_length=25, null=True)),
                ('password', models.CharField(blank=True, max_length=255, null=True)),
                ('last_login', models.DateTimeField(blank=True, null=True)),
                ('is_active', models.BooleanField(default=True)),
                ('is_staff', models.BooleanField(default=False)),
                ('is_superuser', models.BooleanField(default=False)),
                ('first_login', models.BooleanField(default=True)),
                ('created_at', models.DateTimeField(auto_now_add=True, null=True)),
                ('updated_at', models.DateTimeField(auto_now=True, null=True)),
                ('created_by', models.ForeignKey(blank=True, db_column='created_by', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='user_created', to=settings.AUTH_USER_MODEL)),
                ('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')),
                ('updated_by', models.ForeignKey(blank=True, db_column='updated_by', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='user_updated', to=settings.AUTH_USER_MODEL)),
                ('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={
                'db_table': 'users',
            },
        ),
        migrations.CreateModel(
            name='Airlines',
            fields=[
                ('id', models.AutoField(primary_key=True, serialize=False)),
                ('iata', models.TextField(blank=True, max_length=250, null=True)),
                ('icao', models.TextField(blank=True, max_length=250, null=True)),
                ('airline', models.TextField(blank=True, max_length=250, null=True)),
                ('callsign', models.TextField(blank=True, max_length=250, null=True)),
                ('country', models.TextField(blank=True, max_length=250, null=True)),
            ],
            options={
                'db_table': 'airlines',
            },
        ),
        migrations.CreateModel(
            name='AuthLogin',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('ip_address', models.CharField(max_length=255)),
                ('user_agent', models.CharField(blank=True, max_length=255, null=True)),
                ('id_type', models.CharField(max_length=255)),
                ('identifier', models.CharField(max_length=255)),
                ('user_id', models.PositiveIntegerField(blank=True, null=True)),
                ('date', models.DateTimeField()),
                ('success', models.IntegerField()),
            ],
            options={
                'db_table': 'auth_logins',
            },
        ),
        migrations.CreateModel(
            name='AuthTokenLogin',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('ip_address', models.CharField(max_length=255)),
                ('user_agent', models.CharField(blank=True, max_length=255, null=True)),
                ('id_type', models.CharField(max_length=255)),
                ('identifier', models.CharField(max_length=255)),
                ('user_id', models.PositiveIntegerField(blank=True, null=True)),
                ('date', models.DateTimeField()),
                ('success', models.IntegerField()),
            ],
            options={
                'db_table': 'auth_token_logins',
            },
        ),
        migrations.CreateModel(
            name='Cities',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=30)),
            ],
            options={
                'db_table': 'cities',
            },
        ),
        migrations.CreateModel(
            name='Client',
            fields=[
                ('client_id', models.AutoField(primary_key=True, serialize=False)),
                ('old_ref_client_id', models.IntegerField(blank=True, null=True)),
                ('relation', models.CharField(blank=True, choices=[('Father', 'Father'), ('Mother', 'Mother'), ('Spouse', 'Spouse'), ('Daughter', 'Daughter'), ('Brother', 'Brother'), ('Sister', 'Sister'), ('Son', 'Son')], max_length=20, null=True)),
                ('crossrelation', models.CharField(blank=True, choices=[('Father', 'Father'), ('Mother', 'Mother'), ('Spouse', 'Spouse'), ('Daughter', 'Daughter'), ('Brother', 'Brother'), ('Sister', 'Sister'), ('Son', 'Son')], max_length=20, null=True)),
                ('client_salutation', models.CharField(blank=True, choices=[('Mr.', 'Mr.'), ('Ms.', 'Ms.'), ('Mrs.', 'Mrs.'), ('Miss.', 'Miss.'), ('Master', 'Master'), ('Dr.', 'Dr.')], max_length=20, null=True)),
                ('client_first_name', models.CharField(blank=True, max_length=500, null=True)),
                ('client_middle_name', models.CharField(blank=True, default='', max_length=500, null=True)),
                ('client_last_name', models.CharField(blank=True, default='', max_length=500, null=True)),
                ('client_code', models.CharField(blank=True, max_length=50, null=True, unique=True)),
                ('client_type', models.CharField(blank=True, choices=[('Primary Member', 'Primary-Member'), ('Family Member', 'Family-Member')], max_length=30, null=True)),
                ('is_prepayment', models.BooleanField(default=False)),
                ('dob', models.DateField(blank=True, null=True)),
                ('contact_no', models.CharField(blank=True, default='', max_length=20, null=True)),
                ('email', models.CharField(blank=True, default='', max_length=500, null=True)),
                ('gender', models.CharField(blank=True, choices=[('Male', 'Male'), ('Female', 'Female'), ('Other', 'Other')], default='', max_length=10, null=True)),
                ('marital_status', models.CharField(blank=True, choices=[('Married', 'Married'), ('Unmarried', 'Unmarried'), ('Divorced', 'Divorced')], max_length=50, null=True)),
                ('anniversary_date', models.DateField(blank=True, null=True)),
                ('reference_from', models.CharField(blank=True, choices=[('Walk in', 'Walk_in'), ('BNI', 'BNI'), ('Client', 'Client'), ('Atul Sir', 'Atul_sir'), ('Jignesh Sir', 'Jignesh_Sir'), ('Counter', 'Counter/Internal_Staff')], max_length=50, null=True)),
                ('reference_id', models.IntegerField(blank=True, null=True)),
                ('reference_remark', models.CharField(blank=True, default='', max_length=150, null=True)),
                ('occupation', models.CharField(blank=True, default='', max_length=500, null=True)),
                ('preferred_contact_method', models.JSONField(blank=True, default=list, null=True)),
                ('aadhaar_card_file', models.FileField(blank=True, null=True, upload_to=functools.partial(users.models.client_upload_path, *(), **{'folder': ''}))),
                ('aadhaar_no', models.CharField(blank=True, max_length=20, null=True)),
                ('pan_card_file', models.FileField(blank=True, null=True, upload_to=functools.partial(users.models.client_upload_path, *(), **{'folder': ''}))),
                ('pan_no', models.CharField(blank=True, max_length=15, null=True)),
                ('residential_address', models.CharField(blank=True, max_length=500, null=True)),
                ('residential_pincode', models.CharField(blank=True, max_length=10, null=True)),
                ('seat_preference', models.CharField(blank=True, choices=[('Window', 'Window'), ('Aisle', 'Aisle'), ('Middle', 'Middle'), ('Double Seat', 'Double_Seat'), ('First Row', 'First_Row'), ('Emergency Exit Row', 'Emergency Exit Row'), ('Other', 'Other')], max_length=30, null=True)),
                ('seat_preference_other', models.CharField(blank=True, max_length=50, null=True)),
                ('meal_preference', models.CharField(blank=True, choices=[('Veg', 'Veg'), ('Non-Veg', 'Non-Veg'), ('Jain Food', 'Jain-Food')], max_length=10, null=True)),
                ('fare_preference', models.CharField(blank=True, choices=[('F - First class', 'F - First class'), ('J - Business class', 'J - Business class'), ('W - Premium economy', 'W - Premium economy'), ('Y - Economy class', 'Y - Economy class')], max_length=20, null=True)),
                ('star_rating', models.CharField(blank=True, choices=[('3 Star', '3 Star'), ('4 Star', '4 Star'), ('5 Star', '5 Star')], max_length=10, null=True)),
                ('stay_preference', models.CharField(blank=True, choices=[('Short Stay (1–2 Nights)', 'Short Stay (1–2 Nights)'), ('Long Stay (3+ Nights)', 'Long Stay (3+ Nights)'), ('Business Stay', 'Business Stay'), ('Leisure Stay', 'Leisure Stay'), ('Staycation', 'Staycation')], max_length=50, null=True)),
                ('room_preference', models.CharField(blank=True, choices=[('King Size Bed', 'King_Size_Bed'), ('Smoking Room', 'Smoking_Room'), ('Non-Smoking Room', 'Non-Smoking_Room')], max_length=50, null=True)),
                ('extra_amenities', models.CharField(blank=True, choices=[('Breakfast Included', 'Breakfast Included'), ('Swimming Pool Access', 'Swimming Pool Access'), ('Gym Access', 'Gym Access'), ('Near Airport', 'Near Airport'), ('Near City Center', 'Near City Center')], max_length=50, null=True)),
                ('client_status', models.SmallIntegerField(blank=True, choices=[(0, 'Inactive'), (1, 'Active'), (2, 'Deleted')], default=1, null=True)),
                ('is_active', models.SmallIntegerField(default=1)),
                ('created_at', models.DateTimeField(auto_now_add=True, null=True)),
                ('updated_at', models.DateTimeField(auto_now=True, null=True)),
            ],
            options={
                'db_table': 'clients',
            },
        ),
        migrations.CreateModel(
            name='Countries',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('shortname', models.CharField(max_length=3)),
                ('name', models.CharField(max_length=150)),
                ('country_code', models.IntegerField()),
                ('min_length', models.IntegerField(blank=True, null=True)),
                ('max_length', models.IntegerField(blank=True, null=True)),
            ],
            options={
                'db_table': 'countries',
            },
        ),
        migrations.CreateModel(
            name='EmailSetup',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('report_type', models.CharField(blank=True, choices=[('Visa Expiry', 'Visa Expiry'), ('Passport Expiry', 'Passport Expiry'), ('Travel Insurance Expiry', 'Travel Insurance Expiry'), ('Birthday Report', 'Birthday Report'), ('Anniversary Report', 'Anniversary Report'), ('Client Report', 'Client Report')], max_length=50, null=True)),
                ('email', models.EmailField(blank=True, max_length=254, null=True)),
            ],
        ),
        migrations.CreateModel(
            name='Menu',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('menu_name', models.CharField(max_length=100)),
                ('menu_action', models.CharField(blank=True, max_length=100, null=True)),
                ('menu_url', models.CharField(blank=True, default='#', max_length=255)),
                ('menu_order_no', models.PositiveSmallIntegerField(blank=True, null=True)),
                ('menu_default', models.BooleanField(default=False)),
                ('menu_status', models.BooleanField(default=True)),
                ('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.menu')),
                ('ref_menu', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='submenus', to='users.menu')),
            ],
            options={
                'db_table': 'menus',
                'ordering': ['menu_order_no'],
            },
        ),
        migrations.CreateModel(
            name='Settings',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('class_field', models.CharField(db_column='class', max_length=255)),
                ('key', models.CharField(max_length=255)),
                ('value', models.TextField(blank=True, null=True)),
                ('type', models.CharField(max_length=31)),
                ('context', models.CharField(blank=True, max_length=255, null=True)),
                ('created_at', models.DateTimeField()),
                ('updated_at', models.DateTimeField()),
            ],
            options={
                'db_table': 'settings',
            },
        ),
        migrations.CreateModel(
            name='SystemEmailNotification',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('notification_type', models.CharField(max_length=23, unique=True)),
                ('emails', models.TextField()),
                ('created_at', models.DateTimeField(blank=True, null=True)),
                ('updated_at', models.DateTimeField(blank=True, null=True)),
            ],
            options={
                'db_table': 'system_email_notification',
            },
        ),
        migrations.CreateModel(
            name='State',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=30)),
                ('country', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.countries')),
            ],
            options={
                'db_table': 'states',
            },
        ),
        migrations.CreateModel(
            name='LoginOTP',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('otp', models.CharField(max_length=6)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('is_verified', models.BooleanField(default=False)),
                ('purpose', models.CharField(choices=[('login', 'Login'), ('forgot_password', 'Forgot Password')], default='login', max_length=20)),
                ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='login_otp', to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='Company',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('company_name', models.CharField(max_length=100)),
                ('company_address', models.CharField(blank=True, max_length=200, null=True)),
                ('company_pincode', models.CharField(blank=True, default='', max_length=10, null=True)),
                ('gst_name', models.CharField(blank=True, default='', max_length=100, null=True)),
                ('gst_no', models.CharField(blank=True, default='', max_length=15, null=True)),
                ('gst_document_file', models.FileField(blank=True, null=True, upload_to=functools.partial(users.models.company_upload_path, *(), **{'folder': ''}))),
                ('account_concerned_person', models.CharField(blank=True, default='', max_length=100, null=True)),
                ('account_concerned_person_contact_no', models.CharField(blank=True, default='', max_length=15, null=True)),
                ('travel_concerned_person', models.CharField(blank=True, max_length=100, null=True)),
                ('travel_concerned_person_contact_no', models.CharField(blank=True, max_length=15, null=True)),
                ('company_status', models.CharField(blank=True, choices=[('active', 'Active'), ('inactive', 'Inactive')], default='active', max_length=20, null=True)),
                ('is_active', models.BooleanField(default=True)),
                ('created_at', models.DateTimeField(auto_now_add=True, null=True)),
                ('updated_at', models.DateTimeField(auto_now=True, null=True)),
                ('account_concerned_person_country_code', models.ForeignKey(blank=True, db_column='account_concerned_person_country_code', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='account_country_code', to='users.countries')),
                ('company_city', models.ForeignKey(db_column='company_city', null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.cities')),
                ('company_country', models.ForeignKey(db_column='company_country', null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.countries')),
                ('company_state', models.ForeignKey(db_column='company_state', null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.state')),
                ('created_by', models.ForeignKey(blank=True, db_column='created_by', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='company_created', to=settings.AUTH_USER_MODEL)),
                ('travel_concerned_person_country_code', models.ForeignKey(blank=True, db_column='travel_concerned_person_country_code', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='travel_country_code', to='users.countries')),
                ('updated_by', models.ForeignKey(blank=True, db_column='updated_by', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='company_updated', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'db_table': 'company',
            },
        ),
        migrations.CreateModel(
            name='ClientVisa',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('visa_type', models.CharField(blank=True, choices=[('Business_visa', 'Business_Visa'), ('Employment_visa', 'Employment_Visa'), ('Tourist_visa', 'Tourist_Visa'), ('Medical_visa', 'Medical_Visa'), ('Student_visa', 'Student_Visa')], max_length=20, null=True)),
                ('passport_size_photograph', models.FileField(blank=True, null=True, upload_to=functools.partial(users.models.client_upload_path, *(), **{'folder': 'visas'}))),
                ('visa_from_date', models.DateField(blank=True, null=True)),
                ('visa_to_date', models.DateField(blank=True, null=True)),
                ('ref_client', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='client_visa', to='users.client')),
                ('ref_visa_country', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ref_visa_country', to='users.countries')),
            ],
            options={
                'db_table': 'clients_visas',
            },
        ),
        migrations.CreateModel(
            name='ClientTravelInsurance',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('insurance_document', models.FileField(blank=True, null=True, upload_to=functools.partial(users.models.client_upload_path, *(), **{'folder': 'insurance'}))),
                ('insurance_from_date', models.DateField(blank=True, null=True)),
                ('insurance_to_date', models.DateField(blank=True, null=True)),
                ('ref_client', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='travel_insurance', to='users.client')),
            ],
            options={
                'db_table': 'clients_travel_insurance',
            },
        ),
        migrations.CreateModel(
            name='ClientRelation',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('relation', models.CharField(blank=True, choices=[('Father', 'Father'), ('Mother', 'Mother'), ('Spouse', 'Spouse'), ('Daughter', 'Daughter'), ('Brother', 'Brother'), ('Sister', 'Sister'), ('Son', 'Son')], max_length=20, null=True)),
                ('cross_relation', models.CharField(blank=True, choices=[('Father', 'Father'), ('Mother', 'Mother'), ('Spouse', 'Spouse'), ('Daughter', 'Daughter'), ('Brother', 'Brother'), ('Sister', 'Sister'), ('Son', 'Son')], max_length=20, null=True)),
                ('from_client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='relations_from', to='users.client')),
                ('to_client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='relations_to', to='users.client')),
            ],
            options={
                'db_table': 'clients_relations',
            },
        ),
        migrations.CreateModel(
            name='ClientPassport',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('passport_file', models.FileField(blank=True, null=True, upload_to=functools.partial(users.models.client_upload_path, *(), **{'folder': ''}))),
                ('passport_no', models.CharField(blank=True, max_length=20, null=True)),
                ('passport_expiry_date', models.DateField(blank=True, null=True)),
                ('ref_client', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='client_passport', to='users.client')),
            ],
            options={
                'db_table': 'clients_passports',
            },
        ),
        migrations.CreateModel(
            name='ClientLog',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('ref_table_name', models.CharField(blank=True, max_length=100, null=True)),
                ('ref_id', models.IntegerField(blank=True, null=True)),
                ('action_type', models.CharField(blank=True, max_length=50, null=True)),
                ('changed_data', models.JSONField()),
                ('performed_at', models.DateTimeField(blank=True, null=True)),
                ('performed_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL)),
                ('ref_client_id', models.ForeignKey(blank=True, db_column='ref_client_id', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='client_logs', to='users.client')),
                ('ref_company_id', models.ForeignKey(blank=True, db_column='ref_company_id', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='company_logs', to='users.company')),
                ('ref_user_id', models.ForeignKey(blank=True, db_column='ref_user_id', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='users_logs', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'db_table': 'clients_logs',
            },
        ),
        migrations.CreateModel(
            name='ClientFrequentFlyer',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('ff_no', models.CharField(blank=True, max_length=50, null=True)),
                ('ref_airline', models.ForeignKey(blank=True, db_column='ref_airline_id', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='frequent_flyers_airlines', to='users.airlines')),
                ('ref_client', models.ForeignKey(blank=True, db_column='ref_client_id', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='frequent_flyers', to='users.client')),
            ],
            options={
                'db_table': 'clients_frequent_flyer',
            },
        ),
        migrations.CreateModel(
            name='ClientDocument',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('other_document', models.FileField(blank=True, null=True, upload_to=functools.partial(users.models.client_upload_path, *(), **{'folder': 'other_documents'}))),
                ('other_document_name', models.CharField(blank=True, max_length=100, null=True)),
                ('ref_client', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='client_documents', to='users.client')),
            ],
            options={
                'db_table': 'clients_documents',
            },
        ),
        migrations.AddField(
            model_name='client',
            name='country_code',
            field=models.ForeignKey(blank=True, db_column='country_code', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='country_codes', to='users.countries'),
        ),
        migrations.AddField(
            model_name='client',
            name='created_by',
            field=models.ForeignKey(blank=True, db_column='created_by', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='clients_created', to=settings.AUTH_USER_MODEL),
        ),
        migrations.AddField(
            model_name='client',
            name='ref_client',
            field=models.ForeignKey(blank=True, db_column='ref_client_id', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='related_clients', to='users.client'),
        ),
        migrations.AddField(
            model_name='client',
            name='ref_preferred_airline',
            field=models.ForeignKey(blank=True, db_column='ref_preferred_airline', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='ref_preferred_airline_clients', to='users.airlines'),
        ),
        migrations.AddField(
            model_name='client',
            name='residential_city',
            field=models.ForeignKey(blank=True, db_column='residential_city', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='residential_city', to='users.cities'),
        ),
        migrations.AddField(
            model_name='client',
            name='residential_country',
            field=models.ForeignKey(blank=True, db_column='residential_country', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='residential_country', to='users.countries'),
        ),
        migrations.AddField(
            model_name='client',
            name='residential_state',
            field=models.ForeignKey(blank=True, db_column='residential_state', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='residential_state', to='users.state'),
        ),
        migrations.AddField(
            model_name='client',
            name='updated_by',
            field=models.ForeignKey(blank=True, db_column='updated_by', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='clients_updated', to=settings.AUTH_USER_MODEL),
        ),
        migrations.AddField(
            model_name='cities',
            name='state_id',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.state'),
        ),
        migrations.CreateModel(
            name='AuthRememberToken',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('selector', models.CharField(max_length=255, unique=True)),
                ('hashedvalidator', models.CharField(db_column='hashedValidator', max_length=255)),
                ('expires', models.DateTimeField()),
                ('created_at', models.DateTimeField()),
                ('updated_at', models.DateTimeField()),
                ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'db_table': 'auth_remember_tokens',
            },
        ),
        migrations.CreateModel(
            name='AuthPermissionsUser',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('permission', models.CharField(max_length=255)),
                ('created_at', models.DateTimeField()),
                ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'db_table': 'auth_permissions_users',
            },
        ),
        migrations.CreateModel(
            name='AuthGroupsUser',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('group', models.CharField(max_length=255)),
                ('created_at', models.DateTimeField()),
                ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'db_table': 'auth_groups_users',
            },
        ),
        migrations.CreateModel(
            name='AssocClientCompany',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('designation', models.CharField(blank=True, max_length=50, null=True)),
                ('primary_company', models.BooleanField(blank=True, default=False, null=True)),
                ('ref_client', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='client_companies', to='users.client')),
                ('ref_company', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='assoc_client_company', to='users.company')),
            ],
            options={
                'db_table': 'assoc_client_company',
            },
        ),
        migrations.CreateModel(
            name='UserPermissions',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('can_view', models.BooleanField(default=False)),
                ('can_add', models.BooleanField(default=False)),
                ('can_edit', models.BooleanField(default=False)),
                ('can_delete', models.BooleanField(default=False)),
                ('can_export', models.BooleanField(default=False)),
                ('ref_menu', models.ForeignKey(blank=True, db_column='ref_menu_id', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='user_perms', to='users.menu')),
                ('ref_user', models.ForeignKey(blank=True, db_column='ref_user_id', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='menu_perms', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'db_table': 'users_permissions',
                'unique_together': {('ref_user', 'ref_menu')},
            },
        ),
    ]
