126 lines
		
	
	
	
		
			12 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			126 lines
		
	
	
	
		
			12 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
# Generated by Django 5.2.4 on 2025-09-07 07:35
 | 
						||
 | 
						||
import django.core.validators
 | 
						||
import django.db.models.deletion
 | 
						||
import simple_history.models
 | 
						||
from django.conf import settings
 | 
						||
from django.db import migrations, models
 | 
						||
 | 
						||
 | 
						||
class Migration(migrations.Migration):
 | 
						||
 | 
						||
    initial = True
 | 
						||
 | 
						||
    dependencies = [
 | 
						||
        ('locations', '0001_initial'),
 | 
						||
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
 | 
						||
    ]
 | 
						||
 | 
						||
    operations = [
 | 
						||
        migrations.CreateModel(
 | 
						||
            name='Company',
 | 
						||
            fields=[
 | 
						||
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
 | 
						||
                ('created', models.DateTimeField(auto_now_add=True, verbose_name='تاریخ ایجاد')),
 | 
						||
                ('updated', models.DateTimeField(auto_now=True, verbose_name='تاریخ بروزرسانی')),
 | 
						||
                ('is_active', models.BooleanField(default=True, verbose_name='فعال')),
 | 
						||
                ('is_deleted', models.BooleanField(default=False, verbose_name='حذف شده')),
 | 
						||
                ('deleted_at', models.DateTimeField(blank=True, null=True, verbose_name='تاریخ حذف')),
 | 
						||
                ('slug', models.SlugField(max_length=100, unique=True, verbose_name='اسلاگ')),
 | 
						||
                ('name', models.CharField(max_length=100, verbose_name='نام')),
 | 
						||
                ('logo', models.ImageField(blank=True, null=True, upload_to='companies/logos', verbose_name='لوگوی شرکت')),
 | 
						||
                ('signature', models.ImageField(blank=True, null=True, upload_to='companies/signatures', verbose_name='امضای شرکت')),
 | 
						||
                ('address', models.TextField(blank=True, null=True, verbose_name='آدرس')),
 | 
						||
                ('phone', models.CharField(blank=True, max_length=11, null=True, verbose_name='شماره تماس')),
 | 
						||
            ],
 | 
						||
            options={
 | 
						||
                'verbose_name': 'شرکت',
 | 
						||
                'verbose_name_plural': 'شرکت\u200cها',
 | 
						||
            },
 | 
						||
        ),
 | 
						||
        migrations.CreateModel(
 | 
						||
            name='HistoricalProfile',
 | 
						||
            fields=[
 | 
						||
                ('id', models.BigIntegerField(auto_created=True, blank=True, db_index=True, verbose_name='ID')),
 | 
						||
                ('created', models.DateTimeField(blank=True, editable=False, verbose_name='تاریخ ایجاد')),
 | 
						||
                ('updated', models.DateTimeField(blank=True, editable=False, verbose_name='تاریخ بروزرسانی')),
 | 
						||
                ('is_active', models.BooleanField(default=True, verbose_name='فعال')),
 | 
						||
                ('is_deleted', models.BooleanField(default=False, verbose_name='حذف شده')),
 | 
						||
                ('deleted_at', models.DateTimeField(blank=True, null=True, verbose_name='تاریخ حذف')),
 | 
						||
                ('national_code', models.CharField(blank=True, max_length=10, null=True, validators=[django.core.validators.RegexValidator(code='invalid_national_code', message='کد ملی باید فقط شامل اعداد باشد.', regex='^\\d+$')], verbose_name='کد ملی')),
 | 
						||
                ('address', models.TextField(blank=True, null=True, verbose_name='آدرس')),
 | 
						||
                ('card_number', models.CharField(blank=True, max_length=16, null=True, validators=[django.core.validators.RegexValidator(code='invalid_card_number', message='شماره کارت باید فقط شامل اعداد باشد.', regex='^\\d+$')], verbose_name='شماره کارت')),
 | 
						||
                ('account_number', models.CharField(blank=True, max_length=20, null=True, validators=[django.core.validators.RegexValidator(code='invalid_account_number', message='شماره حساب باید فقط شامل اعداد باشد.', regex='^\\d+$')], verbose_name='شماره حساب')),
 | 
						||
                ('bank_name', models.CharField(blank=True, choices=[('mellat', 'بانک ملت'), ('saman', 'بانک سامان'), ('parsian', 'بانک پارسیان'), ('sina', 'بانک سینا'), ('tejarat', 'بانک تجارت'), ('tosee', 'بانک توسعه'), ('iran_zamin', 'بانک ایران زمین'), ('meli', 'بانک ملی'), ('saderat', 'بانک توسعه صادرات'), ('iran_zamin', 'بانک ایران زمین'), ('refah', 'بانک رفاه'), ('eghtesad_novin', 'بانک اقتصاد نوین'), ('pasargad', 'بانک پاسارگاد'), ('other', 'سایر')], max_length=255, null=True, verbose_name='نام بانک')),
 | 
						||
                ('phone_number_1', models.CharField(blank=True, max_length=11, null=True, verbose_name='شماره تماس ۱')),
 | 
						||
                ('phone_number_2', models.CharField(blank=True, max_length=11, null=True, verbose_name='شماره تماس ۲')),
 | 
						||
                ('pic', models.TextField(default='../static/sample_images/profile.jpg', max_length=100, verbose_name='تصویر')),
 | 
						||
                ('is_completed', models.BooleanField(default=False, verbose_name='پروفایل تکمیل شده')),
 | 
						||
                ('history_id', models.AutoField(primary_key=True, serialize=False)),
 | 
						||
                ('history_date', models.DateTimeField(db_index=True)),
 | 
						||
                ('history_change_reason', models.CharField(max_length=100, null=True)),
 | 
						||
                ('history_type', models.CharField(choices=[('+', 'Created'), ('~', 'Changed'), ('-', 'Deleted')], max_length=1)),
 | 
						||
                ('affairs', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='locations.affairs', verbose_name='امور')),
 | 
						||
                ('broker', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='locations.broker', verbose_name='کارگزار')),
 | 
						||
                ('county', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='locations.county', verbose_name='شهرستان')),
 | 
						||
                ('history_user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL)),
 | 
						||
                ('owner', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='ایجاد کننده')),
 | 
						||
                ('user', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='کاربر')),
 | 
						||
            ],
 | 
						||
            options={
 | 
						||
                'verbose_name': 'historical پروفایل',
 | 
						||
                'verbose_name_plural': 'historical پروفایل\u200cها',
 | 
						||
                'ordering': ('-history_date', '-history_id'),
 | 
						||
                'get_latest_by': ('history_date', 'history_id'),
 | 
						||
            },
 | 
						||
            bases=(simple_history.models.HistoricalChanges, models.Model),
 | 
						||
        ),
 | 
						||
        migrations.CreateModel(
 | 
						||
            name='Role',
 | 
						||
            fields=[
 | 
						||
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
 | 
						||
                ('created', models.DateTimeField(auto_now_add=True, verbose_name='تاریخ ایجاد')),
 | 
						||
                ('updated', models.DateTimeField(auto_now=True, verbose_name='تاریخ بروزرسانی')),
 | 
						||
                ('is_active', models.BooleanField(default=True, verbose_name='فعال')),
 | 
						||
                ('is_deleted', models.BooleanField(default=False, verbose_name='حذف شده')),
 | 
						||
                ('deleted_at', models.DateTimeField(blank=True, null=True, verbose_name='تاریخ حذف')),
 | 
						||
                ('slug', models.SlugField(max_length=100, unique=True, verbose_name='اسلاگ')),
 | 
						||
                ('name', models.CharField(max_length=100, verbose_name='نام')),
 | 
						||
                ('parent', models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='children', to='accounts.role', verbose_name='زیرشاخه')),
 | 
						||
            ],
 | 
						||
            options={
 | 
						||
                'verbose_name': 'نقش',
 | 
						||
                'verbose_name_plural': 'نقش\u200cها',
 | 
						||
            },
 | 
						||
        ),
 | 
						||
        migrations.CreateModel(
 | 
						||
            name='Profile',
 | 
						||
            fields=[
 | 
						||
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
 | 
						||
                ('created', models.DateTimeField(auto_now_add=True, verbose_name='تاریخ ایجاد')),
 | 
						||
                ('updated', models.DateTimeField(auto_now=True, verbose_name='تاریخ بروزرسانی')),
 | 
						||
                ('is_active', models.BooleanField(default=True, verbose_name='فعال')),
 | 
						||
                ('is_deleted', models.BooleanField(default=False, verbose_name='حذف شده')),
 | 
						||
                ('deleted_at', models.DateTimeField(blank=True, null=True, verbose_name='تاریخ حذف')),
 | 
						||
                ('national_code', models.CharField(blank=True, max_length=10, null=True, validators=[django.core.validators.RegexValidator(code='invalid_national_code', message='کد ملی باید فقط شامل اعداد باشد.', regex='^\\d+$')], verbose_name='کد ملی')),
 | 
						||
                ('address', models.TextField(blank=True, null=True, verbose_name='آدرس')),
 | 
						||
                ('card_number', models.CharField(blank=True, max_length=16, null=True, validators=[django.core.validators.RegexValidator(code='invalid_card_number', message='شماره کارت باید فقط شامل اعداد باشد.', regex='^\\d+$')], verbose_name='شماره کارت')),
 | 
						||
                ('account_number', models.CharField(blank=True, max_length=20, null=True, validators=[django.core.validators.RegexValidator(code='invalid_account_number', message='شماره حساب باید فقط شامل اعداد باشد.', regex='^\\d+$')], verbose_name='شماره حساب')),
 | 
						||
                ('bank_name', models.CharField(blank=True, choices=[('mellat', 'بانک ملت'), ('saman', 'بانک سامان'), ('parsian', 'بانک پارسیان'), ('sina', 'بانک سینا'), ('tejarat', 'بانک تجارت'), ('tosee', 'بانک توسعه'), ('iran_zamin', 'بانک ایران زمین'), ('meli', 'بانک ملی'), ('saderat', 'بانک توسعه صادرات'), ('iran_zamin', 'بانک ایران زمین'), ('refah', 'بانک رفاه'), ('eghtesad_novin', 'بانک اقتصاد نوین'), ('pasargad', 'بانک پاسارگاد'), ('other', 'سایر')], max_length=255, null=True, verbose_name='نام بانک')),
 | 
						||
                ('phone_number_1', models.CharField(blank=True, max_length=11, null=True, verbose_name='شماره تماس ۱')),
 | 
						||
                ('phone_number_2', models.CharField(blank=True, max_length=11, null=True, verbose_name='شماره تماس ۲')),
 | 
						||
                ('pic', models.ImageField(default='../static/sample_images/profile.jpg', upload_to='profile_images', verbose_name='تصویر')),
 | 
						||
                ('is_completed', models.BooleanField(default=False, verbose_name='پروفایل تکمیل شده')),
 | 
						||
                ('affairs', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='locations.affairs', verbose_name='امور')),
 | 
						||
                ('broker', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='locations.broker', verbose_name='کارگزار')),
 | 
						||
                ('county', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='locations.county', verbose_name='شهرستان')),
 | 
						||
                ('owner', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='owned_profiles', to=settings.AUTH_USER_MODEL, verbose_name='ایجاد کننده')),
 | 
						||
                ('user', models.OneToOneField(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='profile', to=settings.AUTH_USER_MODEL, verbose_name='کاربر')),
 | 
						||
                ('roles', models.ManyToManyField(blank=True, related_name='profiles', to='accounts.role', verbose_name='نقش\u200cها')),
 | 
						||
            ],
 | 
						||
            options={
 | 
						||
                'verbose_name': 'پروفایل',
 | 
						||
                'verbose_name_plural': 'پروفایل\u200cها',
 | 
						||
            },
 | 
						||
        ),
 | 
						||
    ]
 |