feat: add mechnic-auto-model

This commit is contained in:
xoliqberdiyev
2026-05-05 16:53:49 +05:00
parent 9dcce296a6
commit 928561be51
16 changed files with 1390 additions and 2 deletions

View File

@@ -0,0 +1,268 @@
# Generated by Django 5.2.7 on 2026-05-05 11:52
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("evaluation", "0042_alter_bonuscategory_category"),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name="MechanicAutoEvaluationModel",
fields=[
("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")),
("created_at", models.DateTimeField(auto_now_add=True)),
("updated_at", models.DateTimeField(auto_now=True)),
(
"tex_passport_file",
models.FileField(
blank=True,
null=True,
upload_to="mechanic_evaluation/tech_passports/%Y/%m/",
verbose_name="tech passport file",
),
),
(
"registration_number",
models.CharField(blank=True, max_length=50, null=True, verbose_name="registration number"),
),
("contract_date", models.DateField(blank=True, null=True, verbose_name="contract date")),
(
"object_inspection_date",
models.DateField(blank=True, null=True, verbose_name="object inspection date"),
),
("rate_date", models.DateField(blank=True, null=True, verbose_name="rate date")),
("rate_report_date", models.DateField(blank=True, null=True, verbose_name="rate report date")),
(
"object_type",
models.CharField(
blank=True,
choices=[
("lightweight_auto", "Yengil automobil"),
("truck_car", "Yuk automobil"),
("special_tech", "Maxsus texnika"),
],
max_length=50,
null=True,
verbose_name="object type",
),
),
(
"object_owner_type",
models.IntegerField(
blank=True,
choices=[(1, "Jismoniy shaxs"), (2, "Yuridik shaxs")],
null=True,
verbose_name="object owner type",
),
),
(
"object_owner_individual_person_f_name",
models.CharField(blank=True, max_length=100, null=True, verbose_name="owner first name"),
),
(
"object_owner_individual_person_l_name",
models.CharField(blank=True, max_length=100, null=True, verbose_name="owner last name"),
),
(
"object_owner_individual_person_p_name",
models.CharField(blank=True, max_length=100, null=True, verbose_name="owner patronymic"),
),
(
"object_owner_individual_person_passport_num",
models.CharField(blank=True, max_length=20, null=True, verbose_name="owner passport number"),
),
(
"object_owner_legal_entity",
models.CharField(blank=True, max_length=255, null=True, verbose_name="legal entity name"),
),
(
"object_owner_legal_inn",
models.CharField(blank=True, max_length=20, null=True, verbose_name="legal entity INN"),
),
(
"tex_passport_serie_num",
models.CharField(
blank=True, max_length=20, null=True, verbose_name="tech passport series and number"
),
),
(
"tex_passport_gived_date",
models.DateField(blank=True, null=True, verbose_name="tech passport given date"),
),
(
"tex_passport_gived_location",
models.CharField(
blank=True, max_length=255, null=True, verbose_name="tech passport given location"
),
),
(
"car_type",
models.IntegerField(
blank=True, choices=[(1, "Xetchbek"), (2, "Universal")], null=True, verbose_name="car type"
),
),
(
"car_wheel",
models.IntegerField(blank=True, choices=[(1, "4x4")], null=True, verbose_name="car wheel"),
),
("car_brand", models.CharField(blank=True, max_length=100, null=True, verbose_name="car brand")),
("car_model", models.CharField(blank=True, max_length=100, null=True, verbose_name="car model")),
("car_number", models.CharField(blank=True, max_length=20, null=True, verbose_name="car number")),
(
"manufacture_year",
models.CharField(blank=True, max_length=10, null=True, verbose_name="manufacture year"),
),
(
"car_dvigatel_number",
models.CharField(blank=True, max_length=50, null=True, verbose_name="engine number"),
),
("car_color", models.CharField(blank=True, max_length=50, null=True, verbose_name="car color")),
("rating_goal", models.CharField(blank=True, max_length=50, null=True, verbose_name="rating goal")),
(
"status",
models.CharField(
choices=[
("yaratildi", "Yaratildi"),
("baxolovchi_biriktirildi", "Baholovchi biriktirildi"),
("baxolandi", "Baholandi"),
("rad_etildi", "Rad etildi"),
("tasdiqlandi", "Tasdiqlandi"),
],
default="yaratildi",
max_length=50,
verbose_name="status",
),
),
("is_archived", models.BooleanField(default=False, verbose_name="is archived")),
(
"appraisers",
models.ManyToManyField(
blank=True,
related_name="mechanic_auto_evaluation_appraisers",
to=settings.AUTH_USER_MODEL,
verbose_name="appraisers",
),
),
(
"evaluation_request",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="mechanic_auto_evaluations_request",
to="evaluation.evaluationrequestmodel",
),
),
(
"rate_type",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="evaluation_mechanic_auto_rate_type",
to="evaluation.referenceitemmodel",
verbose_name="rate type",
),
),
(
"user",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="mechanic_auto_evaluations_user",
to=settings.AUTH_USER_MODEL,
),
),
(
"valuation",
models.OneToOneField(
blank=True,
null=True,
on_delete=django.db.models.deletion.CASCADE,
related_name="mechanic_auto_detail",
to="evaluation.valuationmodel",
),
),
(
"value_determined",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="evaluation_mechanic_auto_value_determined",
to="evaluation.referenceitemmodel",
verbose_name="value determined",
),
),
(
"vehicle",
models.OneToOneField(
blank=True,
null=True,
on_delete=django.db.models.deletion.CASCADE,
related_name="mechanic_evaluation",
to="evaluation.vehiclemodel",
),
),
],
options={
"verbose_name": "Mechanic Auto Evaluation",
"verbose_name_plural": "Mechanic Auto Evaluations",
"db_table": "MechanicAutoEvaluation",
},
),
migrations.CreateModel(
name="MechanicAutoevaluationhistoryModel",
fields=[
("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")),
(
"event_type",
models.CharField(
choices=[
("order_created", "Buyurtma yaratildi"),
("status_changed", "Status o'zgartirildi"),
("evaluator_assigned", "Baholovchi biriktirildi"),
("document_uploaded", "Hujjat yuklandi"),
("payment_made", "To'lov qilindi"),
],
max_length=50,
verbose_name="event type",
),
),
("actor_id", models.BigIntegerField(blank=True, null=True, verbose_name="actor id")),
("actor_full_name", models.CharField(default="Tizim", max_length=255, verbose_name="actor full name")),
("actor_role", models.CharField(default="system", max_length=50, verbose_name="actor role")),
("meta", models.JSONField(blank=True, default=dict, verbose_name="meta")),
("created_at", models.DateTimeField(auto_now_add=True, verbose_name="created at")),
(
"mechanic_auto_evaluation",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="history",
to="evaluation.mechanicautoevaluationmodel",
verbose_name="mechanic auto evaluation",
),
),
],
options={
"verbose_name": "Mechanic Auto Evaluation History",
"verbose_name_plural": "Mechanic Auto Evaluation Histories",
"db_table": "MechanicAutoEvaluationHistory",
"ordering": ["created_at"],
"indexes": [
models.Index(
fields=["mechanic_auto_evaluation_id", "created_at"], name="mech_auto_hist_eval_date_idx"
),
models.Index(fields=["event_type"], name="mech_auto_hist_event_type_idx"),
],
},
),
]