valuation va vihicle modellari qoshildi

This commit is contained in:
Husanjonazamov
2026-02-13 15:38:13 +05:00
parent 4bc54f1952
commit acf426ee9b
41 changed files with 775 additions and 1 deletions

View File

@@ -0,0 +1,73 @@
# Generated by Django 5.2.7 on 2026-02-13 10:20
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('evaluation', '0002_alter_customermodel_options_and_more'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name='VehicleModel',
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)),
('tech_passport_series', models.CharField(blank=True, max_length=10, null=True, verbose_name='tech passport series')),
('tech_passport_number', models.CharField(blank=True, max_length=20, null=True, verbose_name='tech passport number')),
('tech_passport_issued_date', models.DateField(blank=True, null=True, verbose_name='tech passport issued date')),
('tech_passport_issued_by', models.CharField(blank=True, max_length=255, null=True, verbose_name='tech passport issued by')),
('license_plate', models.CharField(blank=True, max_length=20, null=True, verbose_name='license plate')),
('brand', models.CharField(blank=True, max_length=100, null=True, verbose_name='brand')),
('model', models.CharField(blank=True, max_length=100, null=True, verbose_name='model')),
('manufacture_year', models.IntegerField(blank=True, null=True, verbose_name='manufacture year')),
('vin_number', models.CharField(blank=True, max_length=25, null=True, verbose_name='VIN number')),
('engine_number', models.CharField(blank=True, max_length=50, null=True, verbose_name='engine number')),
('color', models.CharField(blank=True, max_length=50, null=True, verbose_name='color')),
('mileage', models.IntegerField(blank=True, help_text='Distance in km', null=True, verbose_name='mileage')),
('fuel_type', models.CharField(blank=True, choices=[('petrol', 'Petrol'), ('diesel', 'Diesel'), ('gas', 'Gas'), ('electric', 'Electric'), ('hybrid', 'Hybrid')], max_length=20, null=True, verbose_name='fuel type')),
('body_type', models.CharField(blank=True, choices=[('hatchback', 'Hatchback'), ('sedan', 'Sedan'), ('universal', 'Universal'), ('coupe', 'Coupe'), ('cabriolet', 'Cabriolet'), ('liftback', 'Liftback'), ('minivan', 'Minivan'), ('crossover', 'Crossover')], max_length=20, null=True, verbose_name='body type')),
('condition', models.CharField(blank=True, choices=[('excellent', 'Excellent'), ('good', 'Good'), ('average', 'Average'), ('needs_repair', 'Needs repair')], max_length=20, null=True, verbose_name='condition')),
('position', models.CharField(blank=True, max_length=50, null=True, verbose_name='position')),
],
options={
'verbose_name': 'Vehicle',
'verbose_name_plural': 'Vehicles',
'db_table': 'Vehicle',
},
),
migrations.CreateModel(
name='ValuationModel',
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)),
('conclusion_number', models.CharField(blank=True, max_length=50, null=True, unique=True, verbose_name='conclusion number')),
('evaluation_purpose', models.CharField(choices=[('sale', 'Sale'), ('bank', 'Bank/Loan'), ('insurance', 'Insurance'), ('inheritance', 'Inheritance'), ('court', 'Court/Judicial'), ('other', 'Other')], default='sale', max_length=50, verbose_name='evaluation purpose')),
('evaluation_type', models.CharField(choices=[('auto', 'Auto'), ('real_estate', 'Real Estate'), ('movable_property', 'Movable Property')], max_length=50, verbose_name='evaluation type')),
('evaluation_subtype', models.CharField(blank=True, max_length=100, null=True, verbose_name='evaluation subtype')),
('status', models.CharField(choices=[('draft', 'Draft'), ('pending', 'Pending'), ('in_review', 'In Review'), ('approved', 'Approved'), ('rejected', 'Rejected'), ('paid', 'Paid'), ('completed', 'Completed')], default='draft', max_length=20, verbose_name='status')),
('estimated_price', models.DecimalField(blank=True, decimal_places=2, max_digits=15, null=True, verbose_name='estimated price')),
('final_price', models.DecimalField(blank=True, decimal_places=2, max_digits=15, null=True, verbose_name='final price')),
('payment_status', models.CharField(choices=[('unpaid', 'Unpaid'), ('pending', 'Pending'), ('paid', 'Paid')], default='unpaid', max_length=20, verbose_name='payment status')),
('is_courier_delivery', models.BooleanField(default=False, verbose_name='courier delivery')),
('courier_extra_amount', models.DecimalField(decimal_places=2, default=0, max_digits=12, verbose_name='courier extra amount')),
('notes', models.TextField(blank=True, null=True, verbose_name='notes')),
('assigned_to', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='assigned_valuations', to=settings.AUTH_USER_MODEL, verbose_name='assigned to')),
('created_by', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='created_valuations', to=settings.AUTH_USER_MODEL, verbose_name='created by')),
('customer', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='valuations', to='evaluation.customermodel', verbose_name='customer')),
('property_owner', models.ForeignKey(blank=True, help_text='Keep empty if customer is the owner', null=True, on_delete=django.db.models.deletion.PROTECT, related_name='valuations', to='evaluation.propertyownermodel', verbose_name='property owner')),
],
options={
'verbose_name': 'Valuation',
'verbose_name_plural': 'Valuations',
'db_table': 'Valuation',
},
),
]