This commit is contained in:
anhduy-tech
2026-03-06 09:51:53 +07:00
parent 39aea8784e
commit 3ece124848
487 changed files with 1851 additions and 108460 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
+5 -7
View File
@@ -21,7 +21,7 @@ BASE_DIR = Path(__file__).resolve().parent.parent
SECRET_KEY = 'django-insecure-_u202k$8qq2p*cr_eo(7k!0ngr5^n)27@85+5oy8&41(u6&j54' SECRET_KEY = 'django-insecure-_u202k$8qq2p*cr_eo(7k!0ngr5^n)27@85+5oy8&41(u6&j54'
# SECURITY WARNING: don't run with debug turned on in production! # SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False DEBUG = True
ALLOWED_HOSTS = ['*'] ALLOWED_HOSTS = ['*']
@@ -42,13 +42,11 @@ INSTALLED_APPS = [
] ]
MIDDLEWARE = [ MIDDLEWARE = [
# 'app.middleware.BlockUnauthorizedOriginsMiddleware',
'django.middleware.security.SecurityMiddleware', 'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware', 'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware', 'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware',
'app.middleware.CurrentUserMiddleware', # Add CurrentUserMiddleware
'django.contrib.messages.middleware.MessageMiddleware', 'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware',
'corsheaders.middleware.CorsMiddleware' 'corsheaders.middleware.CorsMiddleware'
@@ -81,15 +79,15 @@ ASGI_APPLICATION = 'api.asgi.application'
# https://docs.djangoproject.com/en/4.1/ref/settings/#databases # https://docs.djangoproject.com/en/4.1/ref/settings/#databases
#prod:5.223.52.193 dev:5.223.42.146 #prod:5.223.52.193 dev:5.223.42.146
MODE = 'prod' MODE = 'dev'
DBHOST = '172.17.0.1' if MODE == 'prod' else '5.223.42.146' DBHOST = '138.199.203.34' if MODE == 'prod' else '138.199.203.34'
DATABASES = { DATABASES = {
'default': { 'default': {
'ENGINE': 'django_db_geventpool.backends.postgresql_psycopg3', # Hoặc psycopg3/postgis 'ENGINE': 'django_db_geventpool.backends.postgresql_psycopg3', # Hoặc psycopg3/postgis
'NAME': 'utopia', 'NAME': 'erp_db',
'USER': 'postgres', 'USER': 'postgres',
'PASSWORD': 'W7VVBUnqDRy7OVkWfdTB4fS0HQ1615', 'PASSWORD': '0q6XiMhNuHOQM1cBOQUu9NWkVeT8dz',
'HOST': DBHOST, 'HOST': DBHOST,
'PORT': '5423', 'PORT': '5423',
'CONN_MAX_AGE': 0, # Tắt persistent connection mặc định của Django 'CONN_MAX_AGE': 0, # Tắt persistent connection mặc định của Django
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
-14
View File
@@ -6,19 +6,5 @@ class AppConfig(AppConfig):
name = 'app' name = 'app'
def ready(self): def ready(self):
import app.workflow_actions
from . import signals from . import signals
signals.connect_signals() signals.connect_signals()
# Sử dụng cache.add() của Django để tạo lock, đảm bảo chỉ một worker khởi động scheduler
try:
from django.core.cache import cache
# cache.add() là atomic, chỉ trả về True nếu key được tạo thành công
if cache.add("scheduler_lock", "locked", timeout=65):
from . import scheduler
scheduler.start()
print("Scheduler started by this worker.")
else:
print("Scheduler lock already held by another worker.")
except Exception as e:
print(f"Failed to start or check scheduler lock: {e}")
-67
View File
@@ -1,67 +0,0 @@
from urllib.parse import urlparse
from django.http import JsonResponse
import threading
_thread_locals = threading.local()
def get_current_user():
"""
Retrieves the current user from thread-local storage.
"""
return getattr(_thread_locals, 'user', None)
class CurrentUserMiddleware:
"""
Middleware to store the current user in thread-local storage.
"""
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
# Store the user in thread-local storage
_thread_locals.user = request.user if hasattr(request, 'user') and request.user.is_authenticated else None
response = self.get_response(request)
# Clean up the thread-local storage after the request is finished
if hasattr(_thread_locals, 'user'):
del _thread_locals.user
return response
ALLOWED_ORIGINS = [
"http://localhost:3000",
"https://biz.utopia.com.vn",
"https://datamodel.bigdatatech.vn"
]
ALLOWED_DOMAIN_SUFFIXES = [
".utopia.com.vn"
]
ALLOWED_HOST = [
"localhost:8000",
"api.utopia.com.vn",
"dev.api.utopia.com.vn"
]
class BlockUnauthorizedOriginsMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
origin = request.headers.get("Origin")
host = request.get_host()
if origin:
parsed = urlparse(origin)
domain = parsed.hostname
if origin not in ALLOWED_ORIGINS and not any(
domain.endswith(suffix) for suffix in ALLOWED_DOMAIN_SUFFIXES
):
return JsonResponse({"detail": "Forbidden origin"}, status=4.3)
if not origin and host not in ALLOWED_HOST:
return JsonResponse({"detail": "Direct access not allowed"}, status=403)
return self.get_response(request)
File diff suppressed because it is too large Load Diff
@@ -1,66 +0,0 @@
# Generated by Django 4.1.3 on 2022-11-12 07:52
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('app', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='customer',
name='avatar',
field=models.CharField(max_length=200, null=True),
),
migrations.AddField(
model_name='customer',
name='fullname',
field=models.CharField(default='xxx', max_length=50),
preserve_default=False,
),
migrations.AlterField(
model_name='customer',
name='dob',
field=models.DateField(null=True),
),
migrations.AlterField(
model_name='customer',
name='issued_date',
field=models.DateField(null=True),
),
migrations.AlterField(
model_name='customer',
name='issued_place',
field=models.CharField(max_length=200, null=True),
),
migrations.AlterField(
model_name='customer',
name='legal_id',
field=models.CharField(max_length=20, null=True),
),
migrations.AlterField(
model_name='customer',
name='legal_type',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.legal_type'),
),
migrations.AlterField(
model_name='customer',
name='location',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.location'),
),
migrations.AlterField(
model_name='customer',
name='phone',
field=models.CharField(default='xxx', max_length=20),
preserve_default=False,
),
migrations.AlterField(
model_name='customer',
name='sex',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.sex'),
),
]
@@ -1,135 +0,0 @@
# Generated by Django 4.1.3 on 2022-11-12 23:21
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('app', '0002_customer_avatar_customer_fullname_alter_customer_dob_and_more'),
]
operations = [
migrations.CreateModel(
name='Aseet_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=200, null=True)),
('detail', models.TextField()),
('create_time', models.DateTimeField(auto_now_add=True, null=True)),
],
options={
'db_table': 'asset_type',
},
),
migrations.CreateModel(
name='Debt_Group',
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)),
('detail', models.TextField()),
('create_time', models.DateTimeField(auto_now_add=True, null=True)),
],
options={
'db_table': 'debt_group',
},
),
migrations.CreateModel(
name='Loan',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('valid_from', models.DateField()),
('valid_to', models.DateField(null=True)),
('disbursement', models.FloatField()),
('principal', models.FloatField()),
('interest', models.FloatField()),
('accrued_period', models.FloatField()),
('outstanding', models.FloatField()),
('last_cal_itr', models.DateField(null=True)),
('last_pay_itr', models.FloatField(null=True)),
('last_pay_pcp', models.FloatField(null=True)),
('interest_collected', models.FloatField()),
('principal_collected', models.FloatField()),
('interest_overdue', models.IntegerField()),
('principal_overdue', models.IntegerField()),
('create_time', models.DateTimeField(auto_now_add=True, null=True)),
('update_time', models.DateTimeField(null=True)),
('approver', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user')),
('creator', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user')),
('customer', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.customer')),
],
options={
'db_table': 'loan',
},
),
migrations.CreateModel(
name='Loan_Product',
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)),
('detail', models.TextField()),
('create_time', models.DateTimeField(auto_now_add=True, null=True)),
],
options={
'db_table': 'loan_product',
},
),
migrations.CreateModel(
name='Loan_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=200, null=True)),
('detail', models.TextField()),
('create_time', models.DateTimeField(auto_now_add=True, null=True)),
],
options={
'db_table': 'loan_type',
},
),
migrations.CreateModel(
name='Loan_Schedule',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('pay_date', models.DateField(null=True)),
('pay_amount', models.DateField(null=True)),
('create_time', models.DateTimeField(auto_now_add=True, null=True)),
('update_time', models.DateTimeField(null=True)),
('loan', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.loan')),
('payment_type', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.payment_type')),
('updater', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user')),
],
options={
'db_table': 'loan_schedule',
},
),
migrations.CreateModel(
name='Loan_Payment',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('pay_date', models.DateField(null=True)),
('pay_amount', models.DateField(null=True)),
('create_time', models.DateTimeField(auto_now_add=True, null=True)),
('update_time', models.DateTimeField(null=True)),
('loan', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.loan')),
('updater', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user')),
],
options={
'db_table': 'loan_payment',
},
),
migrations.AddField(
model_name='loan',
name='product',
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.loan_product'),
),
migrations.AddField(
model_name='loan',
name='updater',
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user'),
),
]
@@ -1,44 +0,0 @@
# Generated by Django 4.1.3 on 2022-11-13 04:20
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0003_aseet_type_debt_group_loan_loan_product_loan_type_and_more'),
]
operations = [
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)),
('detail', models.TextField()),
('create_time', models.DateTimeField(auto_now_add=True, null=True)),
],
options={
'db_table': 'interest_base',
},
),
migrations.AddField(
model_name='loan_product',
name='interest',
field=models.FloatField(default=1),
preserve_default=False,
),
migrations.AddField(
model_name='loan_product',
name='principal',
field=models.FloatField(default=1),
preserve_default=False,
),
migrations.AddField(
model_name='loan_product',
name='rate',
field=models.FloatField(default=1),
preserve_default=False,
),
]
-25
View File
@@ -1,25 +0,0 @@
# Generated by Django 4.1.3 on 2022-12-10 07:59
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0004_interest_base_loan_product_interest_and_more'),
]
operations = [
migrations.CreateModel(
name='Story_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': 'story_category',
},
),
]
@@ -1,24 +0,0 @@
# Generated by Django 4.1.3 on 2022-12-10 08:01
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('app', '0005_story_category'),
]
operations = [
migrations.AddField(
model_name='data_story',
name='category',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.story_category'),
),
migrations.AddField(
model_name='data_story',
name='image',
field=models.TextField(null=True),
),
]
@@ -1,18 +0,0 @@
# Generated by Django 4.1.3 on 2022-12-10 09:03
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0006_data_story_category_data_story_image'),
]
operations = [
migrations.AddField(
model_name='data_story',
name='subtitle',
field=models.CharField(max_length=400, null=True),
),
]
@@ -1,70 +0,0 @@
# Generated by Django 4.1.3 on 2022-12-14 15:08
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0007_data_story_subtitle'),
]
operations = [
migrations.CreateModel(
name='Request',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('fullname', models.CharField(max_length=50)),
('contact', models.CharField(max_length=50)),
('company', models.CharField(max_length=200, null=True)),
('address', models.CharField(max_length=200, null=True)),
('content', models.TextField()),
('detail', models.TextField()),
('create_time', models.DateTimeField(auto_now_add=True, null=True)),
('update_time', models.DateTimeField(null=True)),
],
options={
'db_table': 'request',
},
),
migrations.RemoveField(
model_name='advisory',
name='consultant',
),
migrations.RemoveField(
model_name='advisory',
name='order',
),
migrations.RemoveField(
model_name='advisory',
name='result',
),
migrations.RemoveField(
model_name='advisory',
name='user',
),
migrations.RemoveField(
model_name='remittent',
name='bank_account',
),
migrations.RemoveField(
model_name='remittent',
name='order',
),
migrations.RemoveField(
model_name='remittent',
name='sender_bank',
),
migrations.DeleteModel(
name='Activation',
),
migrations.DeleteModel(
name='Advisory',
),
migrations.DeleteModel(
name='Advisory_Result',
),
migrations.DeleteModel(
name='Remittent',
),
]
@@ -1,18 +0,0 @@
# Generated by Django 4.1.3 on 2022-12-14 15:16
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0008_request_remove_advisory_consultant_and_more'),
]
operations = [
migrations.AlterField(
model_name='request',
name='detail',
field=models.TextField(null=True),
),
]
@@ -1,486 +0,0 @@
# Generated by Django 4.1.3 on 2022-12-16 15:38
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0009_alter_request_detail'),
]
operations = [
migrations.DeleteModel(
name='Aseet_Type',
),
migrations.RemoveField(
model_name='bank_account',
name='bank',
),
migrations.AlterUniqueTogether(
name='comment_like',
unique_together=None,
),
migrations.RemoveField(
model_name='comment_like',
name='comment',
),
migrations.RemoveField(
model_name='comment_like',
name='type',
),
migrations.RemoveField(
model_name='comment_like',
name='user',
),
migrations.RemoveField(
model_name='company_comment',
name='creator',
),
migrations.RemoveField(
model_name='company_comment',
name='delete_reason',
),
migrations.RemoveField(
model_name='company_comment',
name='topic',
),
migrations.RemoveField(
model_name='company_comment',
name='updater',
),
migrations.RemoveField(
model_name='company_note',
name='creator',
),
migrations.RemoveField(
model_name='company_note',
name='delete_reason',
),
migrations.RemoveField(
model_name='company_note',
name='topic',
),
migrations.RemoveField(
model_name='condition',
name='user',
),
migrations.RemoveField(
model_name='customer',
name='legal_type',
),
migrations.RemoveField(
model_name='customer',
name='location',
),
migrations.RemoveField(
model_name='customer',
name='sex',
),
migrations.DeleteModel(
name='Debt_Group',
),
migrations.RemoveField(
model_name='discussion',
name='creator',
),
migrations.RemoveField(
model_name='discussion',
name='delete_reason',
),
migrations.RemoveField(
model_name='discussion',
name='topic',
),
migrations.RemoveField(
model_name='discussion',
name='updater',
),
migrations.RemoveField(
model_name='draft_setting',
name='classify',
),
migrations.RemoveField(
model_name='draft_setting',
name='type',
),
migrations.RemoveField(
model_name='draft_setting',
name='user',
),
migrations.RemoveField(
model_name='employee',
name='academic_level',
),
migrations.RemoveField(
model_name='employee',
name='approve_status',
),
migrations.RemoveField(
model_name='employee',
name='legal_type',
),
migrations.RemoveField(
model_name='employee',
name='location',
),
migrations.RemoveField(
model_name='employee',
name='position',
),
migrations.RemoveField(
model_name='employee',
name='role',
),
migrations.RemoveField(
model_name='employee',
name='sex',
),
migrations.RemoveField(
model_name='employee',
name='user',
),
migrations.RemoveField(
model_name='employee',
name='work_status',
),
migrations.RemoveField(
model_name='feedback',
name='handler',
),
migrations.RemoveField(
model_name='feedback',
name='status',
),
migrations.RemoveField(
model_name='feedback',
name='updater',
),
migrations.RemoveField(
model_name='feedback',
name='user',
),
migrations.AlterUniqueTogether(
name='group',
unique_together=None,
),
migrations.RemoveField(
model_name='group',
name='creator',
),
migrations.DeleteModel(
name='Interest_Base',
),
migrations.DeleteModel(
name='Language',
),
migrations.DeleteModel(
name='Live_Hismsg',
),
migrations.DeleteModel(
name='Live_Item',
),
migrations.DeleteModel(
name='Live_Message',
),
migrations.RemoveField(
model_name='loan',
name='approver',
),
migrations.RemoveField(
model_name='loan',
name='creator',
),
migrations.RemoveField(
model_name='loan',
name='customer',
),
migrations.RemoveField(
model_name='loan',
name='product',
),
migrations.RemoveField(
model_name='loan',
name='updater',
),
migrations.RemoveField(
model_name='loan_payment',
name='loan',
),
migrations.RemoveField(
model_name='loan_payment',
name='updater',
),
migrations.RemoveField(
model_name='loan_schedule',
name='loan',
),
migrations.RemoveField(
model_name='loan_schedule',
name='payment_type',
),
migrations.RemoveField(
model_name='loan_schedule',
name='updater',
),
migrations.DeleteModel(
name='Loan_Type',
),
migrations.RemoveField(
model_name='order',
name='accountant',
),
migrations.RemoveField(
model_name='order',
name='buyer',
),
migrations.RemoveField(
model_name='order',
name='cashier',
),
migrations.RemoveField(
model_name='order',
name='duration',
),
migrations.RemoveField(
model_name='order',
name='package',
),
migrations.RemoveField(
model_name='order',
name='payment_status',
),
migrations.RemoveField(
model_name='order',
name='payment_type',
),
migrations.RemoveField(
model_name='order',
name='supporter',
),
migrations.RemoveField(
model_name='order',
name='updater',
),
migrations.AlterUniqueTogether(
name='package_feature',
unique_together=None,
),
migrations.RemoveField(
model_name='package_feature',
name='feature',
),
migrations.RemoveField(
model_name='package_feature',
name='package',
),
migrations.RemoveField(
model_name='performance_register',
name='setting',
),
migrations.RemoveField(
model_name='performance_register',
name='status',
),
migrations.RemoveField(
model_name='performance_register',
name='user',
),
migrations.RemoveField(
model_name='private_story',
name='user',
),
migrations.AlterUniqueTogether(
name='role_right',
unique_together=None,
),
migrations.RemoveField(
model_name='role_right',
name='right',
),
migrations.RemoveField(
model_name='role_right',
name='role',
),
migrations.RemoveField(
model_name='setting_comment',
name='creator',
),
migrations.RemoveField(
model_name='setting_comment',
name='delete_reason',
),
migrations.RemoveField(
model_name='setting_comment',
name='setting',
),
migrations.RemoveField(
model_name='setting_comment',
name='updater',
),
migrations.AlterUniqueTogether(
name='setting_like',
unique_together=None,
),
migrations.RemoveField(
model_name='setting_like',
name='comment',
),
migrations.RemoveField(
model_name='setting_like',
name='type',
),
migrations.RemoveField(
model_name='setting_like',
name='user',
),
migrations.RemoveField(
model_name='setting_note',
name='creator',
),
migrations.RemoveField(
model_name='setting_note',
name='delete_reason',
),
migrations.RemoveField(
model_name='setting_note',
name='setting',
),
migrations.DeleteModel(
name='Snapshot',
),
migrations.RemoveField(
model_name='user_group',
name='group',
),
migrations.RemoveField(
model_name='user_group',
name='user',
),
migrations.RemoveField(
model_name='user_share',
name='receiver',
),
migrations.RemoveField(
model_name='user_share',
name='setting',
),
migrations.RemoveField(
model_name='user_share',
name='user',
),
migrations.AddField(
model_name='data_story',
name='tags',
field=models.JSONField(null=True),
),
migrations.AlterModelTable(
name='money_unit',
table='money_unit',
),
migrations.DeleteModel(
name='Academic_Level',
),
migrations.DeleteModel(
name='Bank',
),
migrations.DeleteModel(
name='Bank_Account',
),
migrations.DeleteModel(
name='Comment_Like',
),
migrations.DeleteModel(
name='Company_Comment',
),
migrations.DeleteModel(
name='Company_Note',
),
migrations.DeleteModel(
name='Condition',
),
migrations.DeleteModel(
name='Customer',
),
migrations.DeleteModel(
name='Discussion',
),
migrations.DeleteModel(
name='Draft_Setting',
),
migrations.DeleteModel(
name='Employee',
),
migrations.DeleteModel(
name='Employee_Position',
),
migrations.DeleteModel(
name='Employee_Rights',
),
migrations.DeleteModel(
name='Employee_Role',
),
migrations.DeleteModel(
name='Feedback',
),
migrations.DeleteModel(
name='Feedback_Status',
),
migrations.DeleteModel(
name='Group',
),
migrations.DeleteModel(
name='Loan',
),
migrations.DeleteModel(
name='Loan_Payment',
),
migrations.DeleteModel(
name='Loan_Product',
),
migrations.DeleteModel(
name='Loan_Schedule',
),
migrations.DeleteModel(
name='Order',
),
migrations.DeleteModel(
name='Package_Feature',
),
migrations.DeleteModel(
name='Payment_Status',
),
migrations.DeleteModel(
name='Payment_Type',
),
migrations.DeleteModel(
name='Performance_Register',
),
migrations.DeleteModel(
name='Private_Story',
),
migrations.DeleteModel(
name='Role_Right',
),
migrations.DeleteModel(
name='Service_Pack',
),
migrations.DeleteModel(
name='Setting_Comment',
),
migrations.DeleteModel(
name='Setting_Like',
),
migrations.DeleteModel(
name='Setting_Note',
),
migrations.DeleteModel(
name='Topic',
),
migrations.DeleteModel(
name='User_Group',
),
migrations.DeleteModel(
name='User_Share',
),
]
@@ -1,17 +0,0 @@
# Generated by Django 4.1.3 on 2022-12-17 02:59
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('app', '0010_delete_aseet_type_remove_bank_account_bank_and_more'),
]
operations = [
migrations.RemoveField(
model_name='data_story',
name='header',
),
]
-19
View File
@@ -1,19 +0,0 @@
# Generated by Django 4.1.3 on 2022-12-17 03:16
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0011_remove_data_story_header'),
]
operations = [
migrations.AddField(
model_name='data_story',
name='header',
field=models.JSONField(default='xxx'),
preserve_default=False,
),
]
@@ -1,45 +0,0 @@
# Generated by Django 4.1.3 on 2023-03-14 04:46
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('app', '0012_data_story_header'),
]
operations = [
migrations.CreateModel(
name='Apply_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)),
('create_time', models.DateTimeField(auto_now_add=True, null=True)),
],
options={
'db_table': 'apply_result',
},
),
migrations.CreateModel(
name='Job_Apply',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('fullname', models.CharField(max_length=50)),
('phone', models.CharField(max_length=20)),
('email', models.CharField(max_length=50)),
('address', models.CharField(max_length=200)),
('link', models.TextField()),
('create_time', models.DateTimeField(auto_now_add=True, null=True)),
('update_time', models.DateTimeField(null=True)),
('file', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.file')),
('job', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.data_story')),
('result', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.apply_result')),
],
options={
'db_table': 'job_apply',
},
),
]
-44
View File
@@ -1,44 +0,0 @@
# Generated by Django 4.2.4 on 2024-09-06 20:57
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('app', '0013_apply_result_job_apply'),
]
operations = [
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(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='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')},
},
),
]
@@ -1,33 +0,0 @@
# Generated by Django 4.2.4 on 2024-09-06 21:01
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0014_group_user_group'),
]
operations = [
migrations.AddField(
model_name='workspace',
name='history',
field=models.JSONField(null=True),
),
migrations.AddField(
model_name='workspace',
name='image',
field=models.TextField(null=True),
),
migrations.AddField(
model_name='workspace',
name='version',
field=models.BigIntegerField(null=True),
),
migrations.AddField(
model_name='workspace',
name='viewer',
field=models.JSONField(null=True),
),
]
-30
View File
@@ -1,30 +0,0 @@
# Generated by Django 4.2.4 on 2024-09-06 21:02
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('app', '0015_workspace_history_workspace_image_workspace_version_and_more'),
]
operations = [
migrations.CreateModel(
name='Workspace_Group',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('deleted', models.BooleanField(default=False)),
('share_type', models.CharField(max_length=20)),
('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='grws', to='app.group')),
('workspace', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='wsgr', to='app.workspace')),
],
options={
'db_table': 'workspace_group',
'unique_together': {('workspace', 'group')},
},
),
]
@@ -1,37 +0,0 @@
# Generated by Django 4.2.4 on 2024-09-07 02:46
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('app', '0016_workspace_group'),
]
operations = [
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.AddField(
model_name='file',
name='name',
field=models.CharField(default=1, max_length=200),
preserve_default=False,
),
migrations.AddField(
model_name='file',
name='type',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.file_type'),
),
]
-19
View File
@@ -1,19 +0,0 @@
# Generated by Django 4.2.4 on 2024-10-09 08:43
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('app', '0017_file_type_file_name_file_type'),
]
operations = [
migrations.AlterField(
model_name='token',
name='user',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user'),
),
]
@@ -1,42 +0,0 @@
# Generated by Django 4.2.4 on 2024-10-09 09:09
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('app', '0018_alter_token_user'),
]
operations = [
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)),
('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',
},
),
]
@@ -1,18 +0,0 @@
# Generated by Django 4.2.4 on 2024-10-09 10:40
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0019_user_session_user_log'),
]
operations = [
migrations.AddField(
model_name='user_session',
name='click_count',
field=models.IntegerField(null=True),
),
]
@@ -1,48 +0,0 @@
# Generated by Django 4.2.4 on 2024-10-13 06:48
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0020_user_session_click_count'),
]
operations = [
migrations.AddField(
model_name='token',
name='city',
field=models.CharField(max_length=100, null=True),
),
migrations.AddField(
model_name='token',
name='country',
field=models.CharField(max_length=100, null=True),
),
migrations.AddField(
model_name='token',
name='loc',
field=models.CharField(max_length=100, null=True),
),
migrations.AddField(
model_name='token',
name='org',
field=models.CharField(max_length=100, null=True),
),
migrations.AddField(
model_name='token',
name='postal',
field=models.CharField(max_length=100, null=True),
),
migrations.AddField(
model_name='token',
name='region',
field=models.CharField(max_length=100, null=True),
),
migrations.AddField(
model_name='token',
name='timezone',
field=models.CharField(max_length=100, null=True),
),
]
-28
View File
@@ -1,28 +0,0 @@
# Generated by Django 4.2.4 on 2024-10-15 22:19
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0021_token_city_token_country_token_loc_token_org_and_more'),
]
operations = [
migrations.CreateModel(
name='Register',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('fullname', models.CharField(max_length=50)),
('phone', models.CharField(max_length=50)),
('email', models.CharField(max_length=50)),
('note', models.TextField()),
('create_time', models.DateTimeField(auto_now_add=True, null=True)),
('update_time', models.DateTimeField(null=True)),
],
options={
'db_table': 'register',
},
),
]
@@ -1,18 +0,0 @@
# Generated by Django 4.2.4 on 2024-10-15 22:32
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0022_register'),
]
operations = [
migrations.AlterField(
model_name='register',
name='note',
field=models.TextField(null=True),
),
]
-19
View File
@@ -1,19 +0,0 @@
# Generated by Django 4.2.4 on 2024-10-15 22:39
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0023_alter_register_note'),
]
operations = [
migrations.AddField(
model_name='register',
name='content',
field=models.TextField(default='xxx'),
preserve_default=False,
),
]
-29
View File
@@ -1,29 +0,0 @@
# Generated by Django 4.2.4 on 2025-03-25 10:14
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('app', '0024_register_content'),
]
operations = [
migrations.CreateModel(
name='Datastory_Category',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=200)),
('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.story_category')),
('story', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.data_story')),
],
options={
'db_table': 'datastory_category',
'unique_together': {('story', 'category')},
},
),
]
@@ -1,19 +0,0 @@
# Generated by Django 4.2.4 on 2025-03-25 10:16
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('app', '0025_datastory_category'),
]
operations = [
migrations.AlterField(
model_name='datastory_category',
name='story',
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='storycat', to='app.data_story'),
),
]
@@ -1,18 +0,0 @@
# Generated by Django 4.2.4 on 2025-03-25 10:29
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0026_alter_datastory_category_story'),
]
operations = [
migrations.AddField(
model_name='data_story',
name='canonical',
field=models.CharField(max_length=100, null=True),
),
]
@@ -1,18 +0,0 @@
# Generated by Django 4.2.4 on 2025-03-25 10:49
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0027_data_story_canonical'),
]
operations = [
migrations.AlterField(
model_name='data_story',
name='canonical',
field=models.CharField(max_length=200, null=True),
),
]
@@ -1,17 +0,0 @@
# Generated by Django 4.2.4 on 2025-03-26 08:09
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('app', '0028_alter_data_story_canonical'),
]
operations = [
migrations.RemoveField(
model_name='data_story',
name='category',
),
]
@@ -1,23 +0,0 @@
# Generated by Django 4.2.4 on 2025-03-26 08:38
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0029_remove_data_story_category'),
]
operations = [
migrations.AddField(
model_name='datastory_category',
name='image',
field=models.CharField(max_length=200, null=True),
),
migrations.AddField(
model_name='datastory_category',
name='url',
field=models.CharField(max_length=200, null=True),
),
]
@@ -1,51 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-18 22:35
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('app', '0030_datastory_category_image_datastory_category_url'),
]
operations = [
migrations.RenameField(
model_name='category',
old_name='item',
new_name='code',
),
migrations.RenameField(
model_name='category',
old_name='value',
new_name='name',
),
migrations.RemoveField(
model_name='category',
name='icon',
),
migrations.RemoveField(
model_name='category',
name='image',
),
migrations.RemoveField(
model_name='category',
name='index',
),
migrations.RemoveField(
model_name='category',
name='level',
),
migrations.RemoveField(
model_name='category',
name='link',
),
migrations.RemoveField(
model_name='category',
name='parent',
),
migrations.RemoveField(
model_name='category',
name='update_time',
),
]
@@ -1,21 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-18 22:36
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('app', '0031_rename_item_category_code_rename_value_category_name_and_more'),
]
operations = [
migrations.RemoveField(
model_name='news',
name='approve_status',
),
migrations.RemoveField(
model_name='news',
name='approver',
),
]
@@ -1,18 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-18 22:36
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('app', '0032_remove_news_approve_status_remove_news_approver'),
]
operations = [
migrations.RenameField(
model_name='news',
old_name='display_type',
new_name='display',
),
]
@@ -1,30 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-18 22:39
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0033_rename_display_type_news_display'),
]
operations = [
migrations.AlterField(
model_name='news',
name='content',
field=models.JSONField(),
),
migrations.AlterField(
model_name='news',
name='image',
field=models.CharField(default='xxx', max_length=300),
preserve_default=False,
),
migrations.AlterField(
model_name='news',
name='subtitle',
field=models.CharField(default=1, max_length=500),
preserve_default=False,
),
]
@@ -1,21 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-18 22:40
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('app', '0034_alter_news_content_alter_news_image_and_more'),
]
operations = [
migrations.RemoveField(
model_name='news',
name='expiry',
),
migrations.RemoveField(
model_name='news',
name='note',
),
]
-16
View File
@@ -1,16 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-18 22:42
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('app', '0035_remove_news_expiry_remove_news_note'),
]
operations = [
migrations.DeleteModel(
name='News_Like',
),
]
@@ -1,16 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-18 22:42
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('app', '0036_delete_news_like'),
]
operations = [
migrations.DeleteModel(
name='News_Comment',
),
]
@@ -1,28 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-18 22:46
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0037_delete_news_comment'),
]
operations = [
migrations.AddField(
model_name='news',
name='canonical',
field=models.CharField(max_length=300, null=True),
),
migrations.AddField(
model_name='news',
name='link',
field=models.CharField(max_length=300, null=True),
),
migrations.AlterField(
model_name='news',
name='content',
field=models.JSONField(null=True),
),
]
@@ -1,23 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-18 22:47
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0038_news_canonical_news_link_alter_news_content'),
]
operations = [
migrations.AlterField(
model_name='news',
name='canonical',
field=models.CharField(max_length=200, null=True),
),
migrations.AlterField(
model_name='news',
name='link',
field=models.CharField(max_length=200, null=True),
),
]
@@ -1,28 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-18 22:56
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0039_alter_news_canonical_alter_news_link'),
]
operations = [
migrations.RenameField(
model_name='news',
old_name='display',
new_name='status',
),
migrations.RenameField(
model_name='news',
old_name='creator',
new_name='user',
),
migrations.AddField(
model_name='news',
name='header',
field=models.JSONField(null=True),
),
]
@@ -1,17 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-18 22:56
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('app', '0040_rename_display_news_status_rename_creator_news_user_and_more'),
]
operations = [
migrations.AlterModelTable(
name='display_type',
table='display_status',
),
]
@@ -1,17 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-18 22:56
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('app', '0041_alter_display_type_table'),
]
operations = [
migrations.RenameModel(
old_name='Display_Type',
new_name='Display_Status',
),
]
-20
View File
@@ -1,20 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-19 07:46
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0042_rename_display_type_display_status'),
]
operations = [
migrations.AddField(
model_name='news',
name='language',
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.lang_choice'),
preserve_default=False,
),
]
-38
View File
@@ -1,38 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-20 06:44
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0043_news_language'),
]
operations = [
migrations.CreateModel(
name='Promotion',
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(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': 'promotion',
},
),
]
@@ -1,49 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-22 10:05
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('app', '0044_promotion'),
]
operations = [
migrations.RemoveField(
model_name='data_story',
name='canonical',
),
migrations.RemoveField(
model_name='data_story',
name='content',
),
migrations.RemoveField(
model_name='data_story',
name='create_time',
),
migrations.RemoveField(
model_name='data_story',
name='header',
),
migrations.RemoveField(
model_name='data_story',
name='image',
),
migrations.RemoveField(
model_name='data_story',
name='status',
),
migrations.RemoveField(
model_name='data_story',
name='tags',
),
migrations.RemoveField(
model_name='data_story',
name='update_time',
),
migrations.RemoveField(
model_name='data_story',
name='user',
),
]
@@ -1,84 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-22 10:09
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0045_remove_data_story_canonical_and_more'),
]
operations = [
migrations.AddField(
model_name='data_story',
name='canonical',
field=models.CharField(max_length=200, null=True),
),
migrations.AddField(
model_name='data_story',
name='category',
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.category'),
preserve_default=False,
),
migrations.AddField(
model_name='data_story',
name='content',
field=models.JSONField(null=True),
),
migrations.AddField(
model_name='data_story',
name='create_time',
field=models.DateTimeField(auto_now_add=True, null=True),
),
migrations.AddField(
model_name='data_story',
name='header',
field=models.JSONField(null=True),
),
migrations.AddField(
model_name='data_story',
name='image',
field=models.CharField(default=1, max_length=300),
preserve_default=False,
),
migrations.AddField(
model_name='data_story',
name='language',
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.lang_choice'),
preserve_default=False,
),
migrations.AddField(
model_name='data_story',
name='link',
field=models.CharField(max_length=200, null=True),
),
migrations.AddField(
model_name='data_story',
name='status',
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.display_status'),
preserve_default=False,
),
migrations.AddField(
model_name='data_story',
name='update_time',
field=models.DateTimeField(null=True),
),
migrations.AddField(
model_name='data_story',
name='user',
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user'),
preserve_default=False,
),
migrations.AddField(
model_name='data_story',
name='valid_from',
field=models.DateTimeField(null=True),
),
migrations.AddField(
model_name='data_story',
name='valid_to',
field=models.DateTimeField(null=True),
),
]
-19
View File
@@ -1,19 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-23 04:13
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0046_data_story_canonical_data_story_category_and_more'),
]
operations = [
migrations.AddField(
model_name='job_apply',
name='code',
field=models.CharField(default=1, max_length=30, unique=True),
preserve_default=False,
),
]
-36
View File
@@ -1,36 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-23 07:28
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0047_job_apply_code'),
]
operations = [
migrations.CreateModel(
name='Collaborator',
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, null=True)),
('email', models.CharField(max_length=50)),
('address', models.CharField(max_length=300)),
('dob', models.DateField()),
('legal_code', models.CharField(max_length=30)),
('issue_date', models.DateField()),
('issue_place', models.TextField()),
('create_time', models.DateTimeField(auto_now_add=True, null=True)),
('update_time', models.DateTimeField(null=True)),
('legal_type', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.legal_type')),
('sex', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.legal_type')),
],
options={
'db_table': 'collaborator',
},
),
]
@@ -1,19 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-23 07:29
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0048_collaborator'),
]
operations = [
migrations.AlterField(
model_name='collaborator',
name='sex',
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.sex'),
),
]
-35
View File
@@ -1,35 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-23 07:58
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0049_alter_collaborator_sex'),
]
operations = [
migrations.CreateModel(
name='Setting_App',
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)),
('ja', 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': 'setting_app',
'unique_together': {('category', 'classify', 'code')},
},
),
]
@@ -1,85 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-26 02:30
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0050_setting_app'),
]
operations = [
migrations.CreateModel(
name='Collateral_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)),
('index', models.IntegerField(default=1, null=True)),
('create_time', models.DateTimeField(auto_now_add=True, null=True)),
],
options={
'db_table': 'collateral_category',
},
),
migrations.CreateModel(
name='Producer',
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)),
],
options={
'db_table': 'producer',
},
),
migrations.AlterField(
model_name='collaborator',
name='sex',
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.legal_type'),
),
migrations.CreateModel(
name='Collateral_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)),
('category', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.collateral_category')),
('producer', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.producer')),
],
options={
'db_table': 'collateral_type',
},
),
migrations.CreateModel(
name='Application',
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, null=True)),
('province', models.CharField(max_length=200)),
('district', models.CharField(max_length=200)),
('address', models.CharField(max_length=300)),
('legal_code', models.CharField(max_length=30)),
('issue_date', models.DateField(null=True)),
('issue_place', models.TextField(null=True)),
('loan_amount', models.IntegerField(null=True)),
('loan_term', models.IntegerField(null=True)),
('create_time', models.DateTimeField(auto_now_add=True, null=True)),
('update_time', models.DateTimeField(null=True)),
('collaborator', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.collaborator')),
('legal_type', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.legal_type')),
('sex', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.sex')),
('collateral', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.collateral_type')),
],
options={
'db_table': 'application',
},
),
]
@@ -1,19 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-26 02:31
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0051_collateral_category_producer_alter_collaborator_sex_and_more'),
]
operations = [
migrations.AlterField(
model_name='collaborator',
name='sex',
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.sex'),
),
]
-35
View File
@@ -1,35 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-26 03:27
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0052_alter_collaborator_sex'),
]
operations = [
migrations.CreateModel(
name='Setting_Loan',
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)),
('ja', 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': 'setting_loan',
'unique_together': {('category', 'classify', 'code')},
},
),
]
@@ -1,141 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-26 08:39
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0053_setting_loan'),
]
operations = [
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)),
('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='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(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='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, unique=True)),
('fullname', models.CharField(db_index=True, max_length=50)),
('phone', models.CharField(db_index=True, max_length=20)),
('email', models.CharField(max_length=50, null=True)),
('legal_id', models.CharField(max_length=20, null=True)),
('issued_place', models.CharField(max_length=200, null=True)),
('issued_date', models.DateField(null=True)),
('address', models.CharField(max_length=200, null=True)),
('dob', models.DateField(null=True)),
('note', models.TextField(null=True)),
('avatar', models.CharField(max_length=200, null=True)),
('deleted', models.BooleanField(db_index=True, default=False)),
('create_time', models.DateTimeField(auto_now_add=True, null=True)),
('update_time', models.DateTimeField(null=True)),
('branch', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.branch')),
('creator', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user')),
('legal_type', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.legal_type')),
('location', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.location')),
('sex', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.sex')),
('updater', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user')),
],
options={
'db_table': 'customer',
},
),
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, unique=True)),
('fullname', models.CharField(max_length=50)),
('phone', models.CharField(max_length=20)),
('email', models.CharField(max_length=50, null=True)),
('legal_id', models.CharField(max_length=20, null=True)),
('issued_place', models.CharField(max_length=200, null=True)),
('issued_date', models.DateField(null=True)),
('address', models.CharField(max_length=200, null=True)),
('dob', models.DateField(null=True)),
('note', models.TextField(null=True)),
('avatar', models.CharField(max_length=200, null=True)),
('create_time', models.DateTimeField(auto_now_add=True, null=True)),
('update_time', models.DateTimeField(null=True)),
('deleted', models.BooleanField(default=False)),
('creator', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user')),
('legal_type', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.legal_type')),
('location', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.location')),
('sex', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.sex')),
('updater', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user')),
],
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='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)),
('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='custfile', to='app.customer')),
],
options={
'db_table': 'customer_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)),
('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')},
},
),
]
@@ -1,41 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-27 02:27
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0054_branch_type_branch_customer_people_branch_manager_and_more'),
]
operations = [
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)),
('create_time', models.DateTimeField(auto_now_add=True, null=True)),
],
options={
'db_table': 'payment_type',
},
),
migrations.CreateModel(
name='Payment',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('code', models.CharField(max_length=30, unique=True)),
('amount', models.IntegerField()),
('content', models.TextField(null=True)),
('detail', models.JSONField(null=True)),
('create_time', models.DateTimeField(auto_now_add=True, null=True)),
('type', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.payment_type')),
],
options={
'db_table': 'payment',
},
),
]
@@ -1,29 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-27 04:58
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0055_payment_type_payment'),
]
operations = [
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, unique=True)),
('name', models.CharField(max_length=100)),
('create_time', models.DateTimeField(auto_now_add=True, null=True)),
],
options={
'db_table': 'country',
},
),
migrations.RemoveField(
model_name='user',
name='color',
),
]
@@ -1,36 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-27 06:53
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0056_country_remove_user_color'),
]
operations = [
migrations.RenameField(
model_name='customer',
old_name='legal_id',
new_name='legal_code',
),
migrations.RemoveField(
model_name='customer',
name='avatar',
),
migrations.CreateModel(
name='Application_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='appfile', to='app.application')),
],
options={
'db_table': 'application_file',
'unique_together': {('ref', 'file')},
},
),
]
@@ -1,42 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-27 07:04
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0057_rename_legal_id_customer_legal_code_and_more'),
]
operations = [
migrations.RemoveField(
model_name='customer',
name='location',
),
migrations.AddField(
model_name='application',
name='country',
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.country'),
preserve_default=False,
),
migrations.AddField(
model_name='customer',
name='country',
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.country'),
preserve_default=False,
),
migrations.AddField(
model_name='customer',
name='district',
field=models.CharField(default='xxx', max_length=200),
preserve_default=False,
),
migrations.AddField(
model_name='customer',
name='province',
field=models.CharField(default='xx', max_length=200),
preserve_default=False,
),
]
@@ -1,111 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-27 08:58
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0058_remove_customer_location_application_country_and_more'),
]
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)),
('index', models.IntegerField(default=1, null=True)),
('create_time', models.DateTimeField(auto_now_add=True, null=True)),
],
options={
'db_table': 'account_type',
},
),
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='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)),
('create_time', models.DateTimeField(auto_now_add=True, null=True)),
],
options={
'db_table': 'value_type',
},
),
migrations.RemoveField(
model_name='people',
name='location',
),
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(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='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.IntegerField()),
('index', models.IntegerField(default=1, null=True)),
('create_time', models.DateTimeField(auto_now_add=True, null=True)),
('value_type', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.value_type')),
],
options={
'db_table': 'fee_type',
},
),
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(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')},
},
),
]
-16
View File
@@ -1,16 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-27 09:10
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('app', '0059_account_type_currency_value_type_and_more'),
]
operations = [
migrations.DeleteModel(
name='Location',
),
]
@@ -1,90 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-27 09:14
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0060_delete_location'),
]
operations = [
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)),
('index', models.IntegerField(default=1, null=True)),
('detail', models.TextField()),
('create_time', models.DateTimeField(auto_now_add=True, null=True)),
],
options={
'db_table': 'interest_base',
},
),
migrations.CreateModel(
name='Loan_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=200, null=True)),
('detail', models.TextField()),
('create_time', models.DateTimeField(auto_now_add=True, null=True)),
],
options={
'db_table': 'loan_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)),
('index', models.IntegerField(default=1, null=True)),
('create_time', models.DateTimeField(auto_now_add=True, null=True)),
],
options={
'db_table': 'payment_method',
},
),
migrations.CreateModel(
name='Loan_Product',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('code', models.CharField(db_index=True, max_length=30, unique=True)),
('name', models.CharField(max_length=200)),
('ratio', models.FloatField()),
('rate', models.FloatField()),
('rate_info', models.CharField(max_length=200)),
('penalty_ratio', models.FloatField()),
('penalty_rate', models.FloatField()),
('penalty_info', models.CharField(max_length=200)),
('detail', models.TextField(null=True)),
('prin_cycle_days', models.IntegerField(null=True)),
('itr_cycle_days', models.IntegerField(null=True)),
('install_cycle_days', models.IntegerField(null=True)),
('collat_mandatory', models.BooleanField(default=False)),
('principal', models.IntegerField(null=True)),
('number_days', models.IntegerField(null=True)),
('amount', models.IntegerField(null=True)),
('deleted', models.BooleanField(default=False)),
('create_time', models.DateTimeField(auto_now_add=True, null=True)),
('update_time', models.DateTimeField(null=True)),
('base', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.interest_base')),
('creator', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user')),
('currency', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.currency')),
('unit', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.money_unit')),
('updater', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user')),
('type', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.loan_type')),
('itr_pay_type', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.payment_method')),
('prin_pay_type', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.payment_method')),
],
options={
'db_table': 'loan_product',
},
),
]
-27
View File
@@ -1,27 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-29 04:29
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0061_interest_base_loan_type_payment_method_loan_product'),
]
operations = [
migrations.CreateModel(
name='Collaborator_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='collabfile', to='app.collaborator')),
],
options={
'db_table': 'collaborator_file',
'unique_together': {('ref', 'file')},
},
),
]
@@ -1,19 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-29 04:44
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0062_collaborator_file'),
]
operations = [
migrations.AddField(
model_name='collaborator',
name='status',
field=models.ForeignKey(default=1, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.approve_status'),
),
]
-29
View File
@@ -1,29 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-30 01:37
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0063_collaborator_status'),
]
operations = [
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)),
('create_time', models.DateTimeField(auto_now_add=True, null=True)),
('update_time', models.DateTimeField(null=True)),
],
options={
'db_table': 'phone_otp',
},
),
]
-20
View File
@@ -1,20 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-30 02:01
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0064_phone_otp'),
]
operations = [
migrations.AddField(
model_name='phone_otp',
name='status',
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.auth_status'),
preserve_default=False,
),
]
-40
View File
@@ -1,40 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-30 06:48
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0065_phone_otp_status'),
]
operations = [
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)),
('create_time', models.DateTimeField(auto_now_add=True, null=True)),
],
options={
'db_table': 'apps',
},
),
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)),
('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='+', to='app.apps')),
],
options={
'db_table': 'user_apps',
},
),
]
-27
View File
@@ -1,27 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-31 02:04
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0066_apps_user_apps'),
]
operations = [
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)),
('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',
},
),
]
-51
View File
@@ -1,51 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-31 02:20
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0067_customer_note'),
]
operations = [
migrations.CreateModel(
name='Province',
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': 'province',
},
),
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, unique=True)),
('legal_id', models.CharField(max_length=20)),
('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)),
('email', models.CharField(max_length=50, null=True)),
('facebook', models.CharField(max_length=50, null=True)),
('website', models.CharField(max_length=100, null=True)),
('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(null=True)),
('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')),
('province', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.province')),
],
options={
'db_table': 'company',
},
),
]
-26
View File
@@ -1,26 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-31 02:58
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0068_province_company'),
]
operations = [
migrations.CreateModel(
name='Contact',
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)),
],
options={
'db_table': 'contact',
},
),
]
-27
View File
@@ -1,27 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-31 03:03
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0069_contact'),
]
operations = [
migrations.CreateModel(
name='Customer_Contact',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('info', models.CharField(max_length=100, null=True)),
('create_time', models.DateTimeField(auto_now_add=True, null=True)),
('contact', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.contact')),
('ref', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='custcontact', to='app.customer')),
],
options={
'db_table': 'customer_contact',
},
),
]
-26
View File
@@ -1,26 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-31 04:13
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0070_customer_contact'),
]
operations = [
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)),
('index', models.IntegerField(default=1, null=True)),
('create_time', models.DateTimeField(auto_now_add=True, null=True)),
],
options={
'db_table': 'relation',
},
),
]
@@ -1,18 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-31 04:14
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('app', '0071_relation'),
]
operations = [
migrations.RenameField(
model_name='people',
old_name='legal_id',
new_name='legal_code',
),
]
@@ -1,23 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-31 04:33
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0072_rename_legal_id_people_legal_code'),
]
operations = [
migrations.AlterField(
model_name='customer',
name='district',
field=models.CharField(max_length=200, null=True),
),
migrations.AlterField(
model_name='customer',
name='province',
field=models.CharField(max_length=200, null=True),
),
]
@@ -1,19 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-31 04:35
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0073_alter_customer_district_alter_customer_province'),
]
operations = [
migrations.AlterField(
model_name='customer',
name='branch',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.branch'),
),
]

Some files were not shown because too many files have changed in this diff Show More