# Generated by Django 5.1.7 on 2026-03-24 03:54 import django.db.models.deletion import uuid from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ ] operations = [ migrations.CreateModel( name='Account_Type', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('en', models.CharField(max_length=100, null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'account_type', }, ), migrations.CreateModel( name='Alert_Type', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'alert_type', }, ), migrations.CreateModel( name='Approve_Status', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('en', models.CharField(max_length=100, null=True)), ('color', models.CharField(max_length=20, null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'approve_status', }, ), migrations.CreateModel( name='Apps', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('logo', models.CharField(max_length=500, null=True)), ('link', models.CharField(max_length=500, null=True)), ('active', models.BooleanField(default=True)), ('detail', models.TextField(null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'apps', }, ), migrations.CreateModel( name='Auth_Method', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'auth_method', }, ), migrations.CreateModel( name='Auth_Status', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'auth_status', }, ), migrations.CreateModel( name='Bank', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('en', models.CharField(max_length=100, null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'bank', }, ), migrations.CreateModel( name='Block_Reason', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'block_reason', }, ), migrations.CreateModel( name='Branch_Type', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('en', models.CharField(max_length=100, null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'branch_type', }, ), migrations.CreateModel( name='Category', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'category', }, ), migrations.CreateModel( name='Color_Choice', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('detail', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'color_choice', }, ), migrations.CreateModel( name='Color_Scheme', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('detail', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'color_scheme', }, ), migrations.CreateModel( name='Company_Type', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'company_type', }, ), migrations.CreateModel( name='Contract_Status', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('en', models.CharField(max_length=100, null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'contract_status', }, ), migrations.CreateModel( name='Country', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30)), ('name', models.CharField(max_length=100)), ('en', models.CharField(max_length=100, null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'country', }, ), migrations.CreateModel( name='Currency', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('rate', models.FloatField()), ('decimal', models.IntegerField(default=0)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'currency', }, ), migrations.CreateModel( name='Customer_Segment', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'customer_segment', }, ), migrations.CreateModel( name='Customer_Type', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'customer_type', }, ), migrations.CreateModel( name='Cycle_Type', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('en', models.CharField(max_length=100, null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'cycle_type', }, ), migrations.CreateModel( name='Data_Type', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'data_type', }, ), migrations.CreateModel( name='Dealer', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=20, null=True, unique=True)), ('name', models.CharField(max_length=100)), ('phone', models.CharField(db_index=True, max_length=20, null=True)), ('email', models.CharField(max_length=50, null=True)), ('address', models.CharField(max_length=255, null=True)), ('sale_amount', models.DecimalField(decimal_places=2, max_digits=35, null=True)), ('pay_sale', models.DecimalField(decimal_places=2, max_digits=35, null=True)), ('commission_amount', models.DecimalField(decimal_places=2, max_digits=35, null=True)), ('pay_commission', models.DecimalField(decimal_places=2, max_digits=35, null=True)), ('commission_remain', models.DecimalField(decimal_places=2, max_digits=35, null=True)), ('batch_date', models.DateTimeField(null=True)), ('count_sale', models.IntegerField(null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'dealer', }, ), migrations.CreateModel( name='Direction', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'direction', }, ), migrations.CreateModel( name='Discount_Method', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'discount_method', }, ), migrations.CreateModel( name='Display_Status', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('en', models.CharField(max_length=100, null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'display_status', }, ), migrations.CreateModel( name='Document_Audit', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('en', models.CharField(max_length=100, null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'document_audit', }, ), migrations.CreateModel( name='Document_Configuration', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=200)), ('template_path', models.CharField(max_length=200)), ('mappings', models.JSONField(default=list)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'document_configuration', }, ), migrations.CreateModel( name='Document_Type', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('en', models.CharField(max_length=100, null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'document_type', }, ), migrations.CreateModel( name='Duration', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('detail', models.TextField()), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'duration', }, ), migrations.CreateModel( name='Email_List', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=200, unique=True)), ('email', models.TextField()), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(null=True)), ], options={ 'db_table': 'email_list', }, ), migrations.CreateModel( name='Email_Setup', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('email', models.CharField(max_length=100, unique=True)), ('password', models.CharField(max_length=30)), ('smtp', models.CharField(max_length=100)), ('port', models.IntegerField()), ('display_name', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'email_setup', }, ), migrations.CreateModel( name='Email_Template', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=200, unique=True)), ('content', models.JSONField()), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(null=True)), ], options={ 'db_table': 'email_template', }, ), migrations.CreateModel( name='Entry_Category', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('en', models.CharField(max_length=100, null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'entry_category', }, ), migrations.CreateModel( name='Entry_Type', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('en', models.CharField(max_length=100, null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'entry_type', }, ), migrations.CreateModel( name='Fee_Method', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('en', models.CharField(max_length=100, null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'fee_method', }, ), migrations.CreateModel( name='File_Type', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'file_type', }, ), migrations.CreateModel( name='Filter_Choice', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('detail', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'filter_choice', }, ), migrations.CreateModel( name='Filter_Type', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'filter_type', }, ), migrations.CreateModel( name='Gift', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('detail', models.TextField(null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'gift', }, ), migrations.CreateModel( name='Import_Setting', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('detail', models.JSONField()), ('note', models.TextField(null=True)), ('template', models.TextField(null=True)), ('api', models.CharField(max_length=100)), ('call_api', models.CharField(max_length=100, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'import_setting', }, ), migrations.CreateModel( name='Interest_Base', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=200, null=True)), ('en', models.CharField(max_length=100, null=True)), ('index', models.IntegerField(default=1, null=True)), ('detail', models.TextField()), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'interest_base', }, ), migrations.CreateModel( name='Investor', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=255)), ('tax_code', models.CharField(max_length=20)), ('address', models.TextField()), ('phone', models.CharField(max_length=15, null=True)), ('email', models.CharField(max_length=50, null=True)), ('bank_account', models.CharField(max_length=20, null=True)), ('bank_name', models.CharField(max_length=100, null=True)), ('representative', models.CharField(max_length=100, null=True)), ('website', models.URLField(null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'investor', }, ), migrations.CreateModel( name='Issued_Place', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, null=True, unique=True)), ('name', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'issued_place', }, ), migrations.CreateModel( name='Land_Type', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'land_type', }, ), migrations.CreateModel( name='Lang_Choice', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('detail', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'lang_choice', }, ), migrations.CreateModel( name='Legal_Type', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('en', models.CharField(max_length=100, null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'legal_type', }, ), migrations.CreateModel( name='Menu_Choice', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'menu_choice', }, ), migrations.CreateModel( name='Message_Type', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('title', models.CharField(max_length=200, null=True)), ('title_en', models.CharField(max_length=200, null=True)), ('content', models.TextField()), ('content_en', models.TextField()), ('category', models.CharField(max_length=50)), ('link', models.TextField(null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'message_type', }, ), migrations.CreateModel( name='Money_Unit', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('detail', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'money_unit', }, ), migrations.CreateModel( name='Noti_Theme', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('title', models.TextField(null=True)), ('content', models.TextField(null=True)), ('image', models.CharField(max_length=200, null=True)), ('link', models.TextField(null=True)), ('receiver', models.JSONField(null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(null=True)), ], options={ 'db_table': 'noti_theme', }, ), migrations.CreateModel( name='Notification_Status', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('en', models.CharField(max_length=100, null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'notification_status', }, ), migrations.CreateModel( name='Ownership_Type', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'ownership_type', }, ), migrations.CreateModel( name='Payment_Method', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('en', models.CharField(max_length=100, null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'payment_method', }, ), migrations.CreateModel( name='Payment_Schedule', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, null=True, unique=True)), ('from_date', models.DateField()), ('to_date', models.DateField()), ('amount', models.DecimalField(decimal_places=2, max_digits=35)), ('paid_amount', models.DecimalField(decimal_places=2, max_digits=35, null=True)), ('amount_remain', models.DecimalField(decimal_places=2, max_digits=35, null=True)), ('remain_amount', models.DecimalField(decimal_places=2, max_digits=35, null=True)), ('cycle', models.IntegerField()), ('cycle_days', models.IntegerField()), ('entry', models.JSONField(null=True)), ('detail', models.JSONField(null=True)), ('batch_date', models.DateField(null=True)), ('ovd_days', models.IntegerField(null=True)), ('penalty_amount', models.DecimalField(decimal_places=2, max_digits=35, null=True)), ('penalty_paid', models.DecimalField(decimal_places=2, max_digits=35, null=True)), ('penalty_remain', models.DecimalField(decimal_places=2, max_digits=35, null=True)), ('penalty_reduce', models.DecimalField(decimal_places=2, max_digits=35, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'payment_schedule', }, ), migrations.CreateModel( name='Payment_Status', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('en', models.CharField(max_length=100, null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'payment_status', }, ), migrations.CreateModel( name='Payment_Type', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('en', models.CharField(max_length=100, null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'payment_type', }, ), migrations.CreateModel( name='Placement', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('detail', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'placement', }, ), migrations.CreateModel( name='Product_Status', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('color', models.CharField(max_length=20, null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'product_status', }, ), migrations.CreateModel( name='Product_Type', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'product_type', }, ), migrations.CreateModel( name='Project_Status', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'project_status', }, ), migrations.CreateModel( name='Register_Method', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'register_method', }, ), migrations.CreateModel( name='Relation', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('en', models.CharField(max_length=100, null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'relation', }, ), migrations.CreateModel( name='Sale_Status', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('color', models.CharField(max_length=20, null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'sale_status', }, ), migrations.CreateModel( name='Schedule_Type', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('en', models.CharField(max_length=100, null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'schedule_type', }, ), migrations.CreateModel( name='Script_Type', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'script_type', }, ), migrations.CreateModel( name='Send_Status', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'send_status', }, ), migrations.CreateModel( name='Setting_Choice', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'setting_choice', }, ), migrations.CreateModel( name='Setting_Class', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'setting_class', }, ), migrations.CreateModel( name='Setting_Type', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'setting_type', }, ), migrations.CreateModel( name='Sex', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('en', models.CharField(max_length=100, null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'sex', }, ), migrations.CreateModel( name='Share_Choice', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'share_choice', }, ), migrations.CreateModel( name='Sms', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('session_id', models.CharField(max_length=300)), ('request_id', models.CharField(max_length=300)), ('brandname', models.CharField(max_length=20)), ('phone', models.CharField(max_length=11)), ('message', models.CharField(max_length=300)), ('type', models.CharField(max_length=30)), ('agent', models.CharField(max_length=30)), ('telco', models.CharField(max_length=30)), ('status', models.CharField(max_length=30)), ('price', models.IntegerField(null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'sms', }, ), migrations.CreateModel( name='Sort_Type', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'sort_type', }, ), migrations.CreateModel( name='Ssh', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=300)), ('host', models.CharField(max_length=30)), ('port', models.IntegerField()), ('username', models.CharField(max_length=50)), ('password', models.CharField(max_length=50)), ('path', models.CharField(max_length=300)), ('deleted', models.BooleanField(default=False)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(null=True)), ], options={ 'db_table': 'ssh', }, ), migrations.CreateModel( name='Staff_Status', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('en', models.CharField(max_length=100, null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'staff_status', }, ), migrations.CreateModel( name='StepAction', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('step_code', models.CharField(max_length=50, unique=True)), ('name', models.CharField(max_length=200)), ('description', models.TextField(blank=True)), ('order', models.PositiveIntegerField(default=0)), ('trigger_event', models.CharField(choices=[('create', 'Create'), ('update', 'Update'), ('approve', 'Approve'), ('advance', 'Advance'), ('confirm', 'Confirm'), ('custom', 'Custom')], max_length=50)), ('target_model', models.CharField(blank=True, help_text="Model chính, e.g., 'app.Transaction'", max_length=100)), ('actions', models.JSONField(blank=True, default=list)), ('config', models.JSONField(blank=True, default=dict)), ('is_active', models.BooleanField(default=True)), ('create_time', models.DateTimeField(auto_now_add=True)), ('update_time', models.DateTimeField(auto_now=True)), ], options={ 'verbose_name': 'Step/Action', 'verbose_name_plural': 'Steps/Actions', 'db_table': 'step_action', 'ordering': ['order'], }, ), migrations.CreateModel( name='Table_Setting', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('detail', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'table_setting', }, ), migrations.CreateModel( name='Task_Category', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('en', models.CharField(max_length=100, null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'task_category', }, ), migrations.CreateModel( name='Task_Result', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('en', models.CharField(max_length=100, null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'task_result', }, ), migrations.CreateModel( name='Task_Status', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('en', models.CharField(max_length=100, null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'task_status', }, ), migrations.CreateModel( name='Text_Align', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'text_align', }, ), migrations.CreateModel( name='Text_Color', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('detail', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'text_color', }, ), migrations.CreateModel( name='Transaction_Phase', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, null=True, unique=True)), ('name', models.CharField(max_length=100)), ('color', models.IntegerField(null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'transaction_phase', }, ), migrations.CreateModel( name='Transaction_Status', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('detail', models.TextField()), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'transaction_status', }, ), migrations.CreateModel( name='Transaction_Type', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('detail', models.TextField()), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'transaction_type', }, ), migrations.CreateModel( name='User_Type', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('en', models.CharField(max_length=100, null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'user_type', }, ), migrations.CreateModel( name='Utility', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=50, unique=True)), ('name', models.CharField(max_length=200)), ('description', models.TextField(blank=True)), ('utility_type', models.CharField(choices=[('email', 'Email API'), ('crud', 'Data CRUD'), ('payment', 'Payment API'), ('document', 'Document Gen'), ('notification', 'Notification'), ('custom', 'Custom')], max_length=50)), ('api_config', models.JSONField(blank=True, default=dict)), ('params_template', models.JSONField(blank=True, default=dict)), ('integration_module', models.CharField(blank=True, help_text="e.g., 'app.email.send_email'", max_length=100)), ('is_active', models.BooleanField(default=True)), ('create_time', models.DateTimeField(auto_now_add=True)), ('update_time', models.DateTimeField(auto_now=True)), ], options={ 'verbose_name': 'Utility', 'verbose_name_plural': 'Utilities', 'db_table': 'utility', }, ), migrations.CreateModel( name='Value_Type', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('en', models.CharField(max_length=100, null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'value_type', }, ), migrations.CreateModel( name='Zone_Type', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ], options={ 'db_table': 'zone_type', }, ), migrations.CreateModel( name='Account_Setting', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('category', models.CharField(max_length=100)), ('classify', models.CharField(max_length=100)), ('code', models.CharField(max_length=100)), ('vi', models.TextField()), ('en', models.TextField(null=True)), ('image', models.TextField(null=True)), ('icon', models.TextField(null=True)), ('link', models.TextField(null=True)), ('detail', models.JSONField(null=True)), ('detail_en', models.JSONField(null=True)), ('index', models.IntegerField(default=0, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'account_setting', 'unique_together': {('category', 'classify', 'code')}, }, ), migrations.CreateModel( name='Biz_Setting', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('category', models.CharField(max_length=100)), ('classify', models.CharField(max_length=100)), ('code', models.CharField(max_length=100)), ('vi', models.TextField()), ('en', models.TextField(null=True)), ('image', models.TextField(null=True)), ('icon', models.TextField(null=True)), ('link', models.TextField(null=True)), ('detail', models.JSONField(null=True)), ('detail_en', models.JSONField(null=True)), ('index', models.IntegerField(default=0, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'biz_setting', 'unique_together': {('category', 'classify', 'code')}, }, ), migrations.CreateModel( name='Branch', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('address', models.CharField(max_length=300)), ('logo', models.CharField(max_length=300, null=True)), ('phone', models.CharField(max_length=20)), ('email', models.CharField(max_length=100, null=True)), ('note', models.TextField(null=True)), ('start_date', models.DateField(null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('type', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.branch_type')), ], options={ 'db_table': 'branch', }, ), migrations.CreateModel( name='Common', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('category', models.CharField(max_length=100)), ('classify', models.CharField(max_length=100)), ('code', models.CharField(max_length=100)), ('vi', models.TextField()), ('en', models.TextField(null=True)), ('image', models.TextField(null=True)), ('icon', models.TextField(null=True)), ('link', models.TextField(null=True)), ('detail', models.JSONField(null=True)), ('index', models.IntegerField(default=0, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'common', 'unique_together': {('category', 'classify', 'code')}, }, ), migrations.CreateModel( name='Company', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(db_index=True, max_length=20, null=True, unique=True)), ('tax_code', models.CharField(max_length=20, null=True, unique=True)), ('fullname', models.CharField(db_index=True, max_length=300)), ('shortname', models.CharField(db_index=True, max_length=50, null=True)), ('phone', models.CharField(db_index=True, max_length=20, null=True)), ('email', models.CharField(max_length=50, null=True)), ('website', models.CharField(max_length=100, null=True)), ('address', models.CharField(max_length=200, null=True)), ('contact_address', models.CharField(max_length=200, null=True)), ('note', models.TextField(null=True)), ('deleted', models.BooleanField(db_index=True, default=False)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('country', models.ForeignKey(default=1, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.country')), ], options={ 'db_table': 'company', }, ), migrations.CreateModel( name='Customer', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(db_index=True, max_length=20, null=True, unique=True)), ('fullname', models.CharField(db_index=True, max_length=200)), ('phone', models.CharField(db_index=True, max_length=20, unique=True)), ('email', models.CharField(max_length=50, null=True, unique=True)), ('legal_code', models.CharField(max_length=20, null=True, unique=True)), ('issued_date', models.DateField(null=True)), ('address', models.CharField(max_length=200, null=True)), ('contact_address', models.CharField(max_length=200, null=True)), ('note', models.TextField(null=True)), ('deleted', models.BooleanField(db_index=True, default=False)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('country', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.country')), ('type', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.customer_type')), ('dealer', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.dealer')), ('issued_place', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.issued_place')), ('legal_type', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.legal_type')), ], options={ 'db_table': 'customer', }, ), migrations.CreateModel( name='Cart', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=20, null=True, unique=True)), ('name', models.CharField(max_length=255)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('dealer', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.dealer')), ], options={ 'db_table': 'cart', }, ), migrations.CreateModel( name='Discount_Type', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('value', models.IntegerField()), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('method', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.discount_method')), ('type', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.value_type')), ], options={ 'db_table': 'discount_type', }, ), migrations.CreateModel( name='Email_Job', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=200)), ('model_name', models.CharField(help_text='e.g., app.Transaction_Detail', max_length=100)), ('trigger_on_create', models.BooleanField(default=False)), ('trigger_on_update', models.BooleanField(default=False)), ('active', models.BooleanField(default=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('template', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.email_template')), ], options={ 'db_table': 'email_job', }, ), migrations.CreateModel( name='Info_Setting', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('category', models.CharField(max_length=100)), ('classify', models.CharField(max_length=100)), ('code', models.CharField(max_length=100)), ('vi', models.TextField()), ('en', models.TextField(null=True)), ('image', models.TextField(null=True)), ('icon', models.TextField(null=True)), ('link', models.TextField(null=True)), ('detail', models.JSONField(null=True)), ('detail_en', models.JSONField(null=True)), ('index', models.IntegerField(default=0, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'info_setting', 'unique_together': {('category', 'classify', 'code')}, }, ), migrations.CreateModel( name='Internal_Account', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('balance', models.FloatField()), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('branch', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.branch')), ('currency', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.currency')), ('type', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.account_type')), ], options={ 'db_table': 'internal_account', 'unique_together': {('branch', 'type', 'currency')}, }, ), migrations.CreateModel( name='Message', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('ref_code', models.CharField(max_length=20)), ('title', models.CharField(max_length=200, null=True)), ('title_en', models.CharField(max_length=200, null=True)), ('content', models.TextField()), ('content_en', models.TextField()), ('link', models.TextField(null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('type', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.message_type')), ], options={ 'db_table': 'message', }, ), migrations.CreateModel( name='Organization', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('shortname', models.CharField(max_length=50, null=True)), ('established_date', models.DateField(null=True)), ('website', models.CharField(max_length=200, null=True)), ('bank_account', models.CharField(max_length=50, null=True)), ('bank_name', models.CharField(max_length=100, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('customer', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='orgncust', to='app.customer')), ('type', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.company_type')), ], options={ 'db_table': 'organization', }, ), migrations.CreateModel( name='Invoice', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('link', models.CharField(max_length=100, null=True)), ('ref_code', models.CharField(max_length=30)), ('amount', models.DecimalField(decimal_places=2, max_digits=35)), ('note', models.CharField(max_length=100, null=True)), ('payment', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='invoice', to='app.payment_schedule')), ], options={ 'db_table': 'invoice', }, ), migrations.AddField( model_name='payment_schedule', name='status', field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.payment_status'), ), migrations.AddField( model_name='payment_schedule', name='type', field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.payment_type'), ), migrations.CreateModel( name='People', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(db_index=True, max_length=20, null=True, unique=True)), ('fullname', models.CharField(max_length=50)), ('phone', models.CharField(max_length=20)), ('email', models.CharField(max_length=100, null=True)), ('dob', models.DateField(null=True)), ('legal_code', models.CharField(max_length=20, null=True)), ('issued_date', models.DateField(null=True)), ('address', models.CharField(max_length=200, null=True)), ('contact_address', models.CharField(max_length=200, null=True)), ('taxcode', models.CharField(max_length=100, null=True)), ('note', models.TextField(null=True)), ('deleted', models.BooleanField(default=False)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('company', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.company')), ('country', models.ForeignKey(default=1, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.country')), ('issued_place', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.issued_place')), ('legal_type', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.legal_type')), ('sex', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.sex')), ], options={ 'db_table': 'people', }, ), migrations.AddField( model_name='branch', name='manager', field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.people'), ), migrations.AddField( model_name='branch', name='signature', field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.people'), ), migrations.CreateModel( name='Project', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=20, unique=True)), ('name', models.CharField(max_length=255)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('investor', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.investor')), ('status', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.project_status')), ], options={ 'db_table': 'project', }, ), migrations.CreateModel( name='Legal_Rep', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('organization', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='orgrep', to='app.organization')), ('people', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.people')), ('relation', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.relation')), ], options={ 'db_table': 'legal_rep', }, ), migrations.CreateModel( name='Sale_Policy', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('deposit', models.DecimalField(decimal_places=2, max_digits=35)), ('enable', models.BooleanField(default=True)), ('contract_allocation_percentage', models.IntegerField(blank=True, default=100, null=True)), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('method', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.payment_method')), ], options={ 'db_table': 'sale_policy', }, ), migrations.CreateModel( name='Product', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=20, null=True, unique=True)), ('land_lot_code', models.CharField(max_length=255)), ('zone_code', models.CharField(max_length=255)), ('trade_code', models.CharField(max_length=20, null=True)), ('lot_area', models.DecimalField(decimal_places=2, max_digits=35)), ('building_area', models.DecimalField(decimal_places=2, max_digits=35)), ('total_built_area', models.DecimalField(decimal_places=2, max_digits=35)), ('number_of_floors', models.IntegerField()), ('land_lot_size', models.CharField(max_length=255)), ('villa_model', models.CharField(max_length=255, null=True)), ('note', models.TextField(null=True)), ('origin_price', models.DecimalField(decimal_places=2, max_digits=35, null=True)), ('price_excluding_vat', models.DecimalField(decimal_places=2, max_digits=35, null=True)), ('product_type', models.CharField(max_length=255, null=True)), ('template_name', models.CharField(max_length=255, null=True)), ('link', models.UUIDField(default=uuid.uuid4, editable=False, null=True, unique=True)), ('locked_until', models.DateTimeField(null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('cart', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='prdcart', to='app.cart')), ('dealer', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.dealer')), ('direction', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.direction')), ('status', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.product_status')), ('type', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.product_type')), ('project', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.project')), ('policy', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.sale_policy')), ('zone_type', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.zone_type')), ], options={ 'db_table': 'product', }, ), migrations.AddField( model_name='product_status', name='sale_status', field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.sale_status'), ), migrations.CreateModel( name='Email_Sent', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('receiver', models.TextField()), ('subject', models.TextField()), ('content', models.TextField()), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(null=True)), ('status', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.send_status')), ], options={ 'db_table': 'email_sent', }, ), migrations.CreateModel( name='Individual', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('dob', models.DateField(null=True)), ('zalo', models.CharField(max_length=20, null=True)), ('facebook', models.CharField(max_length=200, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('company', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.company')), ('customer', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='indvcust', to='app.customer')), ('sex', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.sex')), ], options={ 'db_table': 'individual', }, ), migrations.CreateModel( name='System_Setting', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('category', models.CharField(max_length=100)), ('classify', models.CharField(max_length=100)), ('code', models.CharField(max_length=100)), ('vi', models.TextField()), ('en', models.TextField(null=True)), ('image', models.TextField(null=True)), ('icon', models.TextField(null=True)), ('link', models.TextField(null=True)), ('detail', models.JSONField(null=True)), ('detail_en', models.JSONField(null=True)), ('index', models.IntegerField(default=0, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ], options={ 'db_table': 'system_setting', 'unique_together': {('category', 'classify', 'code')}, }, ), migrations.CreateModel( name='Phone_Otp', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('phone', models.CharField(max_length=10)), ('otp', models.CharField(max_length=10)), ('valid_to', models.DateTimeField(null=True)), ('expiry', models.BooleanField(default=False)), ('sms_content', models.TextField(null=True)), ('sms_fee', models.IntegerField(null=True)), ('sms_info', models.JSONField(null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('status', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.auth_status')), ('result', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.task_result')), ], options={ 'db_table': 'phone_otp', }, ), migrations.CreateModel( name='Batch_Log', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('system_date', models.DateField()), ('start_time', models.DateTimeField()), ('end_time', models.DateTimeField(null=True)), ('duration', models.IntegerField(null=True)), ('log', models.JSONField(null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('status', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.task_status')), ], options={ 'db_table': 'batch_log', }, ), migrations.CreateModel( name='Backup', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=200)), ('file', models.CharField(max_length=200, null=True)), ('note', models.TextField(null=True)), ('start_time', models.DateTimeField(null=True)), ('end_time', models.DateTimeField(null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('status', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.task_status')), ], options={ 'db_table': 'backup', }, ), migrations.CreateModel( name='Transaction', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, null=True, unique=True)), ('date', models.DateField()), ('origin_price', models.DecimalField(decimal_places=2, max_digits=35, null=True)), ('discount_amount', models.DecimalField(decimal_places=2, max_digits=35, null=True)), ('sale_price', models.DecimalField(decimal_places=2, max_digits=35, null=True)), ('deposit_amount', models.DecimalField(decimal_places=2, max_digits=35, null=True)), ('deposit_received', models.DecimalField(decimal_places=2, max_digits=35, null=True)), ('deposit_remaining', models.DecimalField(decimal_places=2, max_digits=35, null=True)), ('amount_received', models.DecimalField(decimal_places=2, max_digits=35, null=True)), ('amount_remain', models.DecimalField(decimal_places=2, max_digits=35, null=True)), ('penalty_amount', models.DecimalField(decimal_places=2, max_digits=35, null=True)), ('early_discount_amount', models.DecimalField(decimal_places=2, max_digits=35, null=True)), ('payment_plan', models.JSONField(null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('customer', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='txncust', to='app.customer')), ('policy', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='txnplc', to='app.sale_policy')), ('product', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='txnprd', to='app.product')), ('phase', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.transaction_phase')), ], options={ 'db_table': 'transaction', }, ), migrations.CreateModel( name='Transaction_Detail', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, null=True, unique=True)), ('date', models.DateField()), ('amount', models.DecimalField(decimal_places=2, max_digits=35, null=True)), ('amount_remaining', models.DecimalField(decimal_places=2, max_digits=35, null=True)), ('amount_received', models.DecimalField(decimal_places=2, max_digits=35, null=True)), ('due_date', models.DateField(null=True)), ('approve_time', models.DateTimeField(null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('customer_new', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.customer')), ('customer_old', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.customer')), ('transaction', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='resvtxn', to='app.transaction')), ('phase', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.transaction_phase')), ('status', models.ForeignKey(default=1, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.transaction_status')), ], options={ 'db_table': 'transaction_detail', }, ), migrations.AddField( model_name='payment_schedule', name='txn_detail', field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='psh', to='app.transaction_detail'), ), migrations.CreateModel( name='Transaction_Gift', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('gift', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.gift')), ('transaction', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='txngift', to='app.transaction')), ], options={ 'db_table': 'transaction_gift', }, ), migrations.CreateModel( name='Phase_Doctype', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('doctype', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.document_type')), ('phase', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='phasedoc', to='app.transaction_phase')), ], options={ 'db_table': 'phase_doctype', }, ), migrations.CreateModel( name='User', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('username', models.CharField(max_length=50, unique=True)), ('password', models.CharField(max_length=100)), ('email', models.CharField(max_length=100, null=True, unique=True)), ('avatar', models.CharField(max_length=100, null=True)), ('fullname', models.CharField(max_length=50)), ('display_name', models.CharField(max_length=50, null=True)), ('blocked', models.BooleanField(default=False)), ('blocked_by', models.PositiveIntegerField(null=True)), ('last_login', models.DateTimeField(null=True)), ('pin', models.CharField(max_length=100, null=True)), ('is_admin', models.BooleanField(default=False, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('auth_method', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.auth_method')), ('auth_status', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.auth_status')), ('block_reason', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.block_reason')), ('register_method', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.register_method')), ('type', models.ForeignKey(default=1, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user_type')), ], options={ 'db_table': 'user', }, ), migrations.AddField( model_name='transaction_detail', name='approver', field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user'), ), migrations.AddField( model_name='transaction_detail', name='creator', field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user'), ), migrations.CreateModel( name='Token', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('token', models.CharField(max_length=100, unique=True)), ('fcmtoken', models.CharField(max_length=200, null=True)), ('browser', models.TextField()), ('browser_version', models.CharField(max_length=100)), ('os', models.CharField(max_length=100)), ('ip', models.CharField(max_length=100)), ('platform', models.CharField(max_length=100)), ('expiry', models.BooleanField(default=False)), ('city', models.CharField(max_length=100, null=True)), ('region', models.CharField(max_length=100, null=True)), ('country', models.CharField(max_length=100, null=True)), ('loc', models.CharField(max_length=100, null=True)), ('org', models.CharField(max_length=100, null=True)), ('postal', models.CharField(max_length=100, null=True)), ('timezone', models.CharField(max_length=100, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user')), ], options={ 'db_table': 'token', }, ), migrations.CreateModel( name='Staff', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(db_index=True, max_length=20, unique=True)), ('fullname', models.CharField(db_index=True, max_length=50)), ('phone', models.CharField(db_index=True, max_length=20, unique=True)), ('email', models.CharField(max_length=50, null=True, unique=True)), ('dob', models.DateField(null=True)), ('legal_code', models.CharField(max_length=20, null=True, unique=True)), ('issued_place', models.CharField(max_length=200, null=True)), ('issued_date', models.DateField(null=True)), ('province', models.CharField(max_length=200, null=True)), ('district', models.CharField(max_length=200, null=True)), ('address', models.CharField(max_length=200, null=True)), ('note', models.TextField(null=True)), ('zalo', models.CharField(max_length=20, null=True)), ('facebook', models.CharField(max_length=100, null=True)), ('deleted', models.BooleanField(db_index=True, default=False)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('branch', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.branch')), ('country', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.country')), ('legal_type', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.legal_type')), ('sex', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.sex')), ('status', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.staff_status')), ('creator', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user')), ('updater', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user')), ('user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user')), ], options={ 'db_table': 'staff', }, ), migrations.CreateModel( name='Product_Note', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('detail', models.TextField()), ('files', models.JSONField(null=True)), ('deleted', models.BooleanField(default=False, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('ref', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='prdnote', to='app.product')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user')), ], options={ 'db_table': 'product_note', }, ), migrations.AddField( model_name='people', name='creator', field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user'), ), migrations.AddField( model_name='people', name='updater', field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user'), ), migrations.AddField( model_name='payment_schedule', name='updater', field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user'), ), migrations.CreateModel( name='News', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('title', models.CharField(max_length=200)), ('subtitle', models.CharField(max_length=500)), ('image', models.CharField(max_length=300)), ('header', models.JSONField(null=True)), ('content', models.JSONField(null=True)), ('link', models.CharField(max_length=200, null=True)), ('canonical', models.CharField(max_length=200, null=True)), ('valid_from', models.DateTimeField(null=True)), ('valid_to', models.DateTimeField(null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('category', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.category')), ('language', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.lang_choice')), ('status', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.display_status')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user')), ], options={ 'db_table': 'news', }, ), migrations.CreateModel( name='Layer_Setting', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=20, null=True, unique=True)), ('name', models.CharField(max_length=200)), ('detail', models.JSONField()), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('user', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user')), ], options={ 'db_table': 'layer_setting', }, ), migrations.CreateModel( name='Internal_Entry', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(db_index=True, max_length=30, null=True, unique=True)), ('content', models.TextField()), ('amount', models.FloatField()), ('balance_before', models.FloatField(null=True)), ('balance_after', models.FloatField()), ('date', models.DateField()), ('ref', models.CharField(max_length=30, null=True, unique=True)), ('allocation_amount', models.DecimalField(decimal_places=2, max_digits=35, null=True)), ('allocation_remain', models.DecimalField(decimal_places=2, max_digits=35, null=True)), ('allocation_detail', models.JSONField(null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('account', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.internal_account')), ('category', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='entrycate', to='app.entry_category')), ('customer', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='entrycus', to='app.customer')), ('type', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.entry_type')), ('product', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.product')), ('approver', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user')), ('inputer', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user')), ], options={ 'db_table': 'internal_entry', }, ), migrations.CreateModel( name='Group', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=100)), ('note', models.TextField(null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('creator', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user')), ], options={ 'db_table': 'group', 'unique_together': {('creator', 'name')}, }, ), migrations.CreateModel( name='File', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=20, null=True, unique=True)), ('name', models.CharField(max_length=200)), ('file', models.CharField(max_length=200)), ('hashtag', models.CharField(max_length=200, null=True)), ('size', models.IntegerField()), ('caption', models.CharField(max_length=200, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(null=True)), ('doc_type', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.document_type')), ('type', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.file_type')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user')), ], options={ 'db_table': 'file', }, ), migrations.AddField( model_name='dealer', name='user', field=models.OneToOneField(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='dealer_profile', to='app.user'), ), migrations.CreateModel( name='Customer_Sms', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('ref', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='custsms', to='app.customer')), ('sms', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.sms')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user')), ], options={ 'db_table': 'customer_sms', }, ), migrations.CreateModel( name='Customer_Note', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('detail', models.JSONField()), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('ref', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='custnote', to='app.customer')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user')), ], options={ 'db_table': 'customer_note', }, ), migrations.AddField( model_name='customer', name='creator', field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user'), ), migrations.AddField( model_name='customer', name='updater', field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user'), ), migrations.CreateModel( name='Contract', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('link', models.UUIDField(default=uuid.uuid4, editable=False, null=True)), ('document', models.JSONField(null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('status', models.ForeignKey(default=1, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.contract_status')), ('signature', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.file')), ('transaction', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.transaction')), ('user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user')), ], options={ 'db_table': 'contract', }, ), migrations.AddField( model_name='company', name='creator', field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user'), ), migrations.AddField( model_name='company', name='updater', field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user'), ), migrations.CreateModel( name='Account_Recovery', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('expiry', models.BooleanField(default=False)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('user', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user')), ], options={ 'db_table': 'account_recovery', }, ), migrations.CreateModel( name='User_Auth', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('expiry', models.BooleanField(default=False)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(null=True)), ('user', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user')), ], options={ 'db_table': 'user_auth', }, ), migrations.CreateModel( name='User_Session', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('session', models.BigIntegerField()), ('start_time', models.DateTimeField()), ('end_time', models.DateTimeField(null=True)), ('duration', models.IntegerField(null=True)), ('click_count', models.IntegerField(null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('token', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='userlog', to='app.token')), ], options={ 'db_table': 'user_session', }, ), migrations.CreateModel( name='User_Log', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('link', models.TextField()), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('session', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user_session')), ], options={ 'db_table': 'user_log', }, ), migrations.CreateModel( name='User_Setting', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=200, unique=True)), ('detail', models.JSONField()), ('note', models.TextField(null=True)), ('default', models.BooleanField(default=False)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('view', models.PositiveIntegerField(null=True)), ('like', models.PositiveIntegerField(null=True)), ('share', models.PositiveIntegerField(null=True)), ('on_menu', models.BooleanField(default=False)), ('my_menu', models.BooleanField(default=False)), ('deleted', models.BooleanField(default=False)), ('classify', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.setting_class')), ('type', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.setting_type')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user')), ], options={ 'db_table': 'user_setting', }, ), migrations.CreateModel( name='Transaction_Discount', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('value', models.DecimalField(decimal_places=2, max_digits=35, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('discount', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.discount_type')), ('transaction', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='txndiscount', to='app.transaction')), ('type', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.value_type')), ], options={ 'db_table': 'transaction_discount', }, ), migrations.CreateModel( name='Fee_Type', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=30, unique=True)), ('name', models.CharField(max_length=100)), ('value', models.FloatField()), ('index', models.IntegerField(default=1, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('method', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.fee_method')), ('type', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.value_type')), ], options={ 'db_table': 'fee_type', }, ), migrations.CreateModel( name='Workflow', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=50, unique=True)), ('name', models.CharField(max_length=200)), ('description', models.TextField(blank=True)), ('is_active', models.BooleanField(default=True)), ('create_time', models.DateTimeField(auto_now_add=True)), ('update_time', models.DateTimeField(auto_now=True)), ('initial_step', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='initial_workflows', to='app.stepaction')), ], options={ 'verbose_name': 'Workflow', 'verbose_name_plural': 'Workflows', 'db_table': 'workflow', }, ), migrations.AddField( model_name='stepaction', name='workflow', field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='steps', to='app.workflow'), ), migrations.CreateModel( name='Customer_File', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('ref', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='custfile', to='app.customer')), ('file', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.file')), ], options={ 'db_table': 'customer_file', 'unique_together': {('ref', 'file')}, }, ), migrations.CreateModel( name='Account_Book', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('system_date', models.DateField()), ('current_date', models.DateField()), ('start_balance', models.FloatField(null=True)), ('end_balance', models.FloatField(null=True)), ('credit', models.FloatField(null=True)), ('debit', models.FloatField(null=True)), ('number_credit', models.IntegerField(null=True)), ('number_debit', models.IntegerField(null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('account', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.internal_account')), ], options={ 'db_table': 'account_book', 'unique_together': {('system_date', 'account')}, }, ), migrations.CreateModel( name='Entry_File', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('file', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.file')), ('ref', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='entryfile', to='app.internal_entry')), ], options={ 'db_table': 'entry_file', 'unique_together': {('ref', 'file')}, }, ), migrations.CreateModel( name='People_File', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('file', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.file')), ('ref', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.people')), ], options={ 'db_table': 'people_file', 'unique_together': {('ref', 'file')}, }, ), migrations.CreateModel( name='Product_File', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('file', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.file')), ('product', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='prdfile', to='app.product')), ], options={ 'db_table': 'product_file', 'unique_together': {('product', 'file')}, }, ), migrations.CreateModel( name='Project_File', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('file', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.file')), ('project', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='prjfile', to='app.project')), ], options={ 'db_table': 'project_file', 'unique_together': {('project', 'file')}, }, ), migrations.CreateModel( name='Customer_People', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('customer', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='custpeople', to='app.customer')), ('people', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.people')), ('relation', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.relation')), ], options={ 'db_table': 'customer_people', 'unique_together': {('customer', 'people')}, }, ), migrations.CreateModel( name='Staff_File', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('file', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.file')), ('ref', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='stafffile', to='app.staff')), ], options={ 'db_table': 'staff_file', 'unique_together': {('ref', 'file')}, }, ), migrations.CreateModel( name='Product_Booked', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('product', models.OneToOneField(on_delete=django.db.models.deletion.PROTECT, related_name='prdbk', to='app.product')), ('transaction', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='transbk', to='app.transaction')), ], options={ 'db_table': 'product_booked', 'unique_together': {('product', 'transaction')}, }, ), migrations.CreateModel( name='Co_Ownership', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('people', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.people')), ('transaction', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='co_op', to='app.transaction')), ], options={ 'db_table': 'co_ownership', 'unique_together': {('transaction', 'people')}, }, ), migrations.CreateModel( name='Transaction_Current', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('transaction', models.OneToOneField(on_delete=django.db.models.deletion.PROTECT, related_name='txncurrent', to='app.transaction')), ('detail', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.transaction_detail')), ], options={ 'db_table': 'transaction_current', 'unique_together': {('transaction', 'detail')}, }, ), migrations.CreateModel( name='Transaction_File', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('file', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.file')), ('txn_detail', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='txnfile', to='app.transaction_detail')), ], options={ 'db_table': 'transaction_file', 'unique_together': {('txn_detail', 'file')}, }, ), migrations.CreateModel( name='Message_Receiver', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('seen', models.BooleanField(default=False)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('message', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='msgrecv', to='app.message')), ('status', models.ForeignKey(default=1, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.notification_status')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user')), ], options={ 'db_table': 'message_receiver', 'unique_together': {('message', 'user')}, }, ), migrations.CreateModel( name='Biz_Rights', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('setting', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.biz_setting')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user')), ], options={ 'db_table': 'biz_rights', 'unique_together': {('setting', 'user')}, }, ), migrations.CreateModel( name='User_Apps', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('apps', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.apps')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='userapps', to='app.user')), ], options={ 'db_table': 'user_apps', 'unique_together': {('apps', 'user')}, }, ), migrations.CreateModel( name='User_Group', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('deleted', models.BooleanField(default=False)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('group', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='grus', to='app.group')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='usgr', to='app.user')), ], options={ 'db_table': 'user_group', 'unique_together': {('group', 'user')}, }, ), migrations.CreateModel( name='Group_Rights', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('is_edit', models.BooleanField(default=False, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('setting', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.biz_setting')), ('group', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user_type')), ], options={ 'db_table': 'group_rights', 'unique_together': {('setting', 'group')}, }, ), migrations.CreateModel( name='Rule', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('rule_code', models.CharField(max_length=50, unique=True)), ('name', models.CharField(max_length=200)), ('description', models.TextField(blank=True)), ('conditions', models.JSONField(blank=True, default=list)), ('constraints', models.JSONField(blank=True, default=list)), ('is_active', models.BooleanField(default=True)), ('create_time', models.DateTimeField(auto_now_add=True)), ('update_time', models.DateTimeField(auto_now=True)), ('step_action', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='rules', to='app.stepaction')), ('utility', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='rules', to='app.utility')), ], options={ 'verbose_name': 'Rule', 'verbose_name_plural': 'Rules', 'db_table': 'rule', 'unique_together': {('step_action', 'rule_code')}, }, ), migrations.CreateModel( name='Payment_Plan', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('cycle', models.IntegerField()), ('value', models.IntegerField()), ('days', models.IntegerField()), ('payment_note', models.TextField()), ('due_note', models.TextField()), ('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('update_time', models.DateTimeField(auto_now=True, null=True)), ('policy', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.sale_policy')), ('type', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.value_type')), ], options={ 'db_table': 'payment_plan', 'unique_together': {('policy', 'cycle')}, }, ), migrations.AlterUniqueTogether( name='stepaction', unique_together={('workflow', 'step_code')}, ), ]