
================================================================================
FILE: aa.py
================================================================================

import os
import pathlib

def gather_project_files(output_file="project_content.txt"):
    """
    تمام فایل‌های متنی پروژه را در یک فایل خروجی جمع‌آوری می‌کند
    """
    # تعریف پسوندهای فایل‌های مورد نظر
    text_extensions = {
        '.py', '.html', '.css', '.js', '.txt', '.md', '.json', '.xml',
        '.yaml', '.yml', '.csv', '.tsv', '.sql', '.php', '.java', '.c', '.cpp',
        '.h', '.cs', '.rb', '.go', '.rs', '.swift', '.kt', '.scala', '.r',
        '.m', '.sql', '.sh', '.bash', '.zsh', '.fish', '.ps1', '.bat', '.cmd'
    }
    
    # فایل‌هایی که باید نادیده گرفته شوند
    ignore_dirs = {'.git', '__pycache__', 'node_modules', 'venv', 'env', '.idea', '.vscode'}
    ignore_files = {output_file, '.gitignore', '.DS_Store'}
    
    with open(output_file, 'w', encoding='utf-8') as outfile:
        # پیمایش پوشه‌ها و زیرپوشه‌ها
        for root, dirs, files in os.walk('.'):
            # حذف پوشه‌های ناخواسته
            dirs[:] = [d for d in dirs if d not in ignore_dirs]
            
            for file in files:
                file_path = pathlib.Path(root) / file
                
                # نادیده گرفتن فایل‌های خاص
                if file in ignore_files:
                    continue
                
                # بررسی پسوند فایل
                if file_path.suffix.lower() in text_extensions:
                    try:
                        # نوشتن نام فایل به عنوان جداکننده
                        outfile.write(f"\n{'='*80}\n")
                        outfile.write(f"FILE: {file_path}\n")
                        outfile.write(f"{'='*80}\n\n")
                        
                        # خواندن و نوشتن محتوای فایل
                        with open(file_path, 'r', encoding='utf-8') as infile:
                            content = infile.read()
                            outfile.write(content)
                            outfile.write('\n')
                            
                    except UnicodeDecodeError:
                        # اگر فایل UTF-8 نباشد، با خطای دیگر امتحان کنیم
                        try:
                            with open(file_path, 'r', encoding='latin-1') as infile:
                                content = infile.read()
                                outfile.write(content)
                                outfile.write('\n')
                        except Exception as e:
                            outfile.write(f"[ERROR: Could not read file - {e}]\n")
                            
                    except Exception as e:
                        outfile.write(f"[ERROR: {e}]\n")
    
    print(f"تمامی فایل‌ها در {output_file} ذخیره شدند.")

def gather_all_files(output_file="project_content.txt"):
    """
    تمام فایل‌های پروژه را بدون در نظر گرفتن پسوند جمع‌آوری می‌کند
    """
    ignore_dirs = {'.git', '__pycache__', 'node_modules', 'venv', 'env', '.idea', '.vscode'}
    ignore_files = {output_file, '.gitignore', '.DS_Store'}
    
    with open(output_file, 'w', encoding='utf-8') as outfile:
        for root, dirs, files in os.walk('.'):
            dirs[:] = [d for d in dirs if d not in ignore_dirs]
            
            for file in files:
                file_path = pathlib.Path(root) / file
                
                if file in ignore_files:
                    continue
                
                try:
                    outfile.write(f"\n{'='*80}\n")
                    outfile.write(f"FILE: {file_path}\n")
                    outfile.write(f"{'='*80}\n\n")
                    
                    # سعی در خواندن به عنوان فایل متنی
                    with open(file_path, 'r', encoding='utf-8') as infile:
                        content = infile.read()
                        outfile.write(content)
                        outfile.write('\n')
                        
                except UnicodeDecodeError:
                    try:
                        with open(file_path, 'r', encoding='latin-1') as infile:
                            content = infile.read()
                            outfile.write(content)
                            outfile.write('\n')
                    except:
                        outfile.write(f"[BINARY FILE - Cannot display content]\n")
                        
                except Exception as e:
                    outfile.write(f"[ERROR: {e}]\n")
    
    print(f"تمامی فایل‌ها در {output_file} ذخیره شدند.")

# اجرای تابع اصلی
if __name__ == "__main__":
    # برای فایل‌های متنی رایج
    gather_project_files("project_content.txt")
    
    # اگر می‌خواهید تمام فایل‌ها را داشته باشید (حتی باینری)
    # gather_all_files("all_project_files.txt")

================================================================================
FILE: code.txt
================================================================================



================================================================================
FILE: manage.py
================================================================================

#!/usr/bin/env python
import os
import sys

if __name__ == '__main__':
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'car_system.settings')
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed?"
        ) from exc
    execute_from_command_line(sys.argv)

================================================================================
FILE: requirements.txt
================================================================================

Django==4.2.7

================================================================================
FILE: cars\admin.py
================================================================================

from django.contrib import admin
from .models import User, Car, CarType, Buyer, Intermediary, Parking, CarItem, Inspection, FinanceReview, ManagerApproval, SystemLog
from django.contrib import admin
from .models import Inspection

# ==========================
# User Admin
# ==========================
@admin.register(User)
class CustomUserAdmin(admin.ModelAdmin):
    list_display = ['username', 'phone', 'national_code', 'province', 'user_type', 'created_at']
    list_filter = ['user_type', 'province']
    search_fields = ['username', 'phone', 'national_code']

# ==========================
# Car Admin
# ==========================
@admin.register(Car)
class CarAdmin(admin.ModelAdmin):
    list_display = ['owner_name', 'plate_number', 'vin', 'car_type', 'status', 'province', 'created_at']
    list_filter = ['status', 'province', 'car_type']
    search_fields = ['owner_name', 'plate_number', 'vin']

# ==========================
# Inspection Admin
# ==========================
@admin.register(Inspection)
class InspectionAdmin(admin.ModelAdmin):
    list_display = ('car', 'get_inspector_type', 'status', 'get_final_price', 'created_at')
    list_filter = ('status', 'created_at')

    def get_inspector_type(self, obj):
        return obj.inspector.user_type
    get_inspector_type.short_description = 'نوع بازرس'
    
    def get_final_price(self, obj):
        # اگر می‌خواهید قیمت نهایی از Car گرفته شود
        return obj.car.base_price
    get_final_price.short_description = 'قیمت نهایی'
# ==========================
# بقیه مدل‌ها
# ==========================
admin.site.register(CarType)
admin.site.register(Buyer)
admin.site.register(Intermediary)
admin.site.register(Parking)
admin.site.register(CarItem)
admin.site.register(FinanceReview)
admin.site.register(ManagerApproval)
admin.site.register(SystemLog)


================================================================================
FILE: cars\apps.py
================================================================================

from django.apps import AppConfig

class CarsConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'cars'
    
    def ready(self):
        from .utils import create_initial_data
       # create_initial_data()

================================================================================
FILE: cars\forms.py
================================================================================

from django import forms
from django.contrib.auth.forms import UserCreationForm
from .models import User, CarItem, Parking, Inspection
from django import forms
from .models import Car, Inspection, FinanceReview, ManagerApproval

class InspectionForm(forms.Form):
    # حذف فیلدهایی که در مدل وجود ندارند
    notes = forms.CharField(widget=forms.Textarea, required=False, label="توضیحات بازرسی")
    overall_status = forms.ChoiceField(choices=Inspection.STATUS_CHOICES, required=True, label="وضعیت کلی")
    missing_items = forms.MultipleChoiceField(
        required=False, 
        widget=forms.CheckboxSelectMultiple,
        label="آیتم‌های مفقوده"
    )
    
    def __init__(self, *args, **kwargs):
        car_items = kwargs.pop('car_items', None)
        super().__init__(*args, **kwargs)
        if car_items:
            self.fields['missing_items'].choices = [
                (item.id, f"{item.name} - {item.price} ریال") 
                for item in car_items
            ]



class FinanceReviewForm(forms.ModelForm):
    class Meta:
        model = FinanceReview
        fields = ['suggested_price', 'notes']
        widgets = {
            'notes': forms.Textarea(attrs={'rows': 3}),
        }

class ManagerApprovalForm(forms.ModelForm):
    class Meta:
        model = ManagerApproval
        fields = ['approved', 'notes']
        widgets = {
            'approved': forms.RadioSelect(choices=[(True, 'تأیید'), (False, 'رد')]),
            'notes': forms.Textarea(attrs={'rows': 3}),
        }

class CarForm(forms.ModelForm):
    class Meta:
        model = Car
        fields = ['owner_name', 'plate_number', 'vin', 'system', 'car_type',
                  'model', 'engine_number', 'color', 'capacity', 'base_price']


class InspectionForm(forms.ModelForm):
    class Meta:
        model = Inspection
        fields = ['notes',  'status']


class FinanceReviewForm(forms.ModelForm):
    class Meta:
        model = FinanceReview
        fields = ['suggested_price', 'notes']


class ManagerApprovalForm(forms.ModelForm):
    class Meta:
        model = ManagerApproval
        fields = ['approved', 'notes']



class UserRegistrationForm(UserCreationForm):
    first_name = forms.CharField(max_length=100, required=True)
    last_name = forms.CharField(max_length=100, required=True)
    phone = forms.CharField(max_length=11, required=True)
    national_code = forms.CharField(max_length=10, required=True)
    shenasnameh_code = forms.CharField(max_length=10, required=True)
    province = forms.ChoiceField(choices=User.PROVINCE_CHOICES, required=True)
    user_type = forms.ChoiceField(choices=User.USER_TYPE_CHOICES, required=True)
    
    class Meta:
        model = User
        fields = ['first_name', 'last_name', 'phone', 'national_code', 
                 'shenasnameh_code', 'province', 'user_type', 'password1', 'password2']

class LoginForm(forms.Form):
    national_code = forms.CharField(max_length=10, required=True)
    shenasnameh_code = forms.CharField(max_length=10, required=True)

class ChassisCheckForm(forms.Form):
    chassis_number = forms.CharField(max_length=100, required=True)

class CarInfoForm(forms.Form):
    owner_name = forms.CharField(max_length=200, required=True)
    plate_number = forms.CharField(max_length=20, required=True)
    vin = forms.CharField(max_length=100, required=True)
    system = forms.CharField(max_length=100, required=True)
    car_type = forms.CharField(max_length=100, required=True)
    model = forms.CharField(max_length=100, required=True)
    engine_number = forms.CharField(max_length=100, required=True)
    color = forms.CharField(max_length=50, required=True)
    capacity = forms.IntegerField(required=True, min_value=1)
    base_price = forms.DecimalField(required=True, max_digits=15, decimal_places=2)

class IntermediaryForm(forms.Form):
    buyer_id = forms.IntegerField(required=True)
    intermediary_id = forms.IntegerField(required=True)
    zinefaa = forms.CharField(max_length=200, required=False)
    vekalatnameh = forms.CharField(max_length=200, required=False)

class ParkingForm(forms.Form):
    parking_zone = forms.ChoiceField(choices=Parking.ZONE_CHOICES, required=True)
    parking_number = forms.CharField(max_length=10, required=True)
    park_date = forms.DateField(required=True)
    park_time = forms.TimeField(required=True)

class InspectionForm(forms.Form):
    car_id = forms.IntegerField(required=True)
    overall_status = forms.ChoiceField(choices=Inspection.STATUS_CHOICES, required=True)
    notes = forms.CharField(widget=forms.Textarea, required=False)
    inspection_date = forms.DateField(required=True)
    inspection_time = forms.TimeField(required=True)
    missing_items = forms.MultipleChoiceField(required=False, widget=forms.CheckboxSelectMultiple)

class CarItemForm(forms.ModelForm):
    class Meta:
        model = CarItem
        fields = ['name', 'category', 'price', 'car_type', 'is_active']

================================================================================
FILE: cars\models.py
================================================================================

from django.db import models
from django.contrib.auth.models import AbstractUser
from django.utils import timezone

# ==========================
# کاربر سفارشی با نقش‌ها
# ==========================
class User(AbstractUser):
    USER_TYPE_CHOICES = [
        ('customer', 'کاربر عادی'),
        ('intermediary', 'واسطه'),
        ('inspector', 'بازرس'),
        ('finance', 'مالی'),
        ('manager', 'مدیر سیستم'),
    ]

    PROVINCE_CHOICES = [
        ('قزوین', 'قزوین'),
        ('تهران', 'تهران'),
        ('کرمان', 'کرمان'),
    ]

    phone = models.CharField(max_length=11, unique=True)
    national_code = models.CharField(max_length=10, unique=True)
    province = models.CharField(max_length=20, choices=PROVINCE_CHOICES)
    shenasnameh_code = models.CharField(max_length=10, blank=True, null=True)
    user_type = models.CharField(max_length=20, choices=USER_TYPE_CHOICES, default='customer')
    created_at = models.DateTimeField(default=timezone.now)

    def __str__(self):
        return f"{self.username} ({self.get_user_type_display()})"


# ==========================
# نوع خودرو
# ==========================
class CarType(models.Model):
    type_name = models.CharField(max_length=100, unique=True)
    created_at = models.DateTimeField(default=timezone.now)

    def __str__(self):
        return self.type_name


# ==========================
# خریدار / واسطه
# ==========================
class Buyer(models.Model):
    name = models.CharField(max_length=200)
    phone = models.CharField(max_length=11, blank=True, null=True)
    province = models.CharField(max_length=20)
    created_at = models.DateTimeField(default=timezone.now)

    def __str__(self):
        return self.name


class Intermediary(models.Model):
    name = models.CharField(max_length=200)
    phone = models.CharField(max_length=11, blank=True, null=True)
    province = models.CharField(max_length=20)
    created_at = models.DateTimeField(default=timezone.now)

    def __str__(self):
        return self.name


# ==========================
# خودرو
# ==========================
class Car(models.Model):
    STATUS_CHOICES = [
        ('info', 'در انتظار اطلاعات'),
        ('inspection', 'در انتظار بازرسی'),
        ('finance', 'در انتظار مالی'),
        ('manager', 'در انتظار تأیید مدیر'),
        ('approved', 'تأیید نهایی'),
        ('rejected', 'رد شده'),
    ]

    PROVINCE_CHOICES = [
        ('قزوین', 'قزوین'),
        ('تهران', 'تهران'),
        ('کرمان', 'کرمان'),
    ]

    owner_name = models.CharField(max_length=200)
    plate_number = models.CharField(max_length=20)
    vin = models.CharField(max_length=100)
    system = models.CharField(max_length=100)
    car_type = models.ForeignKey(CarType, on_delete=models.SET_NULL, null=True)
    model = models.CharField(max_length=100)
    engine_number = models.CharField(max_length=100)
    color = models.CharField(max_length=50)
    capacity = models.IntegerField()
    base_price = models.DecimalField(max_digits=15, decimal_places=2, default=0)

    user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="cars")
    buyer = models.ForeignKey(Buyer, on_delete=models.SET_NULL, null=True, blank=True)
    intermediary = models.ForeignKey(Intermediary, on_delete=models.SET_NULL, null=True, blank=True)

    province = models.CharField(max_length=20, choices=PROVINCE_CHOICES)
    status = models.CharField(max_length=20, choices=STATUS_CHOICES, default='info')
    created_at = models.DateTimeField(default=timezone.now)

    def __str__(self):
        return f"{self.owner_name} - {self.plate_number}"


# ==========================
# آیتم‌های خودرو (قطعات / لوازم)
# ==========================
class CarItem(models.Model):
    CATEGORY_CHOICES = [
        ('essential', 'ضروری'),
        ('optional', 'اختیاری'),
    ]

    name = models.CharField(max_length=100, unique=True)
    category = models.CharField(max_length=20, choices=CATEGORY_CHOICES, default='essential')
    price = models.DecimalField(max_digits=15, decimal_places=2, default=0)
    car_type = models.CharField(max_length=100, default='general')
    is_active = models.BooleanField(default=True)
    created_at = models.DateTimeField(default=timezone.now)

    def __str__(self):
        return self.name


# ==========================
# پارکینگ
# ==========================
class Parking(models.Model):
    ZONE_CHOICES = [
        ('A', 'A'),
        ('B', 'B'),
        ('C', 'C'),
    ]

    PROVINCE_CHOICES = [
        ('قزوین', 'قزوین'),
        ('تهران', 'تهران'),
        ('کرمان', 'کرمان'),
    ]

    car = models.ForeignKey(Car, on_delete=models.CASCADE)
    parking_zone = models.CharField(max_length=1, choices=ZONE_CHOICES)
    parking_number = models.CharField(max_length=10)
    park_date = models.DateField()
    park_time = models.TimeField()
    province = models.CharField(max_length=20, choices=PROVINCE_CHOICES)
    created_at = models.DateTimeField(default=timezone.now)

    class Meta:
        constraints = [
            models.UniqueConstraint(
                fields=['parking_zone', 'parking_number', 'province', 'park_date'],
                name='unique_parking'
            )
        ]

    def __str__(self):
        return f"{self.car} - {self.parking_zone}{self.parking_number}"


# ==========================
# بازرسی خودرو
# ==========================
class Inspection(models.Model):
    STATUS_CHOICES = [
        ('approved', 'تایید شده'),
        ('rejected', 'رد شده'),
    ]

    car = models.ForeignKey(Car, on_delete=models.CASCADE, related_name='inspections')
    inspector = models.ForeignKey(User, on_delete=models.CASCADE, limit_choices_to={'user_type': 'inspector'})
    notes = models.TextField(blank=True, null=True)
    status = models.CharField(max_length=20, choices=STATUS_CHOICES, default='approved')
    created_at = models.DateTimeField(default=timezone.now)

    def __str__(self):
        return f"بازرسی {self.car}"


# ==========================
# آیتم‌های مفقوده در بازرسی
# ==========================
class InspectionMissingItem(models.Model):
    inspection = models.ForeignKey(Inspection, on_delete=models.CASCADE, related_name='missing_items')
    item = models.ForeignKey(CarItem, on_delete=models.CASCADE)
    item_price = models.DecimalField(max_digits=15, decimal_places=2, default=0)
    created_at = models.DateTimeField(default=timezone.now)

    def __str__(self):
        return f"{self.item.name} - {self.item_price} ریال"

# ==========================
# بررسی مالی
# ==========================
class FinanceReview(models.Model):
    car = models.ForeignKey(Car, on_delete=models.CASCADE, related_name='finance_reviews')
    finance_user = models.ForeignKey(User, on_delete=models.CASCADE, limit_choices_to={'user_type': 'finance'})
    suggested_price = models.DecimalField(max_digits=15, decimal_places=2)
    notes = models.TextField(blank=True, null=True)
    created_at = models.DateTimeField(default=timezone.now)

    def __str__(self):
        return f"مالی {self.car}"


# ==========================
# تایید مدیر
# ==========================
class ManagerApproval(models.Model):
    car = models.OneToOneField(Car, on_delete=models.CASCADE, related_name='manager_approval')
    manager = models.ForeignKey(User, on_delete=models.CASCADE, limit_choices_to={'user_type': 'manager'})
    approved = models.BooleanField(default=False)
    notes = models.TextField(blank=True, null=True)
    created_at = models.DateTimeField(default=timezone.now)

    def __str__(self):
        return f"تایید مدیر {self.car}"


# ==========================
# لاگ سیستم
# ==========================
class SystemLog(models.Model):
    user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True)
    action = models.CharField(max_length=200)
    description = models.TextField(blank=True, null=True)
    ip_address = models.GenericIPAddressField(blank=True, null=True)
    created_at = models.DateTimeField(default=timezone.now)
    user_agent = models.TextField(blank=True, null=True)

    def __str__(self):
        return f"{self.action} توسط {self.user}"


================================================================================
FILE: cars\urls.py
================================================================================

from django.urls import path
from . import views

urlpatterns = [
    # احراز هویت
    path('', views.login_view, name='login'),
    path('register/', views.register_view, name='register'),
    path('logout/', views.logout_view, name='logout'),
    path('dashboard/', views.dashboard, name='dashboard'),
    
    # ثبت خودرو
    path('start-sale/', views.start_sale, name='start_sale'),
    path('chassis-check/', views.chassis_check, name='chassis_check'),
    path('car-info/', views.car_info, name='car_info'),
    path('intermediary/', views.intermediary_view, name='intermediary'),
    path('parking/', views.parking_view, name='parking'),
    
    # لیست‌ها
    path('cars/', views.cars_list, name='cars_list'),
    path('my-cars/', views.cars_list, name='my_cars'),
    
    #بازرسی
    path('inspections/', views.inspection_list, name='inspection_list'),
    path('pending-inspections/', views.pending_inspections, name='pending_inspections'),  # اضافه شده
    path('inspect-car/<int:car_id>/', views.inspect_car, name='inspect_car'),
    path('inspection-detail/<int:inspection_id>/', views.inspection_detail, name='inspection_detail'),

    
    # مالی
    path('finance-list/', views.finance_list, name='finance_list'),
    path('finance/<int:car_id>/', views.finance_view, name='finance'),
    
    # مدیر سیستم
    path('manager-approval/', views.manager_approval_list, name='manager_approval_list'),
    path('manager-approval/<int:car_id>/', views.manager_approval_detail, name='manager_approval_detail'),
    
    # پنل مدیریت
    path('admin-dashboard/', views.admin_dashboard, name='admin_dashboard'),
    path('admin-users/', views.admin_users, name='admin_users'),
    path('admin-cars/', views.admin_cars, name='admin_cars'),
    path('admin-items/', views.admin_items, name='admin_items'),
    path('admin-logs/', views.admin_logs, name='admin_logs'),
    path('edit-item/<int:item_id>/', views.edit_item, name='edit_item'),
    path('delete-item/<int:item_id>/', views.delete_item, name='delete_item'),
    
    # URL های قدیمی برای سازگاری (اختیاری)
    path('manager/<int:car_id>/', views.manager_approval_detail, name='manager_approval'),
]

================================================================================
FILE: cars\utils.py
================================================================================

from django.utils import timezone
from .models import SystemLog, User, Buyer, Intermediary, CarType, CarItem



def add_log(action, description='', user=None, request=None):
    ip_address = None
    user_agent = None
    
    if request:
        ip_address = request.META.get('REMOTE_ADDR')
        user_agent = request.META.get('HTTP_USER_AGENT')
    
    SystemLog.objects.create(
        user=user,
        action=action,
        description=description,
        ip_address=ip_address,
        user_agent=user_agent
    )

def format_price(price):
    return f"{price:,.0f} ریال"

def create_initial_data():
    # Create admin user if not exists
    if not User.objects.filter(national_code='0000000000').exists():
        User.objects.create_superuser(
            username='admin',
            first_name='مدیر',
            last_name='سیستم',
            phone='09120000000',
            national_code='0000000000',
            shenasnameh_code='00000',
            province='تهران',
            user_type='admin'
        )
    
    # Create sample buyers
    buyers_data = [
        ('خریدار قزوین ۱', 'قزوین', '09123456789'),
        ('خریدار قزوین ۲', 'قزوین', '09123456780'),
        ('خریدار تهران ۱', 'تهران', '09123456782'),
        ('خریدار تهران ۲', 'تهران', '09123456783'),
        ('خریدار کرمان ۱', 'کرمان', '09123456785'),
        ('خریدار کرمان ۲', 'کرمان', '09123456786'),
    ]
    
    for name, province, phone in buyers_data:
        Buyer.objects.get_or_create(name=name, province=province, phone=phone)
    
    # Create sample intermediaries
    intermediaries_data = [
        ('واسطه قزوین ۱', 'قزوین', '09123456788'),
        ('واسطه قزوین ۲', 'قزوین', '09123456789'),
        ('واسطه تهران ۱', 'تهران', '09123456791'),
        ('واسطه تهران ۲', 'تهران', '09123456792'),
        ('واسطه کرمان ۱', 'کرمان', '09123456794'),
        ('واسطه کرمان ۲', 'کرمان', '09123456795'),
    ]
    
    for name, province, phone in intermediaries_data:
        Intermediary.objects.get_or_create(name=name, province=province, phone=phone)
    
    # Create car types
    car_types = ['پراید', 'پژو 405', 'پژو 206', 'پژو پارس', 'سمند', 'تیبا', 'دنا', 'کوییک']
    for type_name in car_types:
        CarType.objects.get_or_create(type_name=type_name)
    
    # Create car items
    items_data = [
        ('موتور', 'essential', 50000000, 'general'),
        ('جعبه فرمان', 'essential', 3000000, 'general'),
        ('سیستم ترمز', 'essential', 4000000, 'general'),
        ('سیستم تعلیق', 'essential', 3500000, 'general'),
        ('باتری', 'essential', 800000, 'general'),
        ('موتور پراید', 'essential', 45000000, 'پراید'),
        ('موتور پژو 206', 'essential', 60000000, 'پژو 206'),
        ('کپوت', 'optional', 1200000, 'general'),
        ('صندوق عقب', 'optional', 1000000, 'general'),
    ]
    
    for name, category, price, car_type in items_data:
        CarItem.objects.get_or_create(
            name=name,
            defaults={
                'category': category,
                'price': price,
                'car_type': car_type
            }
        )

        


def is_admin(user):
    """بررسی آیا کاربر مدیر سیستم است"""
    return user.is_authenticated and user.user_type == 'manager'

def is_manager(user):
    """بررسی آیا کاربر مدیر است"""
    return user.is_authenticated and user.user_type == 'manager'

def is_finance(user):
    """بررسی آیا کاربر مالی است"""
    return user.is_authenticated and user.user_type == 'finance'

def is_inspector(user):
    """بررسی آیا کاربر بازرس است"""
    return user.is_authenticated and user.user_type == 'inspector'

================================================================================
FILE: cars\views.py
================================================================================

from django.shortcuts import render, redirect, get_object_or_404
from django.contrib.auth import login, logout, authenticate
from django.contrib.auth.decorators import login_required
from django.contrib import messages
from django.db.models import Q
from django.utils import timezone
from django.http import JsonResponse, HttpResponse
from decimal import Decimal, InvalidOperation
import json

# importهای مشخص به جای import *
from .models import (
    User, Car, CarType, Buyer, Intermediary, Parking, 
    CarItem, Inspection, InspectionMissingItem, 
    FinanceReview, ManagerApproval, SystemLog
)
from .forms import (
    UserRegistrationForm, LoginForm, ChassisCheckForm, 
    CarInfoForm, IntermediaryForm, ParkingForm, 
    InspectionForm, CarItemForm, FinanceReviewForm, ManagerApprovalForm
)
from .utils import add_log, is_inspector, is_finance, is_manager, is_admin


# مرحله 1: ثبت اطلاعات خودرو (کاربر عادی)
@login_required
def car_info(request):
    if request.user.user_type != 'customer':
        messages.error(request, 'شما اجازه ثبت خودرو ندارید.')
        return redirect('dashboard')

    if request.method == 'POST':
        form = CarInfoForm(request.POST)
        if form.is_valid():
            car = Car.objects.create(
                user=request.user,
                owner_name=form.cleaned_data['owner_name'],
                plate_number=form.cleaned_data['plate_number'],
                vin=form.cleaned_data['vin'],
                system=form.cleaned_data['system'],
                car_type=form.cleaned_data.get('car_type', CarType.objects.first()),
                model=form.cleaned_data['model'],
                engine_number=form.cleaned_data['engine_number'],
                color=form.cleaned_data['color'],
                capacity=form.cleaned_data['capacity'],
                base_price=form.cleaned_data['base_price'],
                province='تهران',
                status='inspection'
            )
            add_log("ثبت اطلاعات خودرو", f"پلاک: {car.plate_number}", request.user, request)
            messages.success(request, 'خودرو ثبت شد. منتظر بازرسی باشید.')
            return redirect('cars_list')
    else:
        form = CarInfoForm()

    return render(request, 'cars/car_info.html', {'form': form})




@login_required
def finance_list(request):
    """لیست خودروهای در انتظار بررسی مالی"""
    if not is_finance(request.user):
        messages.error(request, 'شما دسترسی به این صفحه ندارید.')
        return redirect('dashboard')

    # فقط خودروهای استان کاربر مالی و با وضعیت finance
    cars = Car.objects.filter(
        status='finance',
        province=request.user.province
    ).order_by('-created_at')

    context = {
        'cars': cars,
    }
    return render(request, 'cars/finance_list.html', context)


@login_required
def inspect_car(request, car_id):
    """بازرسی خودرو - ثبت آیتم‌های مفقوده"""
    if not is_inspector(request.user):
        messages.error(request, 'دسترسی غیرمجاز! فقط بازرسان می‌توانند بازرسی انجام دهند.')
        return redirect('dashboard')
    
    car = get_object_or_404(Car, id=car_id, province=request.user.province, status='inspection')
    
    # دریافت آیتم‌های فعال
    car_items = CarItem.objects.filter(
        Q(car_type='general') | Q(car_type=car.car_type.type_name),
        is_active=True
    ).order_by('category', 'name')
    
    if request.method == 'POST':
        # دیباگ: چاپ تمام داده‌های POST
        print("=== دیباگ فرم بازرسی ===")
        for key, value in request.POST.items():
            print(f"{key}: {value}")
        
        # روش صحیح دریافت آیتم‌های انتخاب شده
        missing_items_ids = []
        for key, value in request.POST.items():
            if key.startswith('missing_item_'):
                # اگر checkbox انتخاب شده باشد، مقدار 'on' یا مقدار واقعی ارسال می‌شود
                if value and value != 'on':  # فقط اگر مقدار داشته باشد و 'on' نباشد
                    try:
                        missing_items_ids.append(int(value))
                    except ValueError:
                        print(f"مقدار غیر عددی نادیده گرفته شد: {value}")
                elif value == 'on':
                    # اگر مقدار 'on' است، از نام فیلد ID را استخراج کنیم
                    try:
                        item_id = int(key.replace('missing_item_', ''))
                        missing_items_ids.append(item_id)
                    except ValueError:
                        print(f"نام فیلد غیر عددی: {key}")
        
        print(f"آیتم‌های انتخاب شده: {missing_items_ids}")
        
        notes = request.POST.get('notes', '')
        overall_status = request.POST.get('overall_status')
        
        # ایجاد بازرسی
        inspection = Inspection.objects.create(
            car=car,
            inspector=request.user,
            notes=notes,
            status='approved' if overall_status == 'approved' else 'rejected'
        )
        
        # ثبت آیتم‌های مفقوده
        items_registered = 0
        for item_id in missing_items_ids:
            try:
                item = CarItem.objects.get(id=item_id)
                InspectionMissingItem.objects.create(
                    inspection=inspection,
                    item=item,
                    item_price=0
                )
                items_registered += 1
                print(f"✅ آیتم {item.name} (ID: {item_id}) ثبت شد")
            except CarItem.DoesNotExist:
                print(f"❌ آیتم با ID {item_id} یافت نشد")
        
        # تغییر وضعیت خودرو به مالی
        car.status = 'finance'
        car.save()
        
        add_log('ثبت بازرسی', f'بازرسی خودرو {car.plate_number} - {items_registered} آیتم مفقوده', request.user, request)
        messages.success(request, f'✅ بازرسی ثبت شد. {items_registered} آیتم مفقوده ثبت گردید.')
        return redirect('inspection_list')
    
    context = {
        'car': car,
        'car_items': car_items,
    }
    return render(request, 'cars/inspect_car.html', context)

@login_required
def finance_view(request, car_id):
    """بررسی مالی - محاسبه قیمت آیتم‌های مفقوده"""
    if not is_finance(request.user):
        messages.error(request, 'شما دسترسی به این صفحه ندارید.')
        return redirect('dashboard')

    car = get_object_or_404(Car, id=car_id, status='finance', province=request.user.province)
    
    print(f"=== دیباگ مالی برای خودرو {car.id} ===")
    print(f"پلاک: {car.plate_number}, وضعیت: {car.status}")
    
    inspection = car.inspections.last()
    
    if not inspection:
        print("❌ هیچ بازرسی یافت نشد!")
        messages.error(request, 'بازرسی برای این خودرو یافت نشد.')
        return redirect('finance_list')
    
    print(f"✅ بازرسی یافت شد: ID {inspection.id}")
    
    # دریافت آیتم‌های مفقوده
    missing_items = inspection.missing_items.all()
    print(f"تعداد آیتم‌های مفقوده: {missing_items.count()}")
    
    for i, item in enumerate(missing_items):
        print(f"  {i+1}. {item.item.name} (ID: {item.id})")
    
    if request.method == 'POST':
        try:
            car_price = Decimal(request.POST.get('car_price', 0))
            print(f"قیمت پایه دریافت شده: {car_price}")
            
            total_deduction = Decimal('0')
            for missing_item in missing_items:
                item_price = Decimal(request.POST.get(f'item_price_{missing_item.id}', 0))
                print(f"آیتم {missing_item.item.name}: قیمت کسر = {item_price}")
                missing_item.item_price = item_price
                missing_item.save()
                total_deduction += item_price
            
            final_price = car_price - total_deduction
            
            car.base_price = car_price
            car.save()
            
            FinanceReview.objects.create(
                car=car,
                finance_user=request.user,
                suggested_price=final_price,
                notes=request.POST.get('notes', '')
            )
            
            car.status = 'manager'
            car.save()
            
            add_log("بررسی مالی", f"قیمت پایه: {car_price} - کسورات: {total_deduction} - قیمت نهایی: {final_price}", request.user, request)
            messages.success(request, f'بررسی مالی ثبت شد. {missing_items.count()} آیتم مفقوده محاسبه شد.')
            return redirect('finance_list')
            
        except (ValueError, InvalidOperation) as e:
            messages.error(request, f'خطا در مقادیر عددی: {str(e)}')
            print(f"❌ خطا: {str(e)}")
    
    initial_car_price = car.base_price if car.base_price > 0 else 100000000
    
    context = {
        'car': car,
        'inspection': inspection,
        'missing_items': missing_items,
        'initial_car_price': initial_car_price,
        'initial_suggested_price': initial_car_price,
    }
    return render(request, 'cars/finance_review.html', context)


# مرحله 4: تأیید مدیر
@login_required
def manager_approval_list(request):
    """لیست خودروهای در انتظار تایید مدیر"""
    if not is_manager(request.user):
        messages.error(request, 'دسترسی غیرمجاز!')
        return redirect('dashboard')
    
    # خودروهای با وضعیت 'manager' که منتظر تایید هستند
    cars = Car.objects.filter(status='manager').select_related(
        'car_type', 'user'
    ).prefetch_related(
        'inspections', 'finance_reviews'
    ).order_by('-created_at')
    
    context = {
        'cars': cars,
    }
    return render(request, 'cars/manager_approval_list.html', context)

@login_required
def manager_approval_detail(request, car_id):
    """صفحه جزئیات برای تایید نهایی مدیر"""
    if not is_manager(request.user):
        messages.error(request, 'دسترسی غیرمجاز!')
        return redirect('dashboard')
    
    car = get_object_or_404(Car, id=car_id, status='manager')
    inspection = car.inspections.last()
    finance_review = car.finance_reviews.last()
    missing_items = inspection.missing_items.all().select_related('item') if inspection else []
    
    # محاسبه مجموع کسری‌ها
    total_deduction = sum(item.item_price for item in missing_items)
    
    if request.method == 'POST':
        approved = request.POST.get('approved') == 'true'
        notes = request.POST.get('notes', '')
        
        # استفاده از update_or_create برای جلوگیری از مشکل NULL
        approval, created = ManagerApproval.objects.update_or_create(
            car=car,
            defaults={
                'manager': request.user,
                'approved': approved,
                'notes': notes
            }
        )
        
        # تغییر وضعیت خودرو
        car.status = 'approved' if approved else 'rejected'
        car.save()
        
        add_log("تأیید مدیر", f"نتیجه: {'تایید' if approved else 'رد'} - پلاک: {car.plate_number}", request.user, request)
        messages.success(request, 'تأیید نهایی ثبت شد.')
        return redirect('manager_approval_list')
    
    context = {
        'car': car,
        'inspection': inspection,
        'finance_review': finance_review,
        'missing_items': missing_items,
        'total_deduction': total_deduction,
    }
    return render(request, 'cars/manager_approval_detail.html', context)


# لیست خودروها برای کاربر عادی
@login_required
def cars_list(request):
    cars = Car.objects.filter(user=request.user)
    return render(request, 'cars/cars_list.html', {'cars': cars})


def car_info(request):
    if 'current_chassis' not in request.session:
        return redirect('chassis_check')
    
    if request.method == 'POST':
        form = CarInfoForm(request.POST)
        if form.is_valid():
            car_data = form.cleaned_data

            # تبدیل Decimal به float ساده
            for key, value in car_data.items():
                try:
                    car_data[key] = float(value)
                except (ValueError, TypeError):
                    pass

            # ذخیره داده‌ها در session
            request.session['current_car_data'] = car_data

            # اضافه کردن نوع خودرو اگر وجود ندارد
            car_type_name = car_data['car_type']  # ✅ درست
            if car_type_name and not CarType.objects.filter(type_name=car_type_name).exists():
                CarType.objects.create(type_name=car_type_name)
            
            request.session['current_step'] = 'intermediary'

            # ✅ ریدایرکت به مرحله بعد
            return redirect('intermediary')
        else:
            # اگر فرم نامعتبر بود، فرم را دوباره نمایش بده
            return render(request, 'cars/car_info.html', {'form': form})
    
    else:
        form = CarInfoForm()
    
    return render(request, 'cars/car_info.html', {'form': form})



def login_view(request):
    if request.user.is_authenticated:
        return redirect('dashboard')
    
    if request.method == 'POST':
        form = LoginForm(request.POST)
        if form.is_valid():
            national_code = form.cleaned_data['national_code']
            shenasnameh_code = form.cleaned_data['shenasnameh_code']
            
            try:
                user = User.objects.get(
                    national_code=national_code,
                    shenasnameh_code=shenasnameh_code
                )
                login(request, user)
                add_log('ورود به سیستم', f'ورود کاربر: {user.get_full_name()}', user, request)
                messages.success(request, 'ورود موفقیت آمیز بود')
                return redirect('dashboard')
            except User.DoesNotExist:
                messages.error(request, 'کد ملی یا شماره شناسنامه اشتباه است')
    else:
        form = LoginForm()
    
    return render(request, 'cars/login.html', {'form': form})

def register_view(request):
    if request.user.is_authenticated:
        return redirect('dashboard')
    
    if request.method == 'POST':
        form = UserRegistrationForm(request.POST)
        if form.is_valid():
            user = form.save()
            login(request, user)
            add_log('ثبت نام کاربر', f'ثبت نام کاربر جدید: {user.get_full_name()}', user, request)
            messages.success(request, f'ثبت نام با موفقیت انجام شد!')
            return redirect('dashboard')
    else:
        form = UserRegistrationForm()
    
    return render(request, 'cars/register.html', {'form': form})

def logout_view(request):
    add_log('خروج از سیستم', f'خروج کاربر: {request.user.get_full_name()}', request.user, request)
    logout(request)
    return redirect('login')

@login_required
def dashboard(request):
    context = {}
    user = request.user
    
    if is_admin(user):
        context['users_count'] = User.objects.count()
        context['cars_count'] = Car.objects.count()
        context['inspections_count'] = Inspection.objects.count()
        context['items_count'] = CarItem.objects.count()
        context['recent_logs'] = SystemLog.objects.select_related('user').order_by('-created_at')[:10]
    
    elif is_inspector(user):
        # محاسبه مستقیم تعداد خودروهای در انتظار - بدون استفاده از context processor
        context['pending_count'] = Car.objects.filter(
            status='inspection', 
            province=user.province
        ).count()
        context['approved_count'] = Car.objects.filter(
            status='approved', province=user.province
        ).count()
        context['rejected_count'] = Car.objects.filter(
            status='rejected', province=user.province
        ).count()
        context['inspections_count'] = Inspection.objects.filter(
            inspector=user
        ).count()
        context['recent_cars'] = Car.objects.filter(
            province=user.province
        ).order_by('-created_at')[:5]
    
    else:
        context['cars_count'] = Car.objects.filter(user=user).count()
        context['pending_count'] = Car.objects.filter(
            user=user, status='pending'
        ).count()
        context['approved_count'] = Car.objects.filter(
            user=user, status='approved'
        ).count()
        context['rejected_count'] = Car.objects.filter(
            user=user, status='rejected'
        ).count()
        context['recent_cars'] = Car.objects.filter(
            user=user
        ).order_by('-created_at')[:5]
    
    return render(request, 'cars/dashboard.html', context)

@login_required
def start_sale(request):
    request.session['current_step'] = 'chassis_check'
    request.session.pop('current_chassis', None)
    request.session.pop('current_car_data', None)
    request.session.pop('current_buyer_data', None)
    return redirect('chassis_check')

@login_required
def chassis_check(request):
    if request.method == 'POST':
        form = ChassisCheckForm(request.POST)
        if form.is_valid():
            chassis_number = form.cleaned_data['chassis_number']
            
            if Car.objects.filter(vin=chassis_number).exists():
                messages.error(request, 'این شماره بدنه قبلاً در سیستم ثبت شده است')
            else:
                request.session['current_chassis'] = chassis_number
                request.session['current_step'] = 'car_info'
                return redirect('car_info')
    else:
        form = ChassisCheckForm()
    
    return render(request, 'cars/chassis_check.html', {'form': form})


@login_required
def intermediary_view(request):
    if 'current_car_data' not in request.session:
        return redirect('car_info')
    
    buyers = Buyer.objects.filter(province=request.user.province)
    intermediaries = Intermediary.objects.filter(province=request.user.province)
    
    if request.method == 'POST':
        form = IntermediaryForm(request.POST)
        if form.is_valid():
            request.session['current_buyer_data'] = form.cleaned_data
            request.session['current_step'] = 'parking'
            return redirect('parking')
    else:
        form = IntermediaryForm()
    
    context = {
        'form': form,
        'buyers': buyers,
        'intermediaries': intermediaries,
    }
    return render(request, 'cars/intermediary.html', context)

@login_required
def parking_view(request):
    if 'current_buyer_data' not in request.session:
        return redirect('intermediary')
    
    if request.method == 'POST':
        form = ParkingForm(request.POST)
        if form.is_valid():
            parking_data = form.cleaned_data
            
            # بررسی اینکه جای پارک رزرو نباشه
            if Parking.objects.filter(
                parking_zone=parking_data['parking_zone'],
                parking_number=parking_data['parking_number'],
                province=request.user.province,
                park_date=parking_data['park_date']
            ).exists():
                messages.error(request, '❌ این جای پارک در تاریخ انتخاب شده قبلاً رزرو شده است.')
                return redirect('parking')
            
            # گرفتن داده‌های مرحله‌های قبل
            car_data = request.session.get('current_car_data')
            buyer_data = request.session.get('current_buyer_data')
            
            # ✅ ساخت یا گرفتن CarType بر اساس نام
            car_type_name = car_data.get('car_type')
            car_type_obj, created = CarType.objects.get_or_create(type_name=car_type_name)
            
            # ✅ ساخت ماشین
            car = Car.objects.create(
                vin=request.session['current_chassis'],  # ✅ شماره بدنه
                owner_name=car_data['owner_name'],
                plate_number=car_data['plate_number'],
                system=car_data['system'],
                car_type=car_type_obj,
                model=car_data['model'],
                engine_number=car_data['engine_number'],
                color=car_data['color'],
                capacity=car_data['capacity'],
                base_price=car_data['base_price'],
                user=request.user,
                buyer_id=buyer_data['buyer_id'],
                intermediary_id=buyer_data['intermediary_id'],
                province=request.user.province,
                status='inspection'  # بره مرحله بازرسی
            )

            
            # ✅ ثبت پارکینگ
            Parking.objects.create(
                car=car,
                parking_zone=parking_data['parking_zone'],
                parking_number=parking_data['parking_number'],
                park_date=parking_data['park_date'],
                park_time=parking_data['park_time'],
                province=request.user.province
            )
            
            # ثبت در لاگ
            add_log('ثبت خودرو جدید', f'ثبت خودرو با شماره بدنه: {car.vin}', request.user, request)
            
            # پاک کردن اطلاعات موقت از سشن
            for key in ['current_chassis', 'current_car_data', 'current_buyer_data']:
                request.session.pop(key, None)
            request.session['current_step'] = 'dashboard'
            
            messages.success(request, '✅ خودرو با موفقیت ثبت و برای بازرسی ارسال شد.')
            return redirect('dashboard')
    else:
        form = ParkingForm()
    
    return render(request, 'cars/parking.html', {'form': form})


@login_required
def cars_list(request):
    user = request.user
    search_term = request.GET.get('search', '')
    
    if is_admin(user):
        cars = Car.objects.all()
    elif is_inspector(user):
        cars = Car.objects.filter(province=user.province)
    else:
        cars = Car.objects.filter(user=user)
    
    if search_term:
        cars = cars.filter(
            Q(chassis_number__icontains=search_term) |
            Q(model__icontains=search_term) |
            Q(owner_name__icontains=search_term) |
            Q(plate_number__icontains=search_term)
        )
    
    cars = cars.order_by('-created_at')
    
    context = {
        'cars': cars,
        'search_term': search_term,
    }
    return render(request, 'cars/cars_list.html', context)

@login_required
def inspection_list(request):
    """تاریخچه بازرسی‌های انجام شده توسط بازرس"""
    if not is_inspector(request.user):
        messages.error(request, 'دسترسی غیرمجاز! فقط بازرسان می‌توانند این صفحه را مشاهده کنند.')
        return redirect('dashboard')
    
    inspections = Inspection.objects.filter(
        inspector=request.user
    ).select_related('car').order_by('-created_at')
    
    context = {
        'inspections': inspections,
        'title': 'تاریخچه بازرسی‌ها'
    }
    return render(request, 'cars/inspection_list.html', context)


@login_required
def admin_dashboard(request):
    """داشبورد مدیریت - برای مدیر سیستم"""
    if not is_admin(request.user):
        messages.error(request, 'دسترسی غیرمجاز! فقط مدیر سیستم می‌تواند به این صفحه دسترسی داشته باشد.')
        return redirect('dashboard')
    
    context = {
        'users_count': User.objects.count(),
        'cars_count': Car.objects.count(),
        'inspections_count': Inspection.objects.count(),
        'items_count': CarItem.objects.count(),
        'recent_logs': SystemLog.objects.select_related('user').order_by('-created_at')[:10],
    }
    return render(request, 'cars/admin_dashboard.html', context)  # این خط را اصلاح کنید

@login_required
def admin_users(request):
    if not is_admin(request.user):
        messages.error(request, 'دسترسی غیرمجاز!')
        return redirect('dashboard')
    
    users = User.objects.all().order_by('-created_at')
    
    context = {
        'users': users,
    }
    return render(request, 'cars/admin_users.html', context)  # تمپلیت صحیح

@login_required
def admin_cars(request):
    if not is_admin(request.user):
        messages.error(request, 'دسترسی غیرمجاز!')
        return redirect('dashboard')
    
    cars = Car.objects.select_related('user').all().order_by('-created_at')
    
    context = {
        'cars': cars,
    }
    return render(request, 'cars/admin_cars.html', context)  # تمپلیت صحیح

@login_required
def admin_items(request):
    if not is_admin(request.user):
        messages.error(request, 'دسترسی غیرمجاز!')
        return redirect('dashboard')
    
    items = CarItem.objects.all().order_by('car_type', 'category', 'name')
    
    if request.method == 'POST':
        form = CarItemForm(request.POST)
        if form.is_valid():
            form.save()
            add_log('افزودن قلم جدید', f'قلم جدید: {form.cleaned_data["name"]}', request.user, request)
            messages.success(request, '✅ قلم جدید با موفقیت اضافه شد')
            return redirect('admin_items')
    else:
        form = CarItemForm()
    
    context = {
        'items': items,
        'form': form,
    }
    return render(request, 'cars/admin_items.html', context)  # تمپلیت صحیح

@login_required
def admin_logs(request):
    if not is_admin(request.user):
        messages.error(request, 'دسترسی غیرمجاز!')
        return redirect('dashboard')
    
    logs = SystemLog.objects.select_related('user').all().order_by('-created_at')[:100]
    
    context = {
        'logs': logs,
    }
    return render(request, 'cars/admin_logs.html', context)  # تمپلیت صحیح

@login_required
def edit_item(request, item_id):
    if not is_admin(request.user):
        messages.error(request, 'دسترسی غیرمجاز!')
        return redirect('dashboard')
    
    item = get_object_or_404(CarItem, id=item_id)
    
    if request.method == 'POST':
        form = CarItemForm(request.POST, instance=item)
        if form.is_valid():
            form.save()
            add_log('ویرایش قلم', f'ویرایش قلم با شناسه: {item_id}', request.user, request)
            messages.success(request, '✅ قلم با موفقیت ویرایش شد')
            return redirect('admin_items')
    else:
        form = CarItemForm(instance=item)
    
    context = {
        'form': form,
        'item': item,
    }
    return render(request, 'cars/edit_item.html', context)

@login_required
def delete_item(request, item_id):
    if not is_admin(request.user):
        messages.error(request, 'دسترسی غیرمجاز!')
        return redirect('dashboard')
    
    item = get_object_or_404(CarItem, id=item_id)
    item.delete()
    add_log('حذف قلم', f'حذف قلم با شناسه: {item_id}', request.user, request)
    messages.success(request, '✅ قلم با موفقیت حذف شد')
    return redirect('admin_items')


@login_required
def car_register(request):
    """صفحه ثبت اولیه خودرو - فقط برای کاربر عادی"""
    if request.user.user_type != 'customer':
        messages.error(request, 'شما اجازه ثبت خودرو ندارید.')
        return redirect('dashboard')

    if request.method == 'POST':
        # اینجا فرم ثبت اطلاعات خودرو میاد (بعداً کاملش می‌کنیم)
        messages.success(request, 'درخواست ثبت خودرو ارسال شد. منتظر تأیید باشید.')
        return redirect('cars_list')

    return render(request, 'cars/car_register.html', {})


@login_required
def inspection_view(request, car_id):
    """نمایش جزئیات بازرسی خودرو (برای بازرس یا مدیر)"""
    car = get_object_or_404(Car, id=car_id)
    inspection = car.inspections.last() if hasattr(car, 'inspections') else None

    if not inspection:
        messages.error(request, 'بازرسی برای این خودرو انجام نشده است.')
        return redirect('inspection_list')

    context = {
        'car': car,
        'inspection': inspection,
    }
    return render(request, 'cars/inspection_detail.html', context)


@login_required
def inspection_detail(request, inspection_id):


    """نمایش جزئیات بازرسی - برای بازرس و مدیر"""
    inspection = get_object_or_404(Inspection, id=inspection_id)
    
    # بررسی دسترسی: فقط بازرس مربوطه یا مدیر می‌تواند جزئیات را ببیند
    if not (request.user == inspection.inspector or is_manager(request.user) or is_admin(request.user)):
        messages.error(request, 'شما دسترسی به این صفحه ندارید.')
        return redirect('dashboard')
    
    # دریافت آیتم‌های مفقوده
    missing_items = InspectionMissingItem.objects.filter(inspection=inspection).select_related('item')
    
    context = {
        'inspection': inspection,
        'missing_items': missing_items,
        'car': inspection.car,
    }
    return render(request, 'cars/inspection_detail.html', context)
def pending_inspections_count(request):
    """Context processor for showing pending inspections count in menu"""
    if request.user.is_authenticated and is_inspector(request.user):
        count = Car.objects.filter(
            status='inspection',
            province=request.user.province
        ).count()
        return {'pending_cars_count': count}
    return {'pending_cars_count': 0}

@login_required
def pending_inspections(request):
    """لیست خودروهای در انتظار بازرسی برای بازرس"""
    if not is_inspector(request.user):
        messages.error(request, 'دسترسی غیرمجاز! فقط بازرسان می‌توانند این صفحه را مشاهده کنند.')
        return redirect('dashboard')
    
    # خودروهای با وضعیت 'inspection' در استان بازرس
    cars = Car.objects.filter(
        status='inspection',
        province=request.user.province
    ).select_related('car_type', 'user').order_by('-created_at')
    
    context = {
        'cars': cars,
        'title': 'خودروهای در انتظار بازرسی'
    }
    return render(request, 'cars/pending_inspections.html', context)

================================================================================
FILE: cars\__init__.py
================================================================================

default_app_config = 'cars.apps.CarsConfig'

================================================================================
FILE: cars\migrations\0001_initial.py
================================================================================

# Generated by Django 4.2.7 on 2025-11-09 21:14

from django.conf import settings
import django.contrib.auth.models
import django.contrib.auth.validators
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('auth', '0012_alter_user_first_name_max_length'),
    ]

    operations = [
        migrations.CreateModel(
            name='User',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('password', models.CharField(max_length=128, verbose_name='password')),
                ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
                ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),
                ('username', models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], verbose_name='username')),
                ('first_name', models.CharField(blank=True, max_length=150, verbose_name='first name')),
                ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')),
                ('email', models.EmailField(blank=True, max_length=254, verbose_name='email address')),
                ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')),
                ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')),
                ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')),
                ('phone', models.CharField(max_length=11, unique=True)),
                ('national_code', models.CharField(max_length=10, unique=True)),
                ('shenasnameh_code', models.CharField(max_length=10)),
                ('province', models.CharField(choices=[('قزوین', 'قزوین'), ('تهران', 'تهران'), ('کرمان', 'کرمان')], max_length=20)),
                ('user_type', models.CharField(choices=[('user', 'کاربر عادی'), ('intermediary', 'واسطه'), ('inspector', 'بازرس'), ('admin', 'مدیر سیستم')], default='user', max_length=20)),
                ('created_at', models.DateTimeField(default=django.utils.timezone.now)),
                ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.group', verbose_name='groups')),
                ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.permission', verbose_name='user permissions')),
            ],
            options={
                'verbose_name': 'user',
                'verbose_name_plural': 'users',
                'abstract': False,
            },
            managers=[
                ('objects', django.contrib.auth.models.UserManager()),
            ],
        ),
        migrations.CreateModel(
            name='Buyer',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=200)),
                ('province', models.CharField(choices=[('قزوین', 'قزوین'), ('تهران', 'تهران'), ('کرمان', 'کرمان')], max_length=20)),
                ('phone', models.CharField(blank=True, max_length=11, null=True)),
                ('created_at', models.DateTimeField(default=django.utils.timezone.now)),
            ],
        ),
        migrations.CreateModel(
            name='Car',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('chassis_number', models.CharField(max_length=100, unique=True)),
                ('owner_name', models.CharField(max_length=200)),
                ('plate_number', models.CharField(max_length=20)),
                ('vin', models.CharField(max_length=100)),
                ('system', models.CharField(max_length=100)),
                ('car_type', models.CharField(max_length=100)),
                ('model', models.CharField(max_length=100)),
                ('engine_number', models.CharField(max_length=100)),
                ('color', models.CharField(max_length=50)),
                ('capacity', models.IntegerField()),
                ('base_price', models.DecimalField(decimal_places=2, default=0, max_digits=15)),
                ('zinefaa', models.CharField(blank=True, max_length=200, null=True)),
                ('vekalatnameh', models.CharField(blank=True, max_length=200, null=True)),
                ('status', models.CharField(choices=[('pending', 'در انتظار'), ('approved', 'تایید شده'), ('rejected', 'رد شده')], default='pending', max_length=20)),
                ('province', models.CharField(choices=[('قزوین', 'قزوین'), ('تهران', 'تهران'), ('کرمان', 'کرمان')], max_length=20)),
                ('created_at', models.DateTimeField(default=django.utils.timezone.now)),
                ('buyer', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='cars.buyer')),
            ],
        ),
        migrations.CreateModel(
            name='CarItem',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=100, unique=True)),
                ('category', models.CharField(choices=[('essential', 'ضروری'), ('optional', 'اختیاری')], default='essential', max_length=20)),
                ('price', models.DecimalField(decimal_places=2, default=0, max_digits=15)),
                ('car_type', models.CharField(default='general', max_length=100)),
                ('is_active', models.BooleanField(default=True)),
                ('created_at', models.DateTimeField(default=django.utils.timezone.now)),
            ],
        ),
        migrations.CreateModel(
            name='CarType',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('type_name', models.CharField(max_length=100, unique=True)),
                ('created_at', models.DateTimeField(default=django.utils.timezone.now)),
            ],
        ),
        migrations.CreateModel(
            name='Inspection',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('base_price', models.DecimalField(decimal_places=2, default=0, max_digits=15)),
                ('total_deduction', models.DecimalField(decimal_places=2, default=0, max_digits=15)),
                ('final_price', models.DecimalField(decimal_places=2, default=0, max_digits=15)),
                ('notes', models.TextField(blank=True, null=True)),
                ('inspection_date', models.DateField()),
                ('inspection_time', models.TimeField()),
                ('overall_status', models.CharField(choices=[('approved', 'تایید شده'), ('rejected', 'رد شده')], max_length=20)),
                ('created_at', models.DateTimeField(default=django.utils.timezone.now)),
                ('car', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cars.car')),
                ('inspector', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='Intermediary',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=200)),
                ('province', models.CharField(choices=[('قزوین', 'قزوین'), ('تهران', 'تهران'), ('کرمان', 'کرمان')], max_length=20)),
                ('phone', models.CharField(blank=True, max_length=11, null=True)),
                ('created_at', models.DateTimeField(default=django.utils.timezone.now)),
            ],
        ),
        migrations.CreateModel(
            name='SystemLog',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('action', models.CharField(max_length=200)),
                ('description', models.TextField(blank=True, null=True)),
                ('ip_address', models.GenericIPAddressField(blank=True, null=True)),
                ('user_agent', models.TextField(blank=True, null=True)),
                ('created_at', models.DateTimeField(default=django.utils.timezone.now)),
                ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='Parking',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('parking_zone', models.CharField(choices=[('A', 'A'), ('B', 'B'), ('C', 'C')], max_length=1)),
                ('parking_number', models.CharField(max_length=10)),
                ('park_date', models.DateField()),
                ('park_time', models.TimeField()),
                ('province', models.CharField(choices=[('قزوین', 'قزوین'), ('تهران', 'تهران'), ('کرمان', 'کرمان')], max_length=20)),
                ('created_at', models.DateTimeField(default=django.utils.timezone.now)),
                ('car', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cars.car')),
            ],
        ),
        migrations.CreateModel(
            name='InspectionMissingItem',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('item_price', models.DecimalField(decimal_places=2, default=0, max_digits=15)),
                ('created_at', models.DateTimeField(default=django.utils.timezone.now)),
                ('inspection', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cars.inspection')),
                ('item', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cars.caritem')),
            ],
        ),
        migrations.AddField(
            model_name='car',
            name='intermediary',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='cars.intermediary'),
        ),
        migrations.AddField(
            model_name='car',
            name='user',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
        ),
        migrations.AddConstraint(
            model_name='parking',
            constraint=models.UniqueConstraint(fields=('parking_zone', 'parking_number', 'province', 'park_date'), name='unique_parking'),
        ),
    ]


================================================================================
FILE: cars\migrations\0002_remove_car_chassis_number_remove_car_vekalatnameh_and_more.py
================================================================================

# Generated by Django 4.2.7 on 2025-11-10 20:55

from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone


class Migration(migrations.Migration):

    dependencies = [
        ('cars', '0001_initial'),
    ]

    operations = [
        migrations.RemoveField(
            model_name='car',
            name='chassis_number',
        ),
        migrations.RemoveField(
            model_name='car',
            name='vekalatnameh',
        ),
        migrations.RemoveField(
            model_name='car',
            name='zinefaa',
        ),
        migrations.RemoveField(
            model_name='inspection',
            name='base_price',
        ),
        migrations.RemoveField(
            model_name='inspection',
            name='inspection_date',
        ),
        migrations.RemoveField(
            model_name='inspection',
            name='inspection_time',
        ),
        migrations.RemoveField(
            model_name='inspection',
            name='overall_status',
        ),
        migrations.RemoveField(
            model_name='systemlog',
            name='user_agent',
        ),
        migrations.RemoveField(
            model_name='user',
            name='shenasnameh_code',
        ),
        migrations.RemoveField(
            model_name='user',
            name='user_type',
        ),
        migrations.AddField(
            model_name='inspection',
            name='status',
            field=models.CharField(choices=[('approved', 'تایید شده'), ('rejected', 'رد شده')], default='approved', max_length=20),
        ),
        migrations.AddField(
            model_name='user',
            name='role',
            field=models.CharField(choices=[('customer', 'کاربر عادی'), ('intermediary', 'واسطه'), ('inspector', 'بازرس'), ('finance', 'مالی'), ('manager', 'مدیر سیستم')], default='customer', max_length=20),
        ),
        migrations.AlterField(
            model_name='buyer',
            name='province',
            field=models.CharField(max_length=20),
        ),
        migrations.AlterField(
            model_name='car',
            name='car_type',
            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='cars.cartype'),
        ),
        migrations.AlterField(
            model_name='car',
            name='status',
            field=models.CharField(choices=[('info', 'در انتظار اطلاعات'), ('inspection', 'در انتظار بازرسی'), ('finance', 'در انتظار مالی'), ('manager', 'در انتظار تأیید مدیر'), ('approved', 'تأیید نهایی'), ('rejected', 'رد شده')], default='info', max_length=20),
        ),
        migrations.AlterField(
            model_name='car',
            name='user',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='cars', to=settings.AUTH_USER_MODEL),
        ),
        migrations.AlterField(
            model_name='inspection',
            name='car',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='inspections', to='cars.car'),
        ),
        migrations.AlterField(
            model_name='inspection',
            name='inspector',
            field=models.ForeignKey(limit_choices_to={'role': 'inspector'}, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
        ),
        migrations.AlterField(
            model_name='intermediary',
            name='province',
            field=models.CharField(max_length=20),
        ),
        migrations.CreateModel(
            name='ManagerApproval',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('approved', models.BooleanField(default=False)),
                ('notes', models.TextField(blank=True, null=True)),
                ('created_at', models.DateTimeField(default=django.utils.timezone.now)),
                ('car', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='manager_approval', to='cars.car')),
                ('manager', models.ForeignKey(limit_choices_to={'role': 'manager'}, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='FinanceReview',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('suggested_price', models.DecimalField(decimal_places=2, max_digits=15)),
                ('notes', models.TextField(blank=True, null=True)),
                ('created_at', models.DateTimeField(default=django.utils.timezone.now)),
                ('car', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='finance_reviews', to='cars.car')),
                ('finance_user', models.ForeignKey(limit_choices_to={'role': 'finance'}, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
            ],
        ),
    ]


================================================================================
FILE: cars\migrations\0003_user_shenasnameh_code.py
================================================================================

# Generated by Django 4.2.7 on 2025-11-11 19:35

from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('cars', '0002_remove_car_chassis_number_remove_car_vekalatnameh_and_more'),
    ]

    operations = [
        migrations.AddField(
            model_name='user',
            name='shenasnameh_code',
            field=models.CharField(blank=True, max_length=10, null=True),
        ),
    ]


================================================================================
FILE: cars\migrations\0004_rename_role_user_user_type.py
================================================================================

# Generated by Django 4.2.7 on 2025-11-11 20:20

from django.db import migrations


class Migration(migrations.Migration):

    dependencies = [
        ('cars', '0003_user_shenasnameh_code'),
    ]

    operations = [
        migrations.RenameField(
            model_name='user',
            old_name='role',
            new_name='user_type',
        ),
    ]


================================================================================
FILE: cars\migrations\0005_systemlog_user_agent.py
================================================================================

# Generated by Django 4.2.7 on 2025-11-11 20:28

from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('cars', '0004_rename_role_user_user_type'),
    ]

    operations = [
        migrations.AddField(
            model_name='systemlog',
            name='user_agent',
            field=models.TextField(blank=True, null=True),
        ),
    ]


================================================================================
FILE: cars\migrations\0006_remove_inspection_final_price_and_more.py
================================================================================

# Generated by Django 4.2.7 on 2025-11-14 13:51

from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

    dependencies = [
        ('cars', '0005_systemlog_user_agent'),
    ]

    operations = [
        migrations.RemoveField(
            model_name='inspection',
            name='final_price',
        ),
        migrations.RemoveField(
            model_name='inspection',
            name='total_deduction',
        ),
        migrations.AlterField(
            model_name='financereview',
            name='finance_user',
            field=models.ForeignKey(limit_choices_to={'user_type': 'finance'}, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
        ),
        migrations.AlterField(
            model_name='inspection',
            name='inspector',
            field=models.ForeignKey(limit_choices_to={'user_type': 'inspector'}, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
        ),
        migrations.AlterField(
            model_name='managerapproval',
            name='manager',
            field=models.ForeignKey(limit_choices_to={'user_type': 'manager'}, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
        ),
    ]


================================================================================
FILE: cars\migrations\0007_alter_inspectionmissingitem_inspection.py
================================================================================

# Generated by Django 5.2.8 on 2025-11-17 20:34

import django.db.models.deletion
from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('cars', '0006_remove_inspection_final_price_and_more'),
    ]

    operations = [
        migrations.AlterField(
            model_name='inspectionmissingitem',
            name='inspection',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='missing_items', to='cars.inspection'),
        ),
    ]


================================================================================
FILE: cars\migrations\__init__.py
================================================================================



================================================================================
FILE: cars\templates\__init__.py
================================================================================



================================================================================
FILE: cars\templates\cars\admin_cars.html
================================================================================

{% extends 'cars/base.html' %}

{% block title %}مدیریت خودروها{% endblock %}

{% block content %}
<div class="page-header">
    <h1>مدیریت خودروها</h1>
    <p>مدیریت کامل خودروهای ثبت شده در سیستم</p>
</div>

<div class="card">
    <div class="card-header">
        <h2>لیست خودروها</h2>
    </div>
    <div class="card-body">
        {% if cars %}
            <table class="table">
                <thead>
                    <tr>
                        <th>ردیف</th>
                        <th>شماره بدنه</th>
                        <th>مالک</th>
                        <th>مدل</th>
                        <th>نوع</th>
                        <th>قیمت پایه</th>
                        <th>ثبت کننده</th>
                        <th>استان</th>
                        <th>وضعیت</th>
                        <th>تاریخ ثبت</th>
                    </tr>
                </thead>
                <tbody>
                    {% for car in cars %}
                    <tr>
                        <td>{{ forloop.counter }}</td>
                        <td>{{ car.chassis_number }}</td>
                        <td>{{ car.owner_name }}</td>
                        <td>{{ car.model }}</td>
                        <td>{{ car.car_type }}</td>
                        <td>{{ car.base_price|floatformat:0 }} ریال</td>
                        <td>{{ car.user.first_name }} {{ car.user.last_name }}</td>
                        <td>{{ car.province }}</td>
                        <td>
                            <span class="status-badge status-{{ car.status }}">
                                {{ car.get_status_display }}
                            </span>
                        </td>
                        <td>{{ car.created_at|date:"Y/m/d H:i" }}</td>
                    </tr>
                    {% endfor %}
                </tbody>
            </table>
        {% else %}
            <div class="empty-state">
                <p>هیچ خودرویی ثبت نشده است</p>
            </div>
        {% endif %}
    </div>
</div>
{% endblock %}

================================================================================
FILE: cars\templates\cars\admin_dashboard.html
================================================================================

<!-- cars/templates/cars/admin_dashboard.html -->
{% extends 'cars/base.html' %}
{% load custom_filters %}

{% block page_title %}داشبورد مدیریت{% endblock %}

{% block content %}
<!-- Statistics Row -->
<div class="row mb-4">
    <div class="col-xl-2 col-md-4 col-6 mb-3">
        <div class="card h-100">
            <div class="card-body text-center">
                <div class="stat-card">
                    <i class="fas fa-users fa-2x text-primary mb-3"></i>
                    <h4 class="fw-bold">{{ users_count|default:0 }}</h4>
                    <p class="text-muted mb-0">کاربران</p>
                </div>
            </div>
        </div>
    </div>
    
    <div class="col-xl-2 col-md-4 col-6 mb-3">
        <div class="card h-100">
            <div class="card-body text-center">
                <div class="stat-card">
                    <i class="fas fa-car fa-2x text-success mb-3"></i>
                    <h4 class="fw-bold">{{ cars_count|default:0 }}</h4>
                    <p class="text-muted mb-0">خودروها</p>
                </div>
            </div>
        </div>
    </div>
    
    <div class="col-xl-2 col-md-4 col-6 mb-3">
        <div class="card h-100">
            <div class="card-body text-center">
                <div class="stat-card">
                    <i class="fas fa-clipboard-check fa-2x text-warning mb-3"></i>
                    <h4 class="fw-bold">{{ inspections_count|default:0 }}</h4>
                    <p class="text-muted mb-0">بازرسی‌ها</p>
                </div>
            </div>
        </div>
    </div>
    
    <div class="col-xl-2 col-md-4 col-6 mb-3">
        <div class="card h-100">
            <div class="card-body text-center">
                <div class="stat-card">
                    <i class="fas fa-cube fa-2x text-info mb-3"></i>
                    <h4 class="fw-bold">{{ items_count|default:0 }}</h4>
                    <p class="text-muted mb-0">قطعات</p>
                </div>
            </div>
        </div>
    </div>
    
    <div class="col-xl-2 col-md-4 col-6 mb-3">
        <div class="card h-100">
            <div class="card-body text-center">
                <div class="stat-card">
                    <i class="fas fa-check-circle fa-2x text-success mb-3"></i>
                    <h4 class="fw-bold">{{ approved_cars_count|default:0 }}</h4>
                    <p class="text-muted mb-0">تأیید شده</p>
                </div>
            </div>
        </div>
    </div>
    
    <div class="col-xl-2 col-md-4 col-6 mb-3">
        <div class="card h-100">
            <div class="card-body text-center">
                <div class="stat-card">
                    <i class="fas fa-clock fa-2x text-secondary mb-3"></i>
                    <h4 class="fw-bold">{{ pending_cars_count|default:0 }}</h4>
                    <p class="text-muted mb-0">در انتظار</p>
                </div>
            </div>
        </div>
    </div>
</div>

<div class="row">
    <!-- Recent Activity -->
    <div class="col-lg-8">
        <!-- Recent Cars -->
        <div class="card mb-4">
            <div class="card-header d-flex justify-content-between align-items-center">
                <h6 class="mb-0 fw-bold">آخرین خودروها</h6>
                <a href="{% url 'admin_cars' %}" class="btn btn-sm btn-outline-primary">
                    <i class="fas fa-list me-1"></i>مشاهده همه
                </a>
            </div>
            <div class="card-body">
                <div class="table-responsive">
                    <table class="table table-hover">
                        <thead>
                            <tr>
                                <th>پلاک</th>
                                <th>مالک</th>
                                <th>نوع</th>
                                <th>کاربر</th>
                                <th>وضعیت</th>
                                <th>تاریخ</th>
                            </tr>
                        </thead>
                        <tbody>
                            {% for car in recent_cars %}
                            <tr>
                                <td class="fw-medium">{{ car.plate_number }}</td>
                                <td>{{ car.owner_name }}</td>
                                <td>{{ car.car_type.type_name }}</td>
                                <td class="text-sm">{{ car.user.get_full_name|default:car.user.username }}</td>
                                <td>
                                    <span class="badge 
                                        {% if car.status == 'approved' %}bg-success
                                        {% elif car.status == 'rejected' %}bg-danger
                                        {% elif car.status == 'inspection' %}bg-warning text-dark
                                        {% elif car.status == 'finance' %}bg-info
                                        {% elif car.status == 'manager' %}bg-primary
                                        {% else %}bg-secondary{% endif %}">
                                        {{ car.get_status_display }}
                                    </span>
                                </td>
                                <td class="text-muted text-sm">{{ car.created_at|date:"Y/m/d" }}</td>
                            </tr>
                            {% empty %}
                            <tr>
                                <td colspan="6" class="text-center text-muted py-4">
                                    <i class="fas fa-car fa-2x mb-3 text-muted"></i>
                                    <p class="mb-0">خودرویی یافت نشد</p>
                                </td>
                            </tr>
                            {% endfor %}
                        </tbody>
                    </table>
                </div>
            </div>
        </div>

        <!-- System Logs -->
        <div class="card">
            <div class="card-header d-flex justify-content-between align-items-center">
                <h6 class="mb-0 fw-bold">فعالیت‌های اخیر سیستم</h6>
                <a href="{% url 'admin_logs' %}" class="btn btn-sm btn-outline-primary">
                    <i class="fas fa-history me-1"></i>مشاهده همه
                </a>
            </div>
            <div class="card-body">
                <div class="table-responsive">
                    <table class="table table-hover">
                        <thead>
                            <tr>
                                <th>کاربر</th>
                                <th>عملیات</th>
                                <th>توضیحات</th>
                                <th>زمان</th>
                            </tr>
                        </thead>
                        <tbody>
                            {% for log in recent_logs %}
                            <tr>
                                <td class="fw-medium">{{ log.user.get_full_name|default:log.user.username }}</td>
                                <td>{{ log.action }}</td>
                                <td class="text-sm text-muted">{{ log.description|truncatechars:50 }}</td>
                                <td class="text-muted text-sm">{{ log.created_at|timesince }} قبل</td>
                            </tr>
                            {% empty %}
                            <tr>
                                <td colspan="4" class="text-center text-muted py-4">
                                    <i class="fas fa-history fa-2x mb-3 text-muted"></i>
                                    <p class="mb-0">هیچ فعالیتی یافت نشد</p>
                                </td>
                            </tr>
                            {% endfor %}
                        </tbody>
                    </table>
                </div>
            </div>
        </div>
    </div>
    
    <!-- Quick Actions & System Info -->
    <div class="col-lg-4">
        <!-- Quick Actions -->
        <div class="card mb-4">
            <div class="card-header">
                <h6 class="mb-0 fw-bold">دسترسی سریع</h6>
            </div>
            <div class="card-body">
                <div class="d-grid gap-2">
                    <!-- دکمه جدید برای مدیر سیستم -->
                    {% if user.user_type == 'manager' %}
                    <a href="{% url 'manager_approval_list' %}" class="btn btn-outline-warning btn-sm d-flex align-items-center justify-content-start">
                        <i class="fas fa-check-double me-2"></i>
                        <span>تأیید خودروها (مدیر)</span>
                        {% if pending_manager_count %}
                        <span class="badge bg-danger ms-auto">{{ pending_manager_count }}</span>
                        {% endif %}
                    </a>
                    {% endif %}
                    
                    <a href="{% url 'admin_users' %}" class="btn btn-outline-primary btn-sm d-flex align-items-center justify-content-start">
                        <i class="fas fa-users me-2"></i>
                        <span>مدیریت کاربران</span>
                    </a>
                    <a href="{% url 'admin_items' %}" class="btn btn-outline-primary btn-sm d-flex align-items-center justify-content-start">
                        <i class="fas fa-cube me-2"></i>
                        <span>مدیریت قطعات</span>
                    </a>
                    <a href="{% url 'admin_cars' %}" class="btn btn-outline-primary btn-sm d-flex align-items-center justify-content-start">
                        <i class="fas fa-car me-2"></i>
                        <span>مدیریت خودروها</span>
                    </a>
                    <a href="{% url 'admin_logs' %}" class="btn btn-outline-primary btn-sm d-flex align-items-center justify-content-start">
                        <i class="fas fa-history me-2"></i>
                        <span>مشاهده لاگ‌ها</span>
                    </a>
                </div>
            </div>
        </div>
        
        <!-- System Status -->
        <div class="card mb-4">
            <div class="card-header">
                <h6 class="mb-0 fw-bold">وضعیت سیستم</h6>
            </div>
            <div class="card-body">
                <div class="d-flex justify-content-between align-items-center mb-3 pb-2 border-bottom">
                    <span class="text-muted">تعداد کاربران:</span>
                    <strong class="text-primary">{{ users_count|default:0 }}</strong>
                </div>
                <div class="d-flex justify-content-between align-items-center mb-3 pb-2 border-bottom">
                    <span class="text-muted">خودروهای امروز:</span>
                    <strong class="text-success">{{ today_cars_count|default:0 }}</strong>
                </div>
                <div class="d-flex justify-content-between align-items-center mb-3 pb-2 border-bottom">
                    <span class="text-muted">بازرسی‌های امروز:</span>
                    <strong class="text-warning">{{ today_inspections_count|default:0 }}</strong>
                </div>
                
                <!-- اضافه کردن وضعیت خودروهای در انتظار تأیید مدیر -->
                {% if user.user_type == 'manager' %}
                <div class="d-flex justify-content-between align-items-center mb-3 pb-2 border-bottom">
                    <span class="text-muted">در انتظار تأیید:</span>
                    <strong class="text-danger">{{ pending_manager_count|default:0 }}</strong>
                </div>
                {% endif %}
                
                <div class="d-flex justify-content-between align-items-center">
                    <span class="text-muted">وضعیت:</span>
                    <span class="badge bg-success">
                        <i class="fas fa-check-circle me-1"></i>فعال
                    </span>
                </div>
            </div>
        </div>

        <!-- User Distribution -->
        <div class="card">
            <div class="card-header">
                <h6 class="mb-0 fw-bold">توزیع کاربران</h6>
            </div>
            <div class="card-body">
                {% for user_type in user_distribution %}
                <div class="d-flex justify-content-between align-items-center mb-3 pb-2 {% if not forloop.last %}border-bottom{% endif %}">
                    <span class="text-sm">{{ user_type.user_type__display }}</span>
                    <span class="badge bg-secondary">{{ user_type.count }}</span>
                </div>
                {% empty %}
                <div class="text-center text-muted py-3">
                    <i class="fas fa-users fa-lg mb-2 d-block text-muted"></i>
                    <p class="mb-0">اطلاعاتی موجود نیست</p>
                </div>
                {% endfor %}
            </div>
        </div>
    </div>
</div>

<style>
.stat-card {
    padding: 1rem 0;
}

.stat-card i {
    font-size: 2rem;
    margin-bottom: 1rem;
}

.stat-card h4 {
    font-size: 1.75rem;
    margin-bottom: 0.5rem;
}

.stat-card p {
    font-size: 0.875rem;
}

/* Hover effects for cards */
.card {
    transition: all 0.3s ease;
}

.card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.12);
}

/* Badge styles */
.badge {
    font-size: 0.75rem;
    padding: 0.35rem 0.65rem;
}

/* Table improvements */
.table th {
    font-weight: 600;
    font-size: 0.875rem;
}

.table td {
    font-size: 0.875rem;
    vertical-align: middle;
}

/* Button improvements */
.btn {
    border-radius: 8px;
    font-weight: 500;
}

.btn-sm {
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .stat-card h4 {
        font-size: 1.5rem;
    }
    
    .stat-card i {
        font-size: 1.75rem;
    }
}
</style>
{% endblock %}

================================================================================
FILE: cars\templates\cars\admin_items.html
================================================================================

{% extends 'cars/base.html' %}
{% load custom_filters %}

{% block title %}مدیریت اقلام{% endblock %}

{% block content %}
<div class="page-header">
    <h1>مدیریت اقلام خودرو</h1>
    <p>مدیریت اقلام و قطعات خودرو برای بازرسی</p>
</div>

<div class="card">
    <div class="card-header">
        <h2>افزودن قلم جدید</h2>
    </div>
    <div class="card-body">
        <form method="POST">
            {% csrf_token %}
            <div class="form-row">
                <div class="form-group">
                    <label class="form-label">نام قلم <span style="color: var(--danger);">*</span></label>
                    <input type="text" class="form-control" name="name" required>
                </div>
                <div class="form-group">
                    <label class="form-label">دسته‌بندی <span style="color: var(--danger);">*</span></label>
                    <select class="form-control" name="category" required>
                        <option value="essential">ضروری</option>
                        <option value="optional">اختیاری</option>
                    </select>
                </div>
            </div>
            <div class="form-row">
                <div class="form-group">
                    <label class="form-label">قیمت (ریال) <span style="color: var(--danger);">*</span></label>
                    <input type="number" class="form-control" name="price" min="0" step="1000" required>
                </div>
                <div class="form-group">
                    <label class="form-label">نوع خودرو</label>
                    <input type="text" class="form-control" name="car_type" value="general">
                </div>
            </div>
            <div class="form-group">
                <label class="form-label">
                    <input type="checkbox" name="is_active" checked> فعال
                </label>
            </div>
            <button type="submit" class="btn btn-success">افزودن قلم</button>
        </form>
    </div>
</div>

<div class="card">
    <div class="card-header">
        <h2>لیست اقلام</h2>
    </div>
    <div class="card-body">
        {% if items %}
            <table class="table">
                <thead>
                    <tr>
                        <th>ردیف</th>
                        <th>نام قلم</th>
                        <th>دسته‌بندی</th>
                        <th>قیمت</th>
                        <th>نوع خودرو</th>
                        <th>وضعیت</th>
                        <th>عملیات</th>
                    </tr>
                </thead>
                <tbody>
                    {% for item in items %}
                    <tr>
                        <td>{{ forloop.counter }}</td>
                        <td>{{ item.name }}</td>
                        <td>
                            {% if item.category == 'essential' %}
                                <span style="color: var(--danger); font-weight: 500;">ضروری</span>
                            {% else %}
                                <span style="color: var(--warning); font-weight: 500;">اختیاری</span>
                            {% endif %}
                        </td>
                        <td>{{ item.price|floatformat:0 }} ریال</td>
                        <td>
                            <span style="background: var(--info); color: white; padding: 0.25rem 0.5rem; border-radius: 4px; font-size: 0.75rem;">
                                {{ item.car_type }}
                            </span>
                        </td>
                        <td>
                            {% if item.is_active %}
                                <span class="status-badge status-approved">فعال</span>
                            {% else %}
                                <span class="status-badge status-rejected">غیرفعال</span>
                            {% endif %}
                        </td>
                        <td>
                            <a href="{% url 'edit_item' item.id %}" class="btn btn-primary btn-sm">ویرایش</a>
                            <a href="{% url 'delete_item' item.id %}" class="btn btn-danger btn-sm" onclick="return confirm('آیا از حذف این قلم مطمئن هستید؟')">حذف</a>
                        </td>
                    </tr>
                    {% endfor %}
                </tbody>
            </table>
        {% else %}
            <div class="empty-state">
                <p>هیچ قلمی ثبت نشده است</p>
            </div>
        {% endif %}
    </div>
</div>
{% endblock %}

================================================================================
FILE: cars\templates\cars\admin_logs.html
================================================================================

{% extends 'cars/base.html' %}

{% block title %}لاگ سیستم{% endblock %}

{% block content %}
<div class="page-header">
    <h1>لاگ سیستم</h1>
    <p>مشاهده فعالیت‌های انجام شده در سیستم</p>
</div>

<div class="card">
    <div class="card-header">
        <h2>لاگ‌های سیستم</h2>
    </div>
    <div class="card-body">
        {% if logs %}
            <div>
                {% for log in logs %}
                <div style="padding: 1rem; border-bottom: 1px solid var(--dark-border);">
                    <div style="font-weight: 600; color: var(--dark-text);">{{ log.action }}</div>
                    <div style="color: var(--dark-text-secondary); font-size: 0.9rem; margin-top: 0.25rem;">{{ log.description }}</div>
                    <div style="display: flex; gap: 1rem; margin-top: 0.5rem; font-size: 0.8rem; color: var(--dark-text-secondary);">
                        <span>کاربر: {{ log.user.first_name }} {{ log.user.last_name }}</span>
                        <span>تاریخ: {{ log.created_at|date:"Y/m/d H:i" }}</span>
                        <span>IP: {{ log.ip_address }}</span>
                    </div>
                </div>
                {% endfor %}
            </div>
        {% else %}
            <div class="empty-state">
                <p>هیچ لاگی در سیستم ثبت نشده است</p>
            </div>
        {% endif %}
    </div>
</div>
{% endblock %}

================================================================================
FILE: cars\templates\cars\admin_users.html
================================================================================

{% extends 'cars/base.html' %}

{% block title %}مدیریت کاربران{% endblock %}

{% block content %}
<div class="container mt-4">
    <div class="page-header">
        <h1><i class="fas fa-users"></i> مدیریت کاربران</h1>
    </div>
    
    <div class="card">
        <div class="card-header">
            <h5 class="mb-0">لیست کاربران سیستم</h5>
        </div>
        <div class="card-body">
            <div class="table-responsive">
                <table class="table table-striped">
                    <thead>
                        <tr>
                            <th>نام کاربری</th>
                            <th>نام کامل</th>
                            <th>نقش</th>
                            <th>استان</th>
                            <th>تاریخ ثبت</th>
                        </tr>
                    </thead>
                    <tbody>
                        {% for user in users %}
                        <tr>
                            <td>{{ user.username }}</td>
                            <td>{{ user.get_full_name }}</td>
                            <td>{{ user.get_user_type_display }}</td>
                            <td>{{ user.province }}</td>
                            <td>{{ user.created_at|date:"Y/m/d" }}</td>
                        </tr>
                        {% endfor %}
                    </tbody>
                </table>
            </div>
        </div>
    </div>
</div>
{% endblock %}

================================================================================
FILE: cars\templates\cars\base.html
================================================================================

<!-- cars/templates/cars/base.html -->
<!DOCTYPE html>
<html lang="fa" dir="rtl">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>{% block title %}سامانه مدیریت خودرو | Car Management System{% endblock %}</title>
    
    <!-- Bootstrap 5.3 RTL -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.rtl.min.css" rel="stylesheet">
    
    <!-- Font Awesome -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    
    <!-- Google Fonts -->
    <link href="https://fonts.googleapis.com/css2?family=Vazirmatn:wght@300;400;500;600;700&display=swap" rel="stylesheet">
    
    <!-- Custom CSS -->
    <style>
        :root {
            --primary-color: #6f7da9;
            --primary-dark: #1a4a5b;
            --secondary-color: #6c757d;
            --success-color: #28a745;
            --warning-color: #ffc107;
            --danger-color: #dc3545;
            --light-bg: #f8f9fa;
            --dark-bg: #1a1d23;
            --border-color: #dee2e6;
            --sidebar-width: 280px;
        }

        [data-theme="dark"] {
            --light-bg: #1a1d23;
            --dark-bg: #0f1117;
            --border-color: #343a40;
        }

        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            font-family: 'Vazirmatn', 'Tahoma', sans-serif;
            background-color: var(--light-bg);
            color: #333;
            line-height: 1.6;
            transition: background-color 0.3s ease;
        }

        [data-theme="dark"] body {
            background-color: var(--dark-bg);
            color: #f8f9fa;
        }

        /* Layout */
        .app-container {
            display: flex;
            min-height: 100vh;
        }

        /* Sidebar */
        .sidebar {
            width: var(--sidebar-width);
            background: linear-gradient(180deg, var(--primary-color) 0%, var(--primary-dark) 100%);
            color: white;
            position: fixed;
            height: 100vh;
            overflow-y: auto;
            transition: all 0.3s ease;
            z-index: 1000;
        }

        .sidebar-header {
            padding: 2rem 1.5rem 1rem;
            border-bottom: 1px solid rgba(255,255,255,0.1);
        }

        .sidebar-nav {
            padding: 1rem 0;
        }

        .nav-item {
            margin: 0.25rem 1rem;
        }

        .nav-link {
            color: rgba(255,255,255,0.9);
            padding: 0.75rem 1rem;
            border-radius: 8px;
            transition: all 0.3s ease;
            display: flex;
            align-items: center;
            text-decoration: none;
        }

        .nav-link:hover,
        .nav-link.active {
            background: rgba(255,255,255,0.15);
            color: white;
            transform: translateX(-5px);
        }

        .nav-link i {
            width: 20px;
            margin-left: 10px;
        }

        .badge {
            font-size: 0.7em;
            margin-left: auto;
        }

        /* Main Content */
        .main-content {
            flex: 1;
            margin-right: var(--sidebar-width);
            min-height: 100vh;
            display: flex;
            flex-direction: column;
        }

        /* Top Bar */
        .top-bar {
            background: white;
            border-bottom: 1px solid var(--border-color);
            padding: 1rem 2rem;
            box-shadow: 0 2px 4px rgba(0,0,0,0.1);
        }

        [data-theme="dark"] .top-bar {
            background: var(--dark-bg);
            border-bottom-color: var(--border-color);
        }

        .page-title {
            font-size: 1.5rem;
            font-weight: 600;
            color: var(--primary-color);
            margin: 0;
        }

        [data-theme="dark"] .page-title {
            color: #fff;
        }

        /* Content Area */
        .content-area {
            flex: 1;
            padding: 2rem;
            background-color: var(--light-bg);
        }

        [data-theme="dark"] .content-area {
            background-color: var(--dark-bg);
        }

        /* Cards */
        .card {
            background: white;
            border: 1px solid var(--border-color);
            border-radius: 12px;
            box-shadow: 0 2px 8px rgba(0,0,0,0.08);
            margin-bottom: 1.5rem;
            transition: all 0.3s ease;
        }

        [data-theme="dark"] .card {
            background: #252a32;
            border-color: var(--border-color);
        }

        .card:hover {
            box-shadow: 0 4px 12px rgba(0,0,0,0.12);
            transform: translateY(-2px);
        }

        .card-header {
            background: transparent;
            border-bottom: 1px solid var(--border-color);
            padding: 1.25rem 1.5rem;
            font-weight: 600;
        }

        .card-body {
            padding: 1.5rem;
        }

        /* Buttons */
        .btn {
            border-radius: 8px;
            padding: 0.75rem 1.5rem;
            font-weight: 500;
            transition: all 0.3s ease;
            border: none;
        }

        .btn-primary {
            background: var(--primary-color);
        }

        .btn-primary:hover {
            background: var(--primary-dark);
            transform: translateY(-1px);
            box-shadow: 0 4px 8px rgba(44, 90, 160, 0.3);
        }

        /* Forms */
        .form-control, .form-select {
            border: 2px solid var(--border-color);
            border-radius: 8px;
            padding: 0.75rem 1rem;
            transition: all 0.3s ease;
        }

        .form-control:focus, .form-select:focus {
            border-color: var(--primary-color);
            box-shadow: 0 0 0 0.2rem rgba(44, 90, 160, 0.15);
        }

        /* Progress Stepper - برای ثبت خودرو */
        .stepper {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin: 2rem 0;
            position: relative;
        }

        .stepper::before {
            content: '';
            position: absolute;
            top: 50%;
            left: 0;
            right: 0;
            height: 2px;
            background: var(--border-color);
            z-index: 1;
        }

        .step {
            position: relative;
            z-index: 2;
            background: white;
            border: 2px solid var(--border-color);
            border-radius: 50%;
            width: 40px;
            height: 40px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: 600;
            transition: all 0.3s ease;
        }

        [data-theme="dark"] .step {
            background: #252a32;
        }

        .step.active {
            border-color: var(--primary-color);
            background: var(--primary-color);
            color: white;
        }

        .step.completed {
            border-color: var(--success-color);
            background: var(--success-color);
            color: white;
        }

        .step-label {
            position: absolute;
            top: 100%;
            margin-top: 0.5rem;
            font-size: 0.875rem;
            white-space: nowrap;
        }

        /* Tables */
        .table {
            border-radius: 8px;
            overflow: hidden;
        }

        .table th {
            background: var(--primary-color);
            color: white;
            border: none;
            padding: 1rem;
            font-weight: 600;
        }

        .table td {
            padding: 1rem;
            vertical-align: middle;
            border-color: var(--border-color);
        }

        /* Alerts */
        .alert {
            border: none;
            border-radius: 8px;
            padding: 1rem 1.5rem;
            margin-bottom: 1rem;
        }

        .alert-success {
            background: #d4edda;
            color: #155724;
        }

        .alert-danger {
            background: #f8d7da;
            color: #721c24;
        }

        [data-theme="dark"] .alert-success {
            background: #155724;
            color: #d4edda;
        }

        [data-theme="dark"] .alert-danger {
            background: #721c24;
            color: #f8d7da;
        }

        /* Utility Classes */
        .shadow-sm { box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
        .border-radius { border-radius: 8px; }
        .text-muted { color: #6c757d !important; }

        [data-theme="dark"] .text-muted {
            color: #adb5bd !important;
        }

        /* Responsive */
        @media (max-width: 768px) {
            .sidebar {
                transform: translateX(-100%);
            }
            
            .sidebar.show {
                transform: translateX(0);
            }
            
            .main-content {
                margin-right: 0;
            }
            
            .content-area {
                padding: 1rem;
            }
        }

        /* Loading States */
        .loading {
            opacity: 0.6;
            pointer-events: none;
        }

        .spinner {
            width: 2rem;
            height: 2rem;
            border: 3px solid transparent;
            border-top: 3px solid var(--primary-color);
            border-radius: 50%;
            animation: spin 1s linear infinite;
        }

        @keyframes spin {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }
    </style>
</head>
<body>
    <div class="app-container">
        <!-- Sidebar -->
        <aside class="sidebar">
            <div class="sidebar-header">
                <h4 class="mb-2">
                    <i class="fas fa-car me-2"></i>
                    سامانه خودرو
                </h4>
                <small class="text-white-50">Car Management System</small>
            </div>

            <nav class="sidebar-nav">
                <div class="nav-item">
                    <a class="nav-link {% if request.resolver_match.url_name == 'dashboard' %}active{% endif %}" 
                       href="{% url 'dashboard' %}">
                        <i class="fas fa-chart-line"></i>
                        داشبورد
                    </a>
                </div>
                
                {% if user.is_authenticated %}
                    {% if user.user_type == 'customer' %}
                    <div class="nav-item">
                        <a class="nav-link" href="{% url 'start_sale' %}">
                            <i class="fas fa-plus-circle"></i>
                            ثبت خودرو جدید
                        </a>
                    </div>
                    {% endif %}
                    
                    <div class="nav-item">
                        <a class="nav-link" href="{% url 'cars_list' %}">
                            <i class="fas fa-car-side"></i>
                            مدیریت خودروها
                            <span class="badge bg-light text-primary">15</span>
                        </a>
                    </div>
                    
                    {% if user.is_authenticated and user.user_type == 'inspector' %}
                        <div class="nav-item">
                            <a class="nav-link {% if request.resolver_match.url_name == 'pending_inspections' %}active{% endif %}" 
                               href="{% url 'pending_inspections' %}">
                                <i class="fas fa-clock"></i>
                                خودروهای در انتظار بازرسی
                            </a>
                        </div>
                        <div class="nav-item">
                            <a class="nav-link {% if request.resolver_match.url_name == 'inspection_list' %}active{% endif %}" 
                               href="{% url 'inspection_list' %}">
                                <i class="fas fa-history"></i>
                                تاریخچه بازرسی‌ها
                            </a>
                        </div>
                        {% endif %}
                    
                    {% if user.user_type == 'finance' %}
                    <div class="nav-item">
                        <a class="nav-link" href="{% url 'finance_list' %}">
                            <i class="fas fa-calculator"></i>
                            امور مالی
                            <span class="badge bg-success">8</span>
                        </a>
                    </div>
                    {% endif %}
                    
                    {% if user.user_type == 'manager' or user.is_superuser %}
                    <div class="nav-item">
                        <a class="nav-link" href="{% url 'admin_dashboard' %}">
                            <i class="fas fa-cogs"></i>
                            مدیریت سیستم
                        </a>
                    </div>
                    {% endif %}
                {% endif %}
            </nav>

            <!-- User Info -->
            {% if user.is_authenticated %}
            <div class="mt-auto p-3 border-top border-white-10">
                <div class="d-flex align-items-center">
                    <div class="flex-shrink-0">
                        <i class="fas fa-user-circle fa-2x text-white-50"></i>
                    </div>
                    <div class="flex-grow-1 me-3">
                        <div class="text-white small">{{ user.get_full_name }}</div>
                        <div class="text-white-50 small">{{ user.get_user_type_display }}</div>
                    </div>
                </div>
            </div>
            {% endif %}
        </aside>

        <!-- Main Content -->
        <main class="main-content">
            <!-- Top Bar -->
            <header class="top-bar">
                <div class="d-flex justify-content-between align-items-center">
                    <div class="d-flex align-items-center">
                        <button class="btn btn-outline-primary d-md-none me-3" id="sidebarToggle">
                            <i class="fas fa-bars"></i>
                        </button>
                        <h1 class="page-title">{% block page_title %}داشبورد مدیریت{% endblock %}</h1>
                    </div>
                    
                    <div class="d-flex align-items-center">
                        <!-- Theme Toggle -->
                        <button class="btn btn-outline-secondary me-2" id="themeToggle">
                            <i class="fas fa-moon"></i>
                        </button>
                        
                        <!-- Notifications -->
                        <div class="dropdown me-3">
                            <button class="btn btn-outline-secondary position-relative" data-bs-toggle="dropdown">
                                <i class="fas fa-bell"></i>
                                <span class="position-absolute top-0 start-100 translate-middle badge rounded-pill bg-danger">
                                    3
                                </span>
                            </button>
                            <ul class="dropdown-menu dropdown-menu-end">
                                <li><h6 class="dropdown-header">اعلان‌های اخیر</h6></li>
                                <li><a class="dropdown-item" href="#">خودرو جدید ثبت شد</a></li>
                                <li><a class="dropdown-item" href="#">بازرسی تکمیل شد</a></li>
                                <li><a class="dropdown-item" href="#">پرداخت جدید</a></li>
                            </ul>
                        </div>

                        <!-- User Menu -->
                        {% if user.is_authenticated %}
                        <div class="dropdown">
                            <button class="btn btn-outline-primary dropdown-toggle" data-bs-toggle="dropdown">
                                <i class="fas fa-user me-2"></i>
                                {{ user.get_full_name }}
                            </button>
                            <ul class="dropdown-menu dropdown-menu-end">
                                <li><a class="dropdown-item" href="{% url 'dashboard' %}"><i class="fas fa-tachometer-alt me-2"></i>داشبورد</a></li>
                                <li><a class="dropdown-item" href="#"><i class="fas fa-user me-2"></i>پروفایل کاربری</a></li>
                                <li><a class="dropdown-item" href="#"><i class="fas fa-cog me-2"></i>تنظیمات</a></li>
                                <li><hr class="dropdown-divider"></li>
                                <li><a class="dropdown-item text-danger" href="{% url 'logout' %}"><i class="fas fa-sign-out-alt me-2"></i>خروج از سیستم</a></li>
                            </ul>
                        </div>
                        {% else %}
                        <a href="{% url 'login' %}" class="btn btn-primary">
                            <i class="fas fa-sign-in-alt me-2"></i>ورود به سیستم
                        </a>
                        {% endif %}
                    </div>
                </div>
            </header>

            <!-- Content Area -->
            <div class="content-area">
                <!-- Messages -->
                {% if messages %}
                <div class="messages">
                    {% for message in messages %}
                    <div class="alert alert-{{ message.tags }} alert-dismissible fade show" role="alert">
                        <div class="d-flex align-items-center">
                            <i class="fas 
                                {% if message.tags == 'success' %}fa-check-circle
                                {% elif message.tags == 'error' %}fa-exclamation-circle
                                {% elif message.tags == 'warning' %}fa-exclamation-triangle
                                {% else %}fa-info-circle{% endif %} me-2">
                            </i>
                            <span>{{ message }}</span>
                        </div>
                        <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
                    </div>
                    {% endfor %}
                </div>
                {% endif %}

                <!-- Page Content -->
                {% block content %}{% endblock %}
            </div>
        </main>
    </div>

    <!-- JavaScript -->
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
    
    <script>
        // Theme Management
        const themeToggle = document.getElementById('themeToggle');
        const currentTheme = localStorage.getItem('theme') || 'light';
        
        document.documentElement.setAttribute('data-theme', currentTheme);
        updateThemeIcon(currentTheme);
        
        themeToggle.addEventListener('click', () => {
            const currentTheme = document.documentElement.getAttribute('data-theme');
            const newTheme = currentTheme === 'light' ? 'dark' : 'light';
            
            document.documentElement.setAttribute('data-theme', newTheme);
            localStorage.setItem('theme', newTheme);
            updateThemeIcon(newTheme);
        });
        
        function updateThemeIcon(theme) {
            const icon = themeToggle.querySelector('i');
            icon.className = theme === 'light' ? 'fas fa-moon' : 'fas fa-sun';
        }

        // Sidebar Toggle for Mobile
        const sidebarToggle = document.getElementById('sidebarToggle');
        const sidebar = document.querySelector('.sidebar');
        
        sidebarToggle.addEventListener('click', () => {
            sidebar.classList.toggle('show');
        });

        // Auto-dismiss alerts
        setTimeout(() => {
            const alerts = document.querySelectorAll('.alert');
            alerts.forEach(alert => {
                const bsAlert = new bootstrap.Alert(alert);
                bsAlert.close();
            });
        }, 5000);

        // Form Submission Handling
        document.addEventListener('DOMContentLoaded', function() {
            const forms = document.querySelectorAll('form');
            forms.forEach(form => {
                form.addEventListener('submit', function(e) {
                    const submitBtn = this.querySelector('button[type="submit"]');
                    if (submitBtn) {
                        submitBtn.disabled = true;
                        submitBtn.innerHTML = '<div class="spinner me-2"></div> در حال پردازش...';
                    }
                });
            });
        });

        // Stepper Functionality - برای ثبت خودرو
        function initializeStepper(steps, currentStep) {
            const stepperContainer = document.querySelector('.stepper');
            if (!stepperContainer) return;

            steps.forEach((step, index) => {
                const stepElement = document.createElement('div');
                stepElement.className = 'step';
                stepElement.innerHTML = `
                    ${index + 1}
                    <div class="step-label">${step}</div>
                `;

                if (index < currentStep) {
                    stepElement.classList.add('completed');
                } else if (index === currentStep) {
                    stepElement.classList.add('active');
                }

                stepperContainer.appendChild(stepElement);
            });
        }

        // Sample usage in your car registration pages:
        // initializeStepper(['اطلاعات پایه', 'مشخصات فنی', 'تصاویر', 'تأیید نهایی'], 0);
    </script>
    
    {% block extra_scripts %}{% endblock %}
</body>
</html>

================================================================================
FILE: cars\templates\cars\cars_list.html
================================================================================

{% extends 'cars/base.html' %}
{% load custom_filters %}
{% block title %}خودروهای من{% endblock %}
{% block content %}
<div class="page-header">
    <h1>خودروهای ثبت‌شده</h1>
</div>

{% if cars %}
<table class="table">
    <thead>
        <tr>
            <th>پلاک</th>
            <th>مالک</th>
            <th>قیمت پایه</th>
            <th>وضعیت</th>
        </tr>
    </thead>
    <tbody>
        {% for car in cars %}
        <tr>
            <td>{{ car.plate_number }}</td>
            <td>{{ car.owner_name }}</td>
            <td>{{ car.base_price|floatformat:0 }} ریال</td>
            <td>
                <span class="badge bg-success">{% if car.status == 'approved' %}تأیید شد{% elif car.status == 'rejected' %}رد شد{% else %}{{ car.get_status_display }}{% endif %}</span>
            </td>
        </tr>
        {% endfor %}
    </tbody>
</table>
{% else %}
<div class="alert alert-info">هیچ خودرویی ثبت نشده است.</div>
{% endif %}

<a href="{% url 'car_info' %}" class="btn btn-primary">ثبت خودرو جدید</a>
{% endblock %}

================================================================================
FILE: cars\templates\cars\car_info.html
================================================================================

{% extends 'cars/base.html' %}

{% block page_title %}ثبت خودرو - مرحله ۲{% endblock %}

{% block content %}
<div class="row mb-4">
    <div class="col-12">
        <div class="d-flex justify-content-between align-items-center mb-4">
            <div>
                <h1 class="h3 mb-1">ثبت خودرو جدید</h1>
                <p class="text-muted mb-0">اطلاعات خودرو را در مراحل زیر وارد کنید</p>
            </div>
        </div>
    </div>
</div>

<!-- Stepper -->
<div class="card mb-4">
    <div class="card-body">
        <div class="stepper">
            <!-- Steps will be initialized by JavaScript -->
        </div>
    </div>
</div>

{% if request.session.current_chassis %}
<div class="card mb-4">
    <div class="card-header bg-light">
        <h5 class="mb-0 fw-bold text-primary">
            <i class="fas fa-clipboard-check me-2"></i>
            خلاصه اطلاعات ثبت شده
        </h5>
    </div>
    <div class="card-body">
        <div class="row">
            <!-- ستون اول -->
            <div class="col-md-4">
                <div class="d-flex justify-content-between align-items-center border-bottom pb-2 mb-2">
                    <span class="fw-medium text-muted">شماره بدنه:</span>
                    <span class="fw-bold text-primary">{{ request.session.current_chassis }}</span>
                </div>
            </div>
            <!-- ستون‌های دوم و سوم برای اطلاعات اضافی در مراحل بعد -->
        </div>
    </div>
</div>
{% endif %}

<div class="card">
    <div class="card-header">
        <h5 class="mb-0 fw-bold">اطلاعات خودرو</h5>
    </div>
    <div class="card-body">
        <form method="POST">
            {% csrf_token %}
            
            <div class="row mb-3">
                <div class="col-md-6">
                    <div class="mb-3">
                        <label class="form-label fw-medium">مالک (برگه سبز) <span class="text-danger">*</span></label>
                        <input type="text" class="form-control" name="owner_name" required 
                               placeholder="نام مالک خودرو را وارد کنید">
                    </div>
                </div>
                <div class="col-md-6">
                    <div class="mb-3">
                        <label class="form-label fw-medium">شماره پلاک <span class="text-danger">*</span></label>
                        <input type="text" class="form-control" name="plate_number" required 
                               placeholder="شماره پلاک را وارد کنید">
                    </div>
                </div>
            </div>

            <div class="row mb-3">
                <div class="col-md-6">
                    <div class="mb-3">
                        <label class="form-label fw-medium">شماره VIN <span class="text-danger">*</span></label>
                        <input type="text" class="form-control" name="vin" required 
                               placeholder="شماره VIN را وارد کنید">
                    </div>
                </div>
                <div class="col-md-6">
                    <div class="mb-3">
                        <label class="form-label fw-medium">سیستم خودرو <span class="text-danger">*</span></label>
                        <input type="text" class="form-control" name="system" required 
                               placeholder="سیستم خودرو را وارد کنید">
                    </div>
                </div>
            </div>

            <div class="row mb-3">
                <div class="col-md-6">
                    <div class="mb-3">
                        <label class="form-label fw-medium">نوع خودرو <span class="text-danger">*</span></label>
                        <input type="text" class="form-control" name="car_type" list="car-types" required 
                               placeholder="نوع خودرو را انتخاب کنید">
                        <datalist id="car-types">
                            <option value="پراید">
                            <option value="پژو 405">
                            <option value="پژو 206">
                            <option value="پژو پارس">
                            <option value="سمند">
                            <option value="تیبا">
                            <option value="دنا">
                            <option value="کوییک">
                        </datalist>
                    </div>
                </div>
                <div class="col-md-6">
                    <div class="mb-3">
                        <label class="form-label fw-medium">مدل ماشین <span class="text-danger">*</span></label>
                        <input type="text" class="form-control" name="model" required 
                               placeholder="مدل خودرو را وارد کنید">
                    </div>
                </div>
            </div>

            <div class="row mb-3">
                <div class="col-md-6">
                    <div class="mb-3">
                        <label class="form-label fw-medium">شماره موتور <span class="text-danger">*</span></label>
                        <input type="text" class="form-control" name="engine_number" required 
                               placeholder="شماره موتور را وارد کنید">
                    </div>
                </div>
                <div class="col-md-6">
                    <div class="mb-3">
                        <label class="form-label fw-medium">رنگ خودرو <span class="text-danger">*</span></label>
                        <input type="text" class="form-control" name="color" required 
                               placeholder="رنگ خودرو را وارد کنید">
                    </div>
                </div>
            </div>

            <div class="row mb-4">
                <div class="col-md-6">
                    <div class="mb-3">
                        <label class="form-label fw-medium">ظرفیت (نفر) <span class="text-danger">*</span></label>
                        <input type="number" class="form-control" name="capacity" min="1" max="20" value="4" required>
                    </div>
                </div>
                <div class="col-md-6">
                    <div class="mb-3">
                        <label class="form-label fw-medium">قیمت پایه (ریال) <span class="text-danger">*</span></label>
                        <input type="number" class="form-control" name="base_price" min="0" step="1000000" required 
                               placeholder="قیمت پایه را وارد کنید">
                    </div>
                </div>
            </div>

            <div class="d-flex gap-2 justify-content-end pt-3 border-top">
                <a href="{% url 'chassis_check' %}" class="btn btn-secondary">
                    <i class="fas fa-arrow-right me-2"></i>
                    بازگشت به مرحله قبل
                </a>
                <button type="submit" class="btn btn-primary">
                    <i class="fas fa-save me-2"></i>
                    ذخیره و ادامه
                </button>
            </div>
        </form>
    </div>
</div>
{% endblock %}

{% block extra_scripts %}
<script>
    // Initialize stepper for car registration
    document.addEventListener('DOMContentLoaded', function() {
        initializeStepper(['شماره بدنه', 'اطلاعات خودرو', 'خریدار و واسطه', 'پارکینگ'], 1);
    });
</script>

<style>
.form-control, .form-select {
    border-radius: 8px;
    padding: 0.75rem 1rem;
    border: 2px solid var(--border-color);
    transition: all 0.3s ease;
}

.form-control:focus, .form-select:focus {
    border-color: var(--primary-color);
    box-shadow: 0 0 0 0.2rem rgba(44, 90, 160, 0.15);
}

.form-label {
    font-weight: 500;
    margin-bottom: 0.5rem;
    color: var(--dark-text);
}

.btn {
    border-radius: 8px;
    padding: 0.75rem 1.5rem;
    font-weight: 500;
}

.card {
    border-radius: 12px;
    border: 1px solid var(--border-color);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.card-header {
    background: transparent;
    border-bottom: 1px solid var(--border-color);
    padding: 1.25rem 1.5rem;
}

.card-body {
    padding: 1.5rem;
}

.stepper {
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    padding: 0 2rem;
}

.stepper::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--border-color);
    z-index: 1;
}

.step {
    position: relative;
    z-index: 2;
    background: white;
    border: 2px solid var(--border-color);
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    transition: all 0.3s ease;
}

[data-theme="dark"] .step {
    background: #252a32;
}

.step.active {
    border-color: var(--primary-color);
    background: var(--primary-color);
    color: white;
}

.step.completed {
    border-color: var(--success-color);
    background: var(--success-color);
    color: white;
}

.step-label {
    position: absolute;
    top: 100%;
    margin-top: 0.5rem;
    font-size: 0.875rem;
    white-space: nowrap;
    text-align: center;
    width: 100px;
    right: -30px;
}

@media (max-width: 768px) {
    .stepper {
        padding: 0 1rem;
    }
    
    .step-label {
        font-size: 0.75rem;
        width: 80px;
        right: -20px;
    }
}
</style>
{% endblock %}

================================================================================
FILE: cars\templates\cars\car_register.html
================================================================================

<h2>ثبت خودرو</h2>
<form method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">ثبت</button>
</form>


================================================================================
FILE: cars\templates\cars\chassis_check.html
================================================================================

{% extends 'cars/base.html' %}

{% block page_title %}ثبت خودرو - مرحله ۱{% endblock %}

{% block content %}
<div class="row mb-4">
    <div class="col-12">
        <div class="text-center mb-4">
            <div class="mb-3">
                <div class="registration-icon">
                    <i class="fas fa-car-side"></i>
                </div>
            </div>
            <h1 class="h2 mb-2 fw-bold text-primary">ثبت خودرو جدید</h1>
            <p class="text-muted mb-0">اطلاعات خودرو را در مراحل زیر وارد کنید</p>
        </div>
    </div>
</div>

<!-- Stepper -->
<div class="card mb-4 shadow-sm">
    <div class="card-body py-4">
        <div class="stepper">
            <!-- Steps will be initialized by JavaScript -->
        </div>
    </div>
</div>

<div class="card shadow-lg border-0">
    <div class="card-header bg-primary text-white py-3">
        <h5 class="mb-0 fw-bold text-center">
            <i class="fas fa-search-location me-2"></i>
            جستجو و بررسی شماره بدنه
        </h5>
    </div>
    <div class="card-body p-4">
        <div class="row justify-content-center">
            <div class="col-lg-8">
                <div class="info-card mb-4">
                    <div class="info-icon">
                        <i class="fas fa-info-circle"></i>
                    </div>
                    <div class="info-content">
                        <h6 class="fw-bold mb-2">قبل از ادامه مطمئن شوید:</h6>
                        <ul class="list-unstyled mb-0">
                            <li class="mb-1">
                                <i class="fas fa-check-circle text-success me-2"></i>
                                شماره بدنه یکتا باشد
                            </li>
                            <li class="mb-1">
                                <i class="fas fa-check-circle text-success me-2"></i>
                                شماره بدنه قبلاً ثبت نشده باشد
                            </li>
                            <li>
                                <i class="fas fa-check-circle text-success me-2"></i>
                                شماره بدنه معتبر باشد
                            </li>
                        </ul>
                    </div>
                </div>

                <form method="POST" class="needs-validation" novalidate>
                    {% csrf_token %}
                    
                    <div class="form-floating mb-4">
                        <input type="text" class="form-control form-control-lg" 
                               id="chassis_number" name="chassis_number" 
                               placeholder="شماره بدنه خودرو"
                               value="{{ request.session.current_chassis|default:'' }}"
                               required>
                        <label for="chassis_number" class="fw-medium">
                            <i class="fas fa-barcode me-2"></i>
                            شماره بدنه خودرو
                        </label>
                        <div class="invalid-feedback">
                            لطفاً شماره بدنه خودرو را وارد کنید
                        </div>
                        <div class="form-text text-muted mt-2">
                            <i class="fas fa-lightbulb me-2 text-warning"></i>
                            شماره بدنه معمولاً در زیر شیشه جلوی خودرو یا روی ستون درب راننده قابل مشاهده است
                        </div>
                    </div>

                    <div class="d-flex gap-3 justify-content-center pt-4 border-top">
                        <a href="{% url 'dashboard' %}" class="btn btn-outline-secondary btn-lg px-4">
                            <i class="fas fa-home me-2"></i>
                            بازگشت به داشبورد
                        </a>
                        <button type="submit" class="btn btn-primary btn-lg px-4 shadow-sm">
                            <i class="fas fa-search me-2"></i>
                            بررسی و ادامه به مرحله بعد
                        </button>
                    </div>
                </form>
            </div>
        </div>
    </div>
</div>
{% endblock %}

{% block extra_scripts %}
<script>
    // Initialize stepper for car registration
    document.addEventListener('DOMContentLoaded', function() {
        initializeStepper(['شماره بدنه', 'اطلاعات خودرو', 'خریدار و واسطه', 'پارکینگ'], 0);
        
        // Form validation
        var forms = document.querySelectorAll('.needs-validation');
        Array.prototype.slice.call(forms).forEach(function(form) {
            form.addEventListener('submit', function(event) {
                if (!form.checkValidity()) {
                    event.preventDefault();
                    event.stopPropagation();
                }
                form.classList.add('was-validated');
            }, false);
        });
    });
</script>

<style>
:root {
    --primary-color: #2c5aa0;
    --primary-light: #3a6bc0;
    --secondary-color: #6c757d;
    --success-color: #28a745;
    --warning-color: #ffc107;
    --danger-color: #dc3545;
    --light-bg: #f8f9fa;
    --border-color: #dee2e6;
    --dark-text: #212529;
    --shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.form-control, .form-select {
    border-radius: 12px;
    padding: 1rem 1.25rem;
    border: 2px solid var(--border-color);
    transition: all 0.3s ease;
    font-size: 1rem;
}

.form-control:focus, .form-select:focus {
    border-color: var(--primary-color);
    box-shadow: 0 0 0 0.25rem rgba(44, 90, 160, 0.15);
    transform: translateY(-2px);
}

.form-control-lg {
    padding: 1.25rem 1.5rem;
    font-size: 1.1rem;
}

.form-floating > .form-control {
    height: calc(3.5rem + 2px);
    line-height: 1.25;
}

.form-floating > label {
    padding: 1rem 1.5rem;
    font-size: 1rem;
}

.form-label {
    font-weight: 500;
    margin-bottom: 0.5rem;
    color: var(--dark-text);
}

.btn {
    border-radius: 12px;
    padding: 0.875rem 1.75rem;
    font-weight: 500;
    transition: all 0.3s ease;
    border: none;
}

.btn:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow);
}

.btn-lg {
    padding: 1rem 2rem;
    font-size: 1.1rem;
}

.btn-primary {
    background: linear-gradient(135deg, var(--primary-color), var(--primary-light));
}

.btn-outline-secondary {
    border: 2px solid var(--secondary-color);
}

.card {
    border-radius: 16px;
    border: none;
    box-shadow: var(--shadow);
    overflow: hidden;
}

.card-header {
    background: linear-gradient(135deg, var(--primary-color), var(--primary-light));
    border: none;
    padding: 1.25rem 1.5rem;
}

.card-body {
    padding: 2rem;
}

.stepper {
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    padding: 0 2rem;
}

.stepper::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(to right, var(--primary-color), var(--border-color));
    z-index: 1;
}

.step {
    position: relative;
    z-index: 2;
    background: white;
    border: 3px solid var(--border-color);
    border-radius: 50%;
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    transition: all 0.3s ease;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

[data-theme="dark"] .step {
    background: #252a32;
}

.step.active {
    border-color: var(--primary-color);
    background: var(--primary-color);
    color: white;
    transform: scale(1.1);
    box-shadow: 0 4px 12px rgba(44, 90, 160, 0.3);
}

.step.completed {
    border-color: var(--success-color);
    background: var(--success-color);
    color: white;
}

.step-label {
    position: absolute;
    top: 100%;
    margin-top: 0.75rem;
    font-size: 0.9rem;
    white-space: nowrap;
    text-align: center;
    width: 100px;
    right: -25px;
    font-weight: 600;
    color: var(--dark-text);
}

.registration-icon {
    width: 80px;
    height: 80px;
    margin: 0 auto;
    background: linear-gradient(135deg, var(--primary-color), var(--primary-light));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 12px rgba(44, 90, 160, 0.3);
}

.registration-icon i {
    font-size: 2.5rem;
    color: white;
}

.info-card {
    background: var(--light-bg);
    border-radius: 12px;
    padding: 1.5rem;
    border-left: 4px solid var(--primary-color);
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.info-icon {
    color: var(--primary-color);
    font-size: 1.5rem;
    margin-top: 0.25rem;
}

.info-content h6 {
    color: var(--primary-color);
}

.info-content ul li {
    display: flex;
    align-items: center;
}

.shadow-sm {
    box-shadow: 0 2px 8px rgba(0,0,0,0.08) !important;
}

.shadow-lg {
    box-shadow: 0 8px 24px rgba(0,0,0,0.12) !important;
}

@media (max-width: 768px) {
    .stepper {
        padding: 0 1rem;
    }
    
    .step {
        width: 40px;
        height: 40px;
    }
    
    .step-label {
        font-size: 0.75rem;
        width: 80px;
        right: -20px;
    }
    
    .registration-icon {
        width: 60px;
        height: 60px;
    }
    
    .registration-icon i {
        font-size: 1.8rem;
    }
    
    .card-body {
        padding: 1.5rem;
    }
    
    .btn-lg {
        padding: 0.875rem 1.5rem;
        font-size: 1rem;
    }
    
    .info-card {
        flex-direction: column;
        text-align: center;
    }
}
</style>
{% endblock %}

================================================================================
FILE: cars\templates\cars\dashboard.html
================================================================================

{% extends 'cars/base.html' %}
{% load custom_filters %}

{% block page_title %}داشبورد{% endblock %}

{% block content %}
<div class="row mb-4">
    <div class="col-12">
        <div class="d-flex justify-content-between align-items-center mb-4">
            <div>
                <h1 class="h3 mb-1">داشبورد</h1>
                <p class="text-muted mb-0">خلاصه فعالیت‌های شما در سیستم</p>
            </div>
        </div>
    </div>
</div>

<!-- Statistics Cards -->
<div class="row mb-4">
    {% if user.user_type == 'admin' %}
        <div class="col-xl-3 col-md-6 mb-3">
            <div class="card h-100">
                <div class="card-body text-center">
                    <i class="fas fa-users fa-2x text-primary mb-3"></i>
                    <h3 class="fw-bold">{{ users_count|default:0 }}</h3>
                    <p class="text-muted mb-0">تعداد کاربران</p>
                </div>
            </div>
        </div>
        <div class="col-xl-3 col-md-6 mb-3">
            <div class="card h-100">
                <div class="card-body text-center">
                    <i class="fas fa-car fa-2x text-success mb-3"></i>
                    <h3 class="fw-bold">{{ cars_count|default:0 }}</h3>
                    <p class="text-muted mb-0">تعداد خودروها</p>
                </div>
            </div>
        </div>
        <div class="col-xl-3 col-md-6 mb-3">
            <div class="card h-100">
                <div class="card-body text-center">
                    <i class="fas fa-clipboard-check fa-2x text-warning mb-3"></i>
                    <h3 class="fw-bold">{{ inspections_count|default:0 }}</h3>
                    <p class="text-muted mb-0">تعداد بازرسی‌ها</p>
                </div>
            </div>
        </div>
        <div class="col-xl-3 col-md-6 mb-3">
            <div class="card h-100">
                <div class="card-body text-center">
                    <i class="fas fa-cube fa-2x text-info mb-3"></i>
                    <h3 class="fw-bold">{{ items_count|default:0 }}</h3>
                    <p class="text-muted mb-0">تعداد اقلام</p>
                </div>
            </div>
        </div>
    {% elif user.user_type == 'inspector' %}
        <div class="col-xl-3 col-md-6 mb-3">
            <div class="card h-100">
                <div class="card-body text-center">
                    <i class="fas fa-clock fa-2x text-warning mb-3"></i>
                    <h3 class="fw-bold">{{ pending_count|default:0 }}</h3>
                    <p class="text-muted mb-0">در انتظار بازرسی</p>
                </div>
            </div>
        </div>
        <div class="col-xl-3 col-md-6 mb-3">
            <div class="card h-100">
                <div class="card-body text-center">
                    <i class="fas fa-check-circle fa-2x text-success mb-3"></i>
                    <h3 class="fw-bold">{{ approved_count|default:0 }}</h3>
                    <p class="text-muted mb-0">تایید شده</p>
                </div>
            </div>
        </div>
        <div class="col-xl-3 col-md-6 mb-3">
            <div class="card h-100">
                <div class="card-body text-center">
                    <i class="fas fa-times-circle fa-2x text-danger mb-3"></i>
                    <h3 class="fw-bold">{{ rejected_count|default:0 }}</h3>
                    <p class="text-muted mb-0">رد شده</p>
                </div>
            </div>
        </div>
        <div class="col-xl-3 col-md-6 mb-3">
            <div class="card h-100">
                <div class="card-body text-center">
                    <i class="fas fa-clipboard-list fa-2x text-info mb-3"></i>
                    <h3 class="fw-bold">{{ inspections_count|default:0 }}</h3>
                    <p class="text-muted mb-0">بازرسی‌های انجام شده</p>
                </div>
            </div>
        </div>
    {% else %}
        <div class="col-xl-3 col-md-6 mb-3">
            <div class="card h-100">
                <div class="card-body text-center">
                    <i class="fas fa-car fa-2x text-primary mb-3"></i>
                    <h3 class="fw-bold">{{ cars_count|default:0 }}</h3>
                    <p class="text-muted mb-0">خودروهای ثبت شده</p>
                </div>
            </div>
        </div>
        <div class="col-xl-3 col-md-6 mb-3">
            <div class="card h-100">
                <div class="card-body text-center">
                    <i class="fas fa-clock fa-2x text-warning mb-3"></i>
                    <h3 class="fw-bold">{{ pending_count|default:0 }}</h3>
                    <p class="text-muted mb-0">در انتظار تایید</p>
                </div>
            </div>
        </div>
        <div class="col-xl-3 col-md-6 mb-3">
            <div class="card h-100">
                <div class="card-body text-center">
                    <i class="fas fa-check-circle fa-2x text-success mb-3"></i>
                    <h3 class="fw-bold">{{ approved_count|default:0 }}</h3>
                    <p class="text-muted mb-0">تایید شده</p>
                </div>
            </div>
        </div>
        <div class="col-xl-3 col-md-6 mb-3">
            <div class="card h-100">
                <div class="card-body text-center">
                    <i class="fas fa-times-circle fa-2x text-danger mb-3"></i>
                    <h3 class="fw-bold">{{ rejected_count|default:0 }}</h3>
                    <p class="text-muted mb-0">رد شده</p>
                </div>
            </div>
        </div>
    {% endif %}
</div>

<!-- Recent Activity / Cars -->
<div class="row">
    <div class="col-12">
        <div class="card">
            <div class="card-header">
                <h5 class="mb-0 fw-bold">
                    {% if user.user_type == 'admin' %}
                        آخرین فعالیت‌های سیستم
                    {% elif user.user_type == 'inspector' %}
                        خودروهای اخیر استان شما
                    {% else %}
                        خودروهای اخیر شما
                    {% endif %}
                </h5>
            </div>
            <div class="card-body">
                {% if user.user_type == 'admin' %}
                    {% if recent_logs %}
                        <div class="table-responsive">
                            <table class="table table-hover">
                                <thead>
                                    <tr>
                                        <th>عملیات</th>
                                        <th>توضیحات</th>
                                        <th>کاربر</th>
                                        <th>تاریخ</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    {% for log in recent_logs %}
                                    <tr>
                                        <td class="fw-medium">{{ log.action }}</td>
                                        <td class="text-muted">{{ log.description|truncatechars:60 }}</td>
                                        <td>{{ log.user.get_full_name|default:log.user.username }}</td>
                                        <td class="text-muted text-sm">{{ log.created_at|date:"Y/m/d H:i" }}</td>
                                    </tr>
                                    {% endfor %}
                                </tbody>
                            </table>
                        </div>
                    {% else %}
                        <div class="text-center text-muted py-4">
                            <i class="fas fa-history fa-2x mb-3 text-muted"></i>
                            <p class="mb-0">هیچ فعالیتی در سیستم ثبت نشده است</p>
                        </div>
                    {% endif %}
                {% else %}
                    {% if recent_cars %}
                        <div class="table-responsive">
                            <table class="table table-hover">
                                <thead>
                                    <tr>
                                        <th>شماره بدنه</th>
                                        <th>مدل</th>
                                        <th>مالک</th>
                                        <th>وضعیت</th>
                                        <th>تاریخ ثبت</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    {% for car in recent_cars %}
                                    <tr>
                                        <td class="fw-medium">{{ car.chassis_number }}</td>
                                        <td>{{ car.model }}</td>
                                        <td>{{ car.owner_name }}</td>
                                        <td>
                                            <span class="badge 
                                                {% if car.status == 'approved' %}bg-success
                                                {% elif car.status == 'rejected' %}bg-danger
                                                {% elif car.status == 'inspection' %}bg-warning text-dark
                                                {% elif car.status == 'finance' %}bg-info
                                                {% elif car.status == 'manager' %}bg-primary
                                                {% else %}bg-secondary{% endif %}">
                                                {{ car.get_status_display }}
                                            </span>
                                        </td>
                                        <td class="text-muted">{{ car.created_at|date:"Y/m/d" }}</td>
                                    </tr>
                                    {% endfor %}
                                </tbody>
                            </table>
                        </div>
                    {% else %}
                        <div class="text-center text-muted py-4">
                            <i class="fas fa-car fa-2x mb-3 text-muted"></i>
                            <p class="mb-0">هنوز خودرویی ثبت نشده است</p>
                        </div>
                    {% endif %}
                {% endif %}
            </div>
        </div>
    </div>
</div>

<!-- Action Buttons -->
<div class="row mt-4">
    <div class="col-12">
        {% if user.user_type != 'inspector' and user.user_type != 'admin' %}
        <div class="text-center">
            <a href="{% url 'start_sale' %}" class="btn btn-primary btn-lg">
                <i class="fas fa-plus-circle me-2"></i>
                ثبت خودرو جدید
            </a>
        </div>
        {% endif %}
        
        {% if user.user_type == 'inspector' %}
        <div class="card">
            <div class="card-body text-center">
                <h5 class="card-title">بازرسی خودرو</h5>
                <p class="card-text text-muted">خودروهای در انتظار بازرسی را بررسی کنید.</p>
                <a href="{% url 'inspection_list' %}" class="btn btn-primary">
                    <i class="fas fa-clipboard-check me-2"></i>
                    رفتن به لیست بازرسی
                </a>
            </div>
        </div>
        {% endif %}
    </div>
</div>

<style>
.card {
    transition: all 0.3s ease;
}

.card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.12);
}

.stat-card i {
    font-size: 2rem;
    margin-bottom: 1rem;
}

.stat-card h3 {
    font-size: 1.75rem;
    margin-bottom: 0.5rem;
}

.badge {
    font-size: 0.75rem;
    padding: 0.35rem 0.65rem;
}

.table th {
    font-weight: 600;
    font-size: 0.875rem;
}

.table td {
    font-size: 0.875rem;
    vertical-align: middle;
}

.btn {
    border-radius: 8px;
    font-weight: 500;
}

@media (max-width: 768px) {
    .stat-card h3 {
        font-size: 1.5rem;
    }
    
    .stat-card i {
        font-size: 1.75rem;
    }
}
</style>
{% endblock %}

================================================================================
FILE: cars\templates\cars\finance.html
================================================================================

<h2>ارزیابی مالی خودرو: {{ car }}</h2>
<form method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">ثبت ارزیابی مالی</button>
</form>


================================================================================
FILE: cars\templates\cars\finance_list.html
================================================================================

{% extends 'cars/base.html' %}

{% block title %}لیست خودروهای در انتظار بررسی مالی{% endblock %}

{% block content %}
<div class="container mt-4">
    <div class="row">
        <div class="col-12">
            <h4 class="mb-4">خودروهای در انتظار بررسی مالی</h4>
            
            {% if messages %}
                {% for message in messages %}
                    <div class="alert alert-{{ message.tags }} alert-dismissible fade show" role="alert">
                        {{ message }}
                        <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
                    </div>
                {% endfor %}
            {% endif %}
            
            {% if cars %}
            <div class="table-responsive">
                <table class="table table-striped table-hover">
                    <thead class="table-dark">
                        <tr>
                            <th>#</th>
                            <th>مالک</th>
                            <th>پلاک</th>
                            <th>شماره VIN</th>
                            <th>نوع خودرو</th>
                            <th>قیمت پایه</th>
                            <th>وضعیت</th>
                            <th>تاریخ ثبت</th>
                            <th>عملیات</th>
                        </tr>
                    </thead>
                    <tbody>
                        {% for car in cars %}
                        <tr>
                            <td>{{ forloop.counter }}</td>
                            <td>{{ car.owner_name }}</td>
                            <td>{{ car.plate_number }}</td>
                            <td class="ltr-text">{{ car.vin }}</td>
                            <td>
                                {% if car.car_type %}
                                    {{ car.car_type.type_name }}
                                {% else %}
                                    <span class="text-muted">تعریف نشده</span>
                                {% endif %}
                            </td>
                            <td>{{ car.base_price|floatformat:0 }} ریال</td>
                            <td>
                                <span class="badge bg-warning text-dark">{{ car.get_status_display }}</span>
                            </td>
                            <td>{{ car.created_at|date:"Y/m/d" }}</td>
                            <td>
                                <a href="{% url 'finance' car.id %}" class="btn btn-primary btn-sm">
                                    <i class="fas fa-calculator"></i>
                                    بررسی مالی
                                </a>
                            </td>
                        </tr>
                        {% endfor %}
                    </tbody>
                </table>
            </div>
            {% else %}
            <div class="alert alert-info">
                <i class="fas fa-info-circle"></i>
                در حال حاضر هیچ خودرویی برای بررسی مالی وجود ندارد.
            </div>
            {% endif %}
        </div>
    </div>
</div>

<style>
.ltr-text {
    direction: ltr;
    text-align: left;
    font-family: monospace;
}
</style>
{% endblock %}

================================================================================
FILE: cars\templates\cars\finance_review.html
================================================================================

{% extends 'cars/base.html' %}
{% load custom_filters %}

{% block title %}بررسی مالی - {{ car.plate_number }}{% endblock %}

{% block content %}
<div class="container mt-4">
    <div class="row">
        <div class="col-12">
            <div class="page-header">
                <h1><i class="fas fa-calculator"></i> بررسی مالی خودرو</h1>
                <p>پلاک: {{ car.plate_number }} - مالک: {{ car.owner_name }}</p>
            </div>

            {% if messages %}
                {% for message in messages %}
                    <div class="alert alert-{% if message.tags == 'success' %}success{% else %}danger{% endif %}">
                        <i class="fas fa-{% if message.tags == 'success' %}check-circle{% else %}exclamation-circle{% endif %}"></i>
                        {{ message }}
                    </div>
                {% endfor %}
            {% endif %}

            <!-- اطلاعات خودرو -->
            <div class="card mb-4">
                <div class="card-header">
                    <h5 class="mb-0"><i class="fas fa-car"></i> اطلاعات کلی خودرو</h5>
                </div>
                <div class="card-body">
                    <div class="row">
                        <div class="col-md-6">
                            <div class="info-item">
                                <strong>مالک:</strong>
                                <span>{{ car.owner_name }}</span>
                            </div>
                            <div class="info-item">
                                <strong>پلاک:</strong>
                                <span>{{ car.plate_number }}</span>
                            </div>
                            <div class="info-item">
                                <strong>شماره VIN:</strong>
                                <span class="ltr-text">{{ car.vin }}</span>
                            </div>
                        </div>
                        <div class="col-md-6">
                            <div class="info-item">
                                <strong>نوع خودرو:</strong>
                                <span>
                                    {% if car.car_type %}
                                        {{ car.car_type.type_name }}
                                    {% else %}
                                        <span class="text-muted">تعریف نشده</span>
                                    {% endif %}
                                </span>
                            </div>
                            <div class="info-item">
                                <strong>مدل:</strong>
                                <span>{{ car.model }}</span>
                            </div>
                            <div class="info-item">
                                <strong>رنگ:</strong>
                                <span>{{ car.color }}</span>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <form method="post">
                {% csrf_token %}
                
                <!-- قیمت‌گذاری -->
                <div class="card mb-4">
                    <div class="card-header">
                        <h5 class="mb-0"><i class="fas fa-tag"></i> قیمت‌گذاری پایه</h5>
                    </div>
                    <div class="card-body">
                        <div class="form-group">
                            <label class="form-label">قیمت پایه خودرو (ریال)</label>
                            <input type="number" name="car_price" class="form-control" 
                                   value="{{ initial_car_price }}" required min="0" step="1000000">
                            <small class="text-muted">قیمت پایه خودرو قبل از کسر آیتم‌های مفقوده</small>
                        </div>
                    </div>
                </div>

                <!-- آیتم‌های مفقوده -->
                {% if missing_items %}
                <div class="card mb-4">
                    <div class="card-header">
                        <h5 class="mb-0">
                            <i class="fas fa-list-check"></i>
                            آیتم‌های مفقوده (کسورات)
                            <span class="badge bg-warning">{{ missing_items.count }} آیتم</span>
                        </h5>
                    </div>
                    <div class="card-body">
                        <div class="table-responsive">
                            <table class="table table-striped">
                                <thead class="table-dark">
                                    <tr>
                                        <th>نام آیتم</th>
                                        <th>دسته‌بندی</th>
                                        <th>قیمت پیشنهادی (ریال)</th>
                                        <th>قیمت کسر (ریال)</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    {% for missing_item in missing_items %}
                                    <tr>
                                        <td>
                                            <strong>{{ missing_item.item.name }}</strong>
                                        </td>
                                        <td>
                                            <span class="badge {% if missing_item.item.category == 'essential' %}bg-danger{% else %}bg-warning{% endif %}">
                                                {{ missing_item.item.get_category_display }}
                                            </span>
                                        </td>
                                        <td class="text-success">
                                            <strong>{{ missing_item.item.price|floatformat:0 }}</strong>
                                        </td>
                                        <td>
                                            <input type="number" 
                                                   name="item_price_{{ missing_item.id }}" 
                                                   class="form-control" 
                                                   value="0" 
                                                   min="0" 
                                                   step="100000"
                                                   placeholder="قیمت کسر را وارد کنید"
                                                   style="min-width: 150px;">
                                        </td>
                                    </tr>
                                    {% endfor %}
                                </tbody>
                            </table>
                        </div>
                        <div class="alert alert-info mt-3">
                            <i class="fas fa-info-circle"></i>
                            برای هر آیتم مفقوده، قیمت کسر را وارد کنید. این مبلغ از قیمت پایه خودرو کسر خواهد شد.
                        </div>
                    </div>
                </div>
                {% else %}
                <div class="card mb-4">
                    <div class="card-header">
                        <h5 class="mb-0"><i class="fas fa-list-check"></i> آیتم‌های مفقوده</h5>
                    </div>
                    <div class="card-body">
                        <div class="alert alert-warning">
                            <i class="fas fa-exclamation-triangle"></i>
                            هیچ آیتم مفقوده‌ای برای این خودرو ثبت نشده است.
                        </div>
                    </div>
                </div>
                {% endif %}

                <!-- توضیحات -->
                <div class="card mb-4">
                    <div class="card-header">
                        <h5 class="mb-0"><i class="fas fa-comment-dots"></i> توضیحات</h5>
                    </div>
                    <div class="card-body">
                        <div class="form-group">
                            <textarea name="notes" class="form-control" rows="4" 
                                      placeholder="توضیحات مربوط به بررسی مالی، دلایل قیمت‌گذاری و سایر موارد..."></textarea>
                        </div>
                    </div>
                </div>

                <!-- خلاصه محاسبات -->
                <div class="card mb-4">
                    <div class="card-header">
                        <h5 class="mb-0"><i class="fas fa-calculator"></i> خلاصه محاسبات</h5>
                    </div>
                    <div class="card-body">
                        <div class="row text-center">
                            <div class="col-md-4">
                                <div class="stat-card">
                                    <div class="stat-number" id="basePrice">0</div>
                                    <div class="stat-label">قیمت پایه</div>
                                </div>
                            </div>
                            <div class="col-md-4">
                                <div class="stat-card">
                                    <div class="stat-number text-warning" id="totalDeduction">0</div>
                                    <div class="stat-label">مجموع کسورات</div>
                                </div>
                            </div>
                            <div class="col-md-4">
                                <div class="stat-card">
                                    <div class="stat-number text-success" id="finalPrice">0</div>
                                    <div class="stat-label">قیمت نهایی</div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>

                <!-- دکمه‌های اقدام -->
                <div class="form-actions">
                    <button type="submit" class="btn btn-success btn-lg">
                        <i class="fas fa-check-circle"></i>
                        ثبت بررسی مالی
                    </button>
                    <a href="{% url 'finance_list' %}" class="btn btn-secondary btn-lg">
                        <i class="fas fa-arrow-right"></i>
                        بازگشت به لیست
                    </a>
                </div>
            </form>
        </div>
    </div>
</div>

<style>
.info-item {
    display: flex;
    justify-content: space-between;
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--dark-border);
}

.info-item:last-child {
    border-bottom: none;
}

.ltr-text {
    direction: ltr;
    text-align: left;
    font-family: monospace;
}

.form-actions {
    display: flex;
    gap: 1rem;
    justify-content: flex-start;
    margin-top: 2rem;
}

@media (max-width: 768px) {
    .form-actions {
        flex-direction: column;
    }
    
    .form-actions .btn {
        width: 100%;
    }
}
</style>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // محاسبه خودکار قیمت‌ها
    function calculatePrices() {
        const basePrice = parseFloat(document.querySelector('input[name="car_price"]').value) || 0;
        let totalDeduction = 0;
        
        // محاسبه مجموع کسورات
        document.querySelectorAll('input[name^="item_price_"]').forEach(input => {
            totalDeduction += parseFloat(input.value) || 0;
        });
        
        const finalPrice = basePrice - totalDeduction;
        
        // به‌روزرسانی نمایش
        document.getElementById('basePrice').textContent = basePrice.toLocaleString('fa-IR');
        document.getElementById('totalDeduction').textContent = totalDeduction.toLocaleString('fa-IR');
        document.getElementById('finalPrice').textContent = finalPrice.toLocaleString('fa-IR');
        
        // تغییر رنگ قیمت نهایی در صورت منفی شدن
        if (finalPrice < 0) {
            document.getElementById('finalPrice').className = 'stat-number text-danger';
        } else {
            document.getElementById('finalPrice').className = 'stat-number text-success';
        }
    }
    
    // رویداد تغییر برای تمام فیلدهای عددی
    document.querySelector('input[name="car_price"]').addEventListener('input', calculatePrices);
    document.querySelectorAll('input[name^="item_price_"]').forEach(input => {
        input.addEventListener('input', calculatePrices);
    });
    
    // محاسبه اولیه
    calculatePrices();
    
    // اعتبارسنجی فرم
    document.querySelector('form').addEventListener('submit', function(e) {
        const basePrice = parseFloat(document.querySelector('input[name="car_price"]').value) || 0;
        const finalPrice = parseFloat(document.getElementById('finalPrice').textContent.replace(/,/g, '')) || 0;
        
        if (basePrice <= 0) {
            e.preventDefault();
            alert('لطفاً قیمت پایه خودرو را وارد کنید.');
            return;
        }
        
        if (finalPrice < 0) {
            const confirmed = confirm('قیمت نهایی منفی است. آیا از ثبت اطمینان دارید؟');
            if (!confirmed) {
                e.preventDefault();
            }
        }
    });
});
</script>
{% endblock %}

================================================================================
FILE: cars\templates\cars\inspection.html
================================================================================

<h2>فرم بازرسی خودرو: {{ car }}</h2>
<form method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">ثبت بازرسی</button>
</form>


================================================================================
FILE: cars\templates\cars\inspection_detail.html
================================================================================

{% extends 'cars/base.html' %}
{% load custom_filters %}

{% block title %}جزئیات بازرسی{% endblock %}

{% block content %}
<div class="page-header">
    <h1>جزئیات بازرسی</h1>
    <p>مشاهده کامل اطلاعات بازرسی</p>
</div>

<div class="card">
    <div class="card-header">
        <h2>اطلاعات خودرو</h2>
    </div>
    <div class="card-body">
        <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin-bottom: 2rem;">
            <div>
                <div style="display: flex; justify-content: space-between; padding: 0.75rem 0; border-bottom: 1px solid var(--dark-border);">
                    <span style="font-weight: 500; color: var(--dark-text);">شماره بدنه:</span>
                    <span style="color: var(--dark-text-secondary);">{{ inspection.car.chassis_number }}</span>
                </div>
                <div style="display: flex; justify-content: space-between; padding: 0.75rem 0; border-bottom: 1px solid var(--dark-border);">
                    <span style="font-weight: 500; color: var(--dark-text);">مدل:</span>
                    <span style="color: var(--dark-text-secondary);">{{ inspection.car.model }}</span>
                </div>
                <div style="display: flex; justify-content: space-between; padding: 0.75rem 0; border-bottom: 1px solid var(--dark-border);">
                    <span style="font-weight: 500; color: var(--dark-text);">نوع:</span>
                    <span style="color: var(--dark-text-secondary);">{{ inspection.car.car_type }}</span>
                </div>
                <div style="display: flex; justify-content: space-between; padding: 0.75rem 0; border-bottom: 1px solid var(--dark-border);">
                    <span style="font-weight: 500; color: var(--dark-text);">رنگ:</span>
                    <span style="color: var(--dark-text-secondary);">{{ inspection.car.color }}</span>
                </div>
            </div>
            <div>
                <div style="display: flex; justify-content: space-between; padding: 0.75rem 0; border-bottom: 1px solid var(--dark-border);">
                    <span style="font-weight: 500; color: var(--dark-text);">مالک:</span>
                    <span style="color: var(--dark-text-secondary);">{{ inspection.car.owner_name }}</span>
                </div>
                <div style="display: flex; justify-content: space-between; padding: 0.75rem 0; border-bottom: 1px solid var(--dark-border);">
                    <span style="font-weight: 500; color: var(--dark-text);">شماره پلاک:</span>
                    <span style="color: var(--dark-text-secondary);">{{ inspection.car.plate_number }}</span>
                </div>
                <div style="display: flex; justify-content: space-between; padding: 0.75rem 0; border-bottom: 1px solid var(--dark-border);">
                    <span style="font-weight: 500; color: var(--dark-text);">شماره موتور:</span>
                    <span style="color: var(--dark-text-secondary);">{{ inspection.car.engine_number }}</span>
                </div>
                <div style="display: flex; justify-content: space-between; padding: 0.75rem 0; border-bottom: 1px solid var(--dark-border);">
                    <span style="font-weight: 500; color: var(--dark-text);">ظرفیت:</span>
                    <span style="color: var(--dark-text-secondary);">{{ inspection.car.capacity }} نفر</span>
                </div>
            </div>
        </div>
    </div>
</div>

<div class="card">
    <div class="card-header">
        <h2>نتایج بازرسی</h2>
    </div>
    <div class="card-body">
        <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin-bottom: 2rem;">
            <div>
                <div style="display: flex; justify-content: space-between; padding: 0.75rem 0; border-bottom: 1px solid var(--dark-border);">
                    <span style="font-weight: 500; color: var(--dark-text);">بازرس:</span>
                    <span style="color: var(--dark-text-secondary);">{{ inspection.inspector.get_full_name }}</span>
                </div>
                <div style="display: flex; justify-content: space-between; padding: 0.75rem 0; border-bottom: 1px solid var(--dark-border);">
                    <span style="font-weight: 500; color: var(--dark-text);">تاریخ بازرسی:</span>
                    <span style="color: var(--dark-text-secondary);">{{ inspection.inspection_date|date:"Y/m/d" }}</span>
                </div>
                <div style="display: flex; justify-content: space-between; padding: 0.75rem 0; border-bottom: 1px solid var(--dark-border);">
                    <span style="font-weight: 500; color: var(--dark-text);">ساعت بازرسی:</span>
                    <span style="color: var(--dark-text-secondary);">{{ inspection.inspection_time }}</span>
                </div>
                <div style="display: flex; justify-content: space-between; padding: 0.75rem 0; border-bottom: 1px solid var(--dark-border);">
                    <span style="font-weight: 500; color: var(--dark-text);">نتیجه کلی:</span>
                    <span>
                        <span class="status-badge status-{{ inspection.overall_status }}">
                            {{ inspection.get_overall_status_display }}
                        </span>
                    </span>
                </div>
            </div>
            <div>
                <div style="display: flex; justify-content: space-between; padding: 0.75rem 0; border-bottom: 1px solid var(--dark-border);">
                    <span style="font-weight: 500; color: var(--dark-text);">قیمت پایه:</span>
                    <span style="color: var(--dark-text-secondary);">{{ inspection.base_price|floatformat:0 }} ریال</span>
                </div>
                <div style="display: flex; justify-content: space-between; padding: 0.75rem 0; border-bottom: 1px solid var(--dark-border);">
                    <span style="font-weight: 500; color: var(--dark-text);">مجموع کسری:</span>
                    <span style="color: var(--dark-text-secondary);">{{ inspection.total_deduction|floatformat:0 }} ریال</span>
                </div>
                <div style="display: flex; justify-content: space-between; padding: 0.75rem 0; border-bottom: 1px solid var(--dark-border);">
                    <span style="font-weight: 500; color: var(--dark-text);">قیمت نهایی:</span>
                    <span style="color: var(--success); font-weight: 600;">{{ inspection.final_price|floatformat:0 }} ریال</span>
                </div>
            </div>
        </div>

        {% if missing_items %}
        <div class="form-group">
            <label class="form-label">اقلام مفقودی:</label>
            <table class="table">
                <thead>
                    <tr>
                        <th>نام قلم</th>
                        <th>قیمت</th>
                    </tr>
                </thead>
                <tbody>
                    {% for item in missing_items %}
                    <tr>
                        <td>{{ item.item.name }}</td>
                        <td>{{ item.item_price|floatformat:0 }} ریال</td>
                    </tr>
                    {% endfor %}
                </tbody>
            </table>
        </div>
        {% endif %}

        {% if inspection.notes %}
        <div class="form-group">
            <label class="form-label">توضیحات بازرس:</label>
            <div style="background: var(--dark-border); padding: 1rem; border-radius: 8px; margin-top: 0.5rem;">
                {{ inspection.notes|linebreaks }}
            </div>
        </div>
        {% endif %}
    </div>
</div>

<div style="text-align: center; margin-top: 2rem;">
    <a href="{% url 'inspection_list' %}" class="btn btn-secondary">بازگشت به تاریخچه</a>
</div>
{% endblock %}

================================================================================
FILE: cars\templates\cars\inspection_list.html
================================================================================

{% extends 'cars/base.html' %}
{% load custom_filters %}

{% block title %}تاریخچه بازرسی‌ها{% endblock %}

{% block content %}
<div class="container mt-4">
    <div class="page-header">
        <h1><i class="fas fa-history"></i> تاریخچه بازرسی‌ها</h1>
        <p>بازرسی‌های انجام شده توسط شما</p>
    </div>
    
    {% if inspections %}
    <div class="card">
        <div class="card-header">
            <h5 class="mb-0">تاریخچه بازرسی‌ها ({{ inspections.count }})</h5>
        </div>
        <div class="card-body">
            <div class="table-responsive">
                <table class="table table-striped table-hover">
                    <thead class="table-dark">
                        <tr>
                            <th>#</th>
                            <th>پلاک</th>
                            <th>مالک</th>
                            <th>تاریخ بازرسی</th>
                            <th>وضعیت</th>
                            <th>تعداد آیتم‌های مفقوده</th>
                            <th>عملیات</th>
                        </tr>
                    </thead>
                    <tbody>
                        {% for inspection in inspections %}
                        <tr>
                            <td>{{ forloop.counter }}</td>
                            <td><strong>{{ inspection.car.plate_number }}</strong></td>
                            <td>{{ inspection.car.owner_name }}</td>
                            <td>{{ inspection.created_at|date:"Y/m/d H:i" }}</td>
                            <td>
                                <span class="badge bg-{% if inspection.status == 'approved' %}success{% else %}danger{% endif %}">
                                    {{ inspection.get_status_display }}
                                </span>
                            </td>
                            <td>
                                {{ inspection.missing_items.count }}
                            </td>
                            <td>
                                <a href="{% url 'inspection_detail' inspection.id %}" class="btn btn-info btn-sm">
                                    <i class="fas fa-eye"></i>
                                    مشاهده جزئیات
                                </a>
                            </td>
                        </tr>
                        {% endfor %}
                    </tbody>
                </table>
            </div>
        </div>
    </div>
    {% else %}
    <div class="alert alert-info">
        <i class="fas fa-info-circle"></i>
        هنوز هیچ بازرسی انجام نداده‌اید.
    </div>
    {% endif %}
    
    <div class="mt-3">
        <a href="{% url 'pending_inspections' %}" class="btn btn-primary">
            <i class="fas fa-clock"></i>
            مشاهده خودروهای در انتظار بازرسی
        </a>
        <a href="{% url 'dashboard' %}" class="btn btn-secondary">بازگشت به داشبورد</a>
    </div>
</div>
{% endblock %}

================================================================================
FILE: cars\templates\cars\inspect_car.html
================================================================================

{% extends 'cars/base.html' %}
{% load custom_filters %}

{% block title %}بازرسی خودرو - {{ car.plate_number }}{% endblock %}

{% block content %}
<div class="container-fluid py-4">
    <div class="row">
        <div class="col-12">
            <!-- هدر صفحه -->
            <div class="card mb-4">
                <div class="card-header bg-gradient-primary text-white">
                    <div class="d-flex justify-content-between align-items-center">
                        <div>
                            <h4 class="mb-1"><i class="fas fa-clipboard-check me-2"></i>فرم بازرسی فنی خودرو</h4>
                            <p class="mb-0 opacity-8">پلاک: <strong>{{ car.plate_number }}</strong> | مالک: <strong>{{ car.owner_name }}</strong></p>
                        </div>
                        <div class="text-end">
                            <span class="badge bg-light text-primary fs-6">{{ car.get_status_display }}</span>
                        </div>
                    </div>
                </div>
            </div>

            <div class="row">
                <!-- ستون سمت چپ - فرم بازرسی -->
                <div class="col-lg-8">
                    <!-- اطلاعات خودرو -->
                    <div class="card mb-4">
                        <div class="card-header">
                            <h5 class="mb-0"><i class="fas fa-car me-2 text-primary"></i>مشخصات خودرو</h5>
                        </div>
                        <div class="card-body">
                            <div class="table-responsive">
                                <table class="table table-bordered table-hover">
                                    <tbody>
                                        <tr>
                                            <td width="30%" class="bg-light fw-bold">مالک خودرو</td>
                                            <td>{{ car.owner_name }}</td>
                                            <td width="30%" class="bg-light fw-bold">نوع خودرو</td>
                                            <td>
                                                {% if car.car_type %}
                                                    {{ car.car_type.type_name }}
                                                {% else %}
                                                    <span class="text-muted">تعریف نشده</span>
                                                {% endif %}
                                            </td>
                                        </tr>
                                        <tr>
                                            <td class="bg-light fw-bold">شماره پلاک</td>
                                            <td>{{ car.plate_number }}</td>
                                            <td class="bg-light fw-bold">شماره VIN</td>
                                            <td class="font-monospace ltr-text">{{ car.vin }}</td>
                                        </tr>
                                        <tr>
                                            <td class="bg-light fw-bold">مدل</td>
                                            <td>{{ car.model }}</td>
                                            <td class="bg-light fw-bold">رنگ</td>
                                            <td>{{ car.color }}</td>
                                        </tr>
                                        <tr>
                                            <td class="bg-light fw-bold">قیمت پایه</td>
                                            <td colspan="3" class="text-success fw-bold">{{ car.base_price|floatformat:0 }} ریال</td>
                                        </tr>
                                    </tbody>
                                </table>
                            </div>
                        </div>
                    </div>

                    <!-- فرم بازرسی -->
                    <form method="POST" id="inspectionForm">
                        {% csrf_token %}
                        
                        <!-- آیتم‌های مفقوده -->
                        <div class="card mb-4">
                            <div class="card-header d-flex justify-content-between align-items-center">
                                <h5 class="mb-0">
                                    <i class="fas fa-list-check me-2 text-warning"></i>
                                    انتخاب آیتم‌های مفقوده و معیوب
                                </h5>
                                <span class="badge bg-primary fs-6">
                                    {{ car_items.count }} آیتم موجود
                                </span>
                            </div>
                            <div class="card-body">
                                {% if car_items %}
                                <div class="table-responsive">
                                    <table class="table table-hover table-striped">
                                        <thead class="table-dark">
                                            <tr>
                                                <th width="5%">انتخاب</th>
                                                <th width="60%">نام آیتم</th>
                                                <th width="35%">دسته‌بندی</th>
                                            </tr>
                                        </thead>
                                        <tbody>
                                            {% for item in car_items %}
                                            <tr class="item-row" data-item-id="{{ item.id }}">
                                                <td>
                                                    <div class="form-check">
                                                        <input type="checkbox" 
                                                               id="item_{{ item.id }}" 
                                                               name="missing_item_{{ item.id }}"
                                                               value="{{ item.id }}"
                                                               class="form-check-input item-checkbox">
                                                    </div>
                                                </td>
                                                <td>
                                                    <label for="item_{{ item.id }}" class="form-check-label fw-medium item-name">
                                                        {{ item.name }}
                                                    </label>
                                                </td>
                                                <td>
                                                    <span class="badge {% if item.category == 'essential' %}bg-danger{% else %}bg-warning text-dark{% endif %}">
                                                        {{ item.get_category_display }}
                                                    </span>
                                                </td>
                                            </tr>
                                            {% endfor %}
                                        </tbody>
                                    </table>
                                </div>
                                {% else %}
                                <div class="alert alert-warning text-center">
                                    <i class="fas fa-exclamation-triangle fa-2x mb-3"></i>
                                    <h6>هیچ آیتمی برای این نوع خودرو تعریف نشده است</h6>
                                    <p class="mb-0 text-muted">لطفاً با مدیر سیستم تماس بگیرید</p>
                                </div>
                                {% endif %}
                            </div>
                        </div>

                        <!-- وضعیت کلی بازرسی -->
                        <div class="card mb-4">
                            <div class="card-header">
                                <h5 class="mb-0">
                                    <i class="fas fa-clipboard-list me-2 text-info"></i>
                                    نتیجه نهایی بازرسی
                                    <span class="text-danger">*</span>
                                </h5>
                            </div>
                            <div class="card-body">
                                <div class="row">
                                    <div class="col-md-6 mb-3">
                                        <div class="form-check card h-100 border-2">
                                            <input class="form-check-input" type="radio" name="overall_status" id="status_approved" value="approved" required>
                                            <label class="form-check-label card-body text-center" for="status_approved">
                                                <div class="status-content">
                                                    <i class="fas fa-check-circle text-success fa-3x mb-3"></i>
                                                    <h5 class="fw-bold text-success">تایید شده</h5>
                                                    <p class="text-muted mb-0">خودرو از نظر فنی قابل قبول است</p>
                                                </div>
                                            </label>
                                        </div>
                                    </div>
                                    <div class="col-md-6 mb-3">
                                        <div class="form-check card h-100 border-2">
                                            <input class="form-check-input" type="radio" name="overall_status" id="status_rejected" value="rejected" required>
                                            <label class="form-check-label card-body text-center" for="status_rejected">
                                                <div class="status-content">
                                                    <i class="fas fa-times-circle text-danger fa-3x mb-3"></i>
                                                    <h5 class="fw-bold text-danger">رد شده</h5>
                                                    <p class="text-muted mb-0">خودرو مشکلات فنی جدی دارد</p>
                                                </div>
                                            </label>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>

                        <!-- توضیحات -->
                        <div class="card mb-4">
                            <div class="card-header">
                                <h5 class="mb-0">
                                    <i class="fas fa-comment-dots me-2 text-success"></i>
                                    توضیحات و یادداشت‌های فنی
                                </h5>
                            </div>
                            <div class="card-body">
                                <div class="form-group">
                                    <textarea class="form-control" name="notes" rows="5" 
                                              placeholder="شرح کامل وضعیت فنی خودرو شامل:
• وضعیت بدنه و رنگ
• شرایط موتور و سیستم تعلیق
• عملکرد ترمزها و سیستم برقی
• سایر موارد قابل توجه..."></textarea>
                                    <div class="form-text text-muted mt-2">
                                        <i class="fas fa-info-circle me-1"></i>
                                        توضیحات دقیق به فرآیند ارزیابی کمک می‌کند
                                    </div>
                                </div>
                            </div>
                        </div>
                    </form>
                </div>

                <!-- ستون سمت راست - خلاصه و اقدامات -->
                <div class="col-lg-4">
                    <!-- خلاصه آیتم‌های انتخاب شده -->
                    <div class="card mb-4">
                        <div class="card-header bg-warning text-dark">
                            <h5 class="mb-0">
                                <i class="fas fa-clipboard-list me-2"></i>
                                آیتم‌های انتخاب شده
                                <span id="selectedCount" class="badge bg-dark">0</span>
                            </h5>
                        </div>
                        <div class="card-body p-0">
                            <div id="selectedItemsList" class="selected-items-container" style="max-height: 300px; overflow-y: auto;">
                                <div class="empty-state text-center py-5">
                                    <i class="fas fa-clipboard fa-2x text-muted mb-3"></i>
                                    <p class="text-muted mb-0">هنوز آیتمی انتخاب نشده است</p>
                                </div>
                            </div>
                        </div>
                    </div>

                    <!-- آمار و خلاصه -->
                    <div class="card mb-4">
                        <div class="card-header">
                            <h5 class="mb-0"><i class="fas fa-chart-bar me-2 text-info"></i>خلاصه آماری</h5>
                        </div>
                        <div class="card-body">
                            <div class="row text-center">
                                <div class="col-4">
                                    <div class="border-end">
                                        <div class="text-primary fw-bold fs-4" id="totalItemsCount">{{ car_items.count }}</div>
                                        <div class="text-muted small">کل آیتم‌ها</div>
                                    </div>
                                </div>
                                <div class="col-4">
                                    <div class="border-end">
                                        <div class="text-warning fw-bold fs-4" id="essentialItemsCount">
                                            {% with essential_count=car_items|dictsort:"category" %}
                                                {% for item in car_items %}
                                                    {% if item.category == "essential" %}
                                                        {% if forloop.first %}
                                                            {{ forloop.revcounter0|add:1 }}
                                                        {% endif %}
                                                    {% endif %}
                                                {% endfor %}
                                            {% endwith %}
                                        </div>
                                        <div class="text-muted small">ضروری</div>
                                    </div>
                                </div>
                                <div class="col-4">
                                    <div class="text-success fw-bold fs-4" id="optionalItemsCount">
                                        {% with optional_count=car_items|dictsort:"category" %}
                                            {% for item in car_items %}
                                                {% if item.category == "optional" %}
                                                    {% if forloop.first %}
                                                        {{ forloop.revcounter0|add:1 }}
                                                    {% endif %}
                                                {% endif %}
                                            {% endfor %}
                                        {% endwith %}
                                    </div>
                                    <div class="text-muted small">اختیاری</div>
                                </div>
                            </div>
                        </div>
                    </div>

                    <!-- دکمه‌های اقدام -->
                    <div class="card">
                        <div class="card-body">
                            <div class="d-grid gap-2">
                                <button type="submit" form="inspectionForm" class="btn btn-success btn-lg py-3">
                                    <i class="fas fa-check-double me-2"></i>
                                    ثبت نهایی بازرسی
                                </button>
                                <a href="{% url 'inspection_list' %}" class="btn btn-outline-secondary btn-lg py-3">
                                    <i class="fas fa-arrow-right me-2"></i>
                                    بازگشت به لیست
                                </a>
                            </div>
                            <div class="text-center mt-3">
                                <small class="text-muted">
                                    <i class="fas fa-clock me-1"></i>
                                    زمان تقریبی: ۱۵ دقیقه
                                </small>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
{% endblock %}

{% block extra_css %}
<style>
.ltr-text {
    direction: ltr;
    text-align: left;
    font-family: 'Courier New', monospace;
}

/* استایل برای ردیف‌های جدول آیتم‌ها */
.item-row {
    cursor: pointer;
    transition: all 0.2s ease;
}

.item-row:hover {
    background-color: #f8f9fa !important;
    transform: translateY(-1px);
}

.item-row.selected {
    background-color: #e3f2fd !important;
    border-left: 4px solid #2196F3;
}

/* استایل برای لیست آیتم‌های انتخاب شده */
.selected-items-container {
    border-radius: 0 0 0.375rem 0.375rem;
}

.selected-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid #dee2e6;
    transition: background-color 0.2s ease;
}

.selected-item:last-child {
    border-bottom: none;
}

.selected-item:hover {
    background-color: #f8f9fa;
}

.selected-item-info {
    flex: 1;
}

.selected-item-name {
    font-weight: 600;
    margin-bottom: 0.25rem;
    color: #2c3e50;
}

.selected-item-category {
    font-size: 0.75rem;
}

.empty-state {
    color: #6c757d;
}

/* استایل برای وضعیت‌های بازرسی */
.form-check-input:checked + .card {
    border-color: #198754 !important;
    background-color: rgba(25, 135, 84, 0.05);
}

.form-check-input[value="rejected"]:checked + .card {
    border-color: #dc3545 !important;
    background-color: rgba(220, 53, 69, 0.05);
}

/* اسکرول بار سفارشی */
.selected-items-container::-webkit-scrollbar {
    width: 6px;
}

.selected-items-container::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 3px;
}

.selected-items-container::-webkit-scrollbar-thumb {
    background: #c1c1c1;
    border-radius: 3px;
}

.selected-items-container::-webkit-scrollbar-thumb:hover {
    background: #a8a8a8;
}
</style>
{% endblock %}

{% block extra_scripts %}
<script>
document.addEventListener('DOMContentLoaded', function() {
    const itemRows = document.querySelectorAll('.item-row');
    const selectedItemsList = document.getElementById('selectedItemsList');
    const selectedCount = document.getElementById('selectedCount');
    
    // محاسبه تعداد آیتم‌های ضروری و اختیاری
    function calculateCategoryCounts() {
        let essentialCount = 0;
        let optionalCount = 0;
        
        itemRows.forEach(row => {
            const categoryBadge = row.querySelector('.badge');
            if (categoryBadge.classList.contains('bg-danger')) {
                essentialCount++;
            } else if (categoryBadge.classList.contains('bg-warning')) {
                optionalCount++;
            }
        });
        
        document.getElementById('essentialItemsCount').textContent = essentialCount;
        document.getElementById('optionalItemsCount').textContent = optionalCount;
    }
    
    // مدیریت انتخاب آیتم‌ها
    itemRows.forEach(row => {
        const checkbox = row.querySelector('.item-checkbox');
        const itemId = row.dataset.itemId;
        const itemName = row.querySelector('.item-name').textContent;
        const itemCategory = row.querySelector('.badge').textContent;
        const categoryClass = row.querySelector('.badge').className;
        
        // کلیک روی ردیف
        row.addEventListener('click', function(e) {
            if (e.target.type !== 'checkbox') {
                checkbox.checked = !checkbox.checked;
            }
            updateRowSelection(row, checkbox.checked);
            updateSelectedItemsList(itemId, itemName, itemCategory, categoryClass, checkbox.checked);
            updateSelectedCount();
        });
        
        // تغییر مستقیم چک‌باکس
        checkbox.addEventListener('change', function() {
            updateRowSelection(row, this.checked);
            updateSelectedItemsList(itemId, itemName, itemCategory, categoryClass, this.checked);
            updateSelectedCount();
        });
    });
    
    function updateRowSelection(row, isSelected) {
        row.classList.toggle('selected', isSelected);
    }
    
    function updateSelectedItemsList(itemId, itemName, itemCategory, categoryClass, isSelected) {
        const existingItem = document.getElementById(`selected-item-${itemId}`);
        
        if (isSelected && !existingItem) {
            // اضافه کردن آیتم جدید به لیست
            const selectedItem = document.createElement('div');
            selectedItem.className = 'selected-item';
            selectedItem.id = `selected-item-${itemId}`;
            selectedItem.innerHTML = `
                <div class="selected-item-info">
                    <div class="selected-item-name">${itemName}</div>
                    <div class="selected-item-details">
                        <span class="selected-item-category badge ${categoryClass}">${itemCategory}</span>
                    </div>
                </div>
                <div class="selected-item-actions">
                    <button type="button" class="btn btn-outline-danger btn-sm remove-item" data-item-id="${itemId}" title="حذف">
                        <i class="fas fa-times"></i>
                    </button>
                </div>
            `;
            
            // حذف حالت خالی اگر وجود دارد
            const emptyState = selectedItemsList.querySelector('.empty-state');
            if (emptyState) {
                emptyState.remove();
            }
            
            selectedItemsList.appendChild(selectedItem);
            
            // اضافه کردن event listener برای دکمه حذف
            selectedItem.querySelector('.remove-item').addEventListener('click', function(e) {
                e.stopPropagation();
                const itemRow = document.querySelector(`.item-row[data-item-id="${itemId}"]`);
                const checkbox = itemRow.querySelector('.item-checkbox');
                checkbox.checked = false;
                updateRowSelection(itemRow, false);
                selectedItem.remove();
                updateSelectedCount();
                
                // نمایش حالت خالی اگر آیتمی وجود ندارد
                if (selectedItemsList.children.length === 0) {
                    showEmptyState();
                }
            });
        } else if (!isSelected && existingItem) {
            // حذف آیتم از لیست
            existingItem.remove();
            
            // نمایش حالت خالی اگر آیتمی وجود ندارد
            if (selectedItemsList.children.length === 0) {
                showEmptyState();
            }
        }
    }
    
    function showEmptyState() {
        selectedItemsList.innerHTML = `
            <div class="empty-state text-center py-5">
                <i class="fas fa-clipboard fa-2x text-muted mb-3"></i>
                <p class="text-muted mb-0">هنوز آیتمی انتخاب نشده است</p>
            </div>
        `;
    }
    
    function updateSelectedCount() {
        const selectedItems = document.querySelectorAll('.item-checkbox:checked');
        selectedCount.textContent = selectedItems.length;
    }
    
    // اعتبارسنجی فرم
    const form = document.getElementById('inspectionForm');
    
    form.addEventListener('submit', function(e) {
        const statusSelected = document.querySelector('input[name="overall_status"]:checked');
        const selectedItems = document.querySelectorAll('.item-checkbox:checked');
        
        if (!statusSelected) {
            e.preventDefault();
            showAlert('لطفاً نتیجه کلی بازرسی را انتخاب کنید.', 'warning');
            return;
        }
        
        let confirmMessage = '';
        if (selectedItems.length > 0) {
            confirmMessage = `آیا از ثبت ${selectedItems.length} آیتم مفقوده اطمینان دارید؟`;
        } else {
            confirmMessage = 'آیا از ثبت بازرسی بدون آیتم مفقوده اطمینان دارید؟';
        }
        
        if (!confirm(confirmMessage)) {
            e.preventDefault();
        }
    });
    
    function showAlert(message, type) {
        // ایجاد alert داینامیک
        const alertDiv = document.createElement('div');
        alertDiv.className = `alert alert-${type} alert-dismissible fade show`;
        alertDiv.innerHTML = `
            <i class="fas fa-exclamation-triangle me-2"></i>
            ${message}
            <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
        `;
        
        // اضافه کردن alert به بالای صفحه
        const container = document.querySelector('.container-fluid');
        container.insertBefore(alertDiv, container.firstChild);
        
        // حذف خودکار بعد از 5 ثانیه
        setTimeout(() => {
            if (alertDiv.parentNode) {
                alertDiv.remove();
            }
        }, 5000);
    }
    
    // محاسبه اولیه تعداد دسته‌بندی‌ها
    calculateCategoryCounts();
    updateSelectedCount();
});
</script>
{% endblock %}

================================================================================
FILE: cars\templates\cars\intermediary.html
================================================================================

{% extends 'cars/base.html' %}

{% block page_title %}ثبت خودرو - مرحله ۳{% endblock %}

{% block content %}
<div class="row mb-4">
    <div class="col-12">
        <div class="d-flex justify-content-between align-items-center mb-4">
            <div>
                <h1 class="h3 mb-1">ثبت خودرو جدید</h1>
                <p class="text-muted mb-0">اطلاعات خودرو را در مراحل زیر وارد کنید</p>
            </div>
        </div>
    </div>
</div>

<!-- Stepper -->
<div class="card mb-4">
    <div class="card-body">
        <div class="stepper">
            <!-- Steps will be initialized by JavaScript -->
        </div>
    </div>
</div>

<div class="card mb-4">
    <div class="card-header bg-light">
        <h5 class="mb-0 fw-bold text-primary">
            <i class="fas fa-clipboard-check me-2"></i>
            خلاصه اطلاعات ثبت شده
        </h5>
    </div>
    <div class="card-body">
        <div class="row">
            <!-- ستون اول -->
            <div class="col-md-4">
                {% if request.session.current_chassis %}
                <div class="d-flex justify-content-between align-items-center border-bottom pb-2 mb-2">
                    <span class="fw-medium text-muted">شماره بدنه:</span>
                    <span class="fw-bold text-primary">{{ request.session.current_chassis }}</span>
                </div>
                {% endif %}
                
                {% if request.session.current_car_data %}
                    {% for key, value in request.session.current_car_data.items %}
                        {% if forloop.counter0 == 0 or forloop.counter0 == 3 or forloop.counter0 == 6 %}
                        <div class="d-flex justify-content-between align-items-center border-bottom pb-2 mb-2">
                            <span class="fw-medium text-muted">
                                {% if key == 'owner_name' %}مالک
                                {% elif key == 'plate_number' %}شماره پلاک
                                {% elif key == 'vin' %}شماره VIN
                                {% elif key == 'system' %}سیستم
                                {% elif key == 'car_type' %}نوع خودرو
                                {% elif key == 'model' %}مدل
                                {% elif key == 'engine_number' %}شماره موتور
                                {% elif key == 'color' %}رنگ
                                {% elif key == 'capacity' %}ظرفیت
                                {% elif key == 'base_price' %}قیمت پایه
                                {% else %}{{ key }}{% endif %}:
                            </span>
                            <span class="fw-bold">
                                {% if key == 'base_price' %}{{ value|floatformat:0 }} ریال
                                {% else %}{{ value }}{% endif %}
                            </span>
                        </div>
                        {% endif %}
                    {% endfor %}
                {% endif %}
            </div>
            
            <!-- ستون دوم -->
            <div class="col-md-4">
                {% if request.session.current_car_data %}
                    {% for key, value in request.session.current_car_data.items %}
                        {% if forloop.counter0 == 1 or forloop.counter0 == 4 or forloop.counter0 == 7 %}
                        <div class="d-flex justify-content-between align-items-center border-bottom pb-2 mb-2">
                            <span class="fw-medium text-muted">
                                {% if key == 'owner_name' %}مالک
                                {% elif key == 'plate_number' %}شماره پلاک
                                {% elif key == 'vin' %}شماره VIN
                                {% elif key == 'system' %}سیستم
                                {% elif key == 'car_type' %}نوع خودرو
                                {% elif key == 'model' %}مدل
                                {% elif key == 'engine_number' %}شماره موتور
                                {% elif key == 'color' %}رنگ
                                {% elif key == 'capacity' %}ظرفیت
                                {% elif key == 'base_price' %}قیمت پایه
                                {% else %}{{ key }}{% endif %}:
                            </span>
                            <span class="fw-bold">
                                {% if key == 'base_price' %}{{ value|floatformat:0 }} ریال
                                {% else %}{{ value }}{% endif %}
                            </span>
                        </div>
                        {% endif %}
                    {% endfor %}
                {% endif %}
            </div>
            
            <!-- ستون سوم -->
            <div class="col-md-4">
                {% if request.session.current_car_data %}
                    {% for key, value in request.session.current_car_data.items %}
                        {% if forloop.counter0 == 2 or forloop.counter0 == 5 or forloop.counter0 == 8 %}
                        <div class="d-flex justify-content-between align-items-center border-bottom pb-2 mb-2">
                            <span class="fw-medium text-muted">
                                {% if key == 'owner_name' %}مالک
                                {% elif key == 'plate_number' %}شماره پلاک
                                {% elif key == 'vin' %}شماره VIN
                                {% elif key == 'system' %}سیستم
                                {% elif key == 'car_type' %}نوع خودرو
                                {% elif key == 'model' %}مدل
                                {% elif key == 'engine_number' %}شماره موتور
                                {% elif key == 'color' %}رنگ
                                {% elif key == 'capacity' %}ظرفیت
                                {% elif key == 'base_price' %}قیمت پایه
                                {% else %}{{ key }}{% endif %}:
                            </span>
                            <span class="fw-bold">
                                {% if key == 'base_price' %}{{ value|floatformat:0 }} ریال
                                {% else %}{{ value }}{% endif %}
                            </span>
                        </div>
                        {% endif %}
                    {% endfor %}
                {% endif %}
            </div>
        </div>
    </div>
</div>

<div class="card">
    <div class="card-header">
        <h5 class="mb-0 fw-bold">اطلاعات خریدار و واسطه</h5>
    </div>
    <div class="card-body">
        <form method="POST">
            {% csrf_token %}
            
            <div class="row mb-3">
                <div class="col-md-6">
                    <div class="mb-3">
                        <label class="form-label fw-medium">خریدار <span class="text-danger">*</span></label>
                        <select class="form-select" name="buyer_id" required>
                            <option value="">انتخاب خریدار</option>
                            {% for buyer in buyers %}
                                <option value="{{ buyer.id }}">
                                    {{ buyer.name }} - {{ buyer.phone }}
                                </option>
                            {% endfor %}
                        </select>
                    </div>
                </div>
                <div class="col-md-6">
                    <div class="mb-3">
                        <label class="form-label fw-medium">واسطه <span class="text-danger">*</span></label>
                        <select class="form-select" name="intermediary_id" required>
                            <option value="">انتخاب واسطه</option>
                            {% for intermediary in intermediaries %}
                                <option value="{{ intermediary.id }}">
                                    {{ intermediary.name }} - {{ intermediary.phone }}
                                </option>
                            {% endfor %}
                        </select>
                    </div>
                </div>
            </div>

            <div class="row mb-4">
                <div class="col-md-6">
                    <div class="mb-3">
                        <label class="form-label fw-medium">ذینفع</label>
                        <input type="text" class="form-control" name="zinefaa" 
                               placeholder="نام ذینفع را وارد کنید">
                    </div>
                </div>
                <div class="col-md-6">
                    <div class="mb-3">
                        <label class="form-label fw-medium">وکالت نامه</label>
                        <input type="text" class="form-control" name="vekalatnameh" 
                               placeholder="شماره وکالت نامه را وارد کنید">
                    </div>
                </div>
            </div>

            <div class="d-flex gap-2 justify-content-end pt-3 border-top">
                <a href="{% url 'car_info' %}" class="btn btn-secondary">
                    <i class="fas fa-arrow-right me-2"></i>
                    بازگشت به مرحله قبل
                </a>
                <button type="submit" class="btn btn-primary">
                    <i class="fas fa-save me-2"></i>
                    ذخیره و ادامه
                </button>
            </div>
        </form>
    </div>
</div>
{% endblock %}

{% block extra_scripts %}
<script>
    // Initialize stepper for car registration
    document.addEventListener('DOMContentLoaded', function() {
        initializeStepper(['شماره بدنه', 'اطلاعات خودرو', 'خریدار و واسطه', 'پارکینگ'], 2);
    });
</script>

<style>
.form-control, .form-select {
    border-radius: 8px;
    padding: 0.75rem 1rem;
    border: 2px solid var(--border-color);
    transition: all 0.3s ease;
}

.form-control:focus, .form-select:focus {
    border-color: var(--primary-color);
    box-shadow: 0 0 0 0.2rem rgba(44, 90, 160, 0.15);
}

.form-label {
    font-weight: 500;
    margin-bottom: 0.5rem;
    color: var(--dark-text);
}

.btn {
    border-radius: 8px;
    padding: 0.75rem 1.5rem;
    font-weight: 500;
}

.card {
    border-radius: 12px;
    border: 1px solid var(--border-color);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.card-header {
    background: transparent;
    border-bottom: 1px solid var(--border-color);
    padding: 1.25rem 1.5rem;
}

.card-body {
    padding: 1.5rem;
}

.stepper {
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    padding: 0 2rem;
}

.stepper::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--border-color);
    z-index: 1;
}

.step {
    position: relative;
    z-index: 2;
    background: white;
    border: 2px solid var(--border-color);
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    transition: all 0.3s ease;
}

[data-theme="dark"] .step {
    background: #252a32;
}

.step.active {
    border-color: var(--primary-color);
    background: var(--primary-color);
    color: white;
}

.step.completed {
    border-color: var(--success-color);
    background: var(--success-color);
    color: white;
}

.step-label {
    position: absolute;
    top: 100%;
    margin-top: 0.5rem;
    font-size: 0.875rem;
    white-space: nowrap;
    text-align: center;
    width: 100px;
    right: -30px;
}

@media (max-width: 768px) {
    .stepper {
        padding: 0 1rem;
    }
    
    .step-label {
        font-size: 0.75rem;
        width: 80px;
        right: -20px;
    }
    
    /* در موبایل اطلاعات در یک ستون نمایش داده شود */
    .col-md-4 {
        margin-bottom: 1rem;
    }
}
</style>
{% endblock %} 

================================================================================
FILE: cars\templates\cars\login.html
================================================================================

{% extends 'cars/base.html' %}

{% block title %}ورود به سیستم{% endblock %}

{% block content %}
<div style="max-width: 400px; margin: 4rem auto;">
    <div class="card">
        <div class="card-header">
            <h2>ورود به سیستم</h2>
        </div>
        <div class="card-body">
            <form method="POST">
                {% csrf_token %}
                <div class="form-group">
                    <label class="form-label">کد ملی</label>
                    <input type="text" class="form-control" name="national_code" required>
                </div>
                <div class="form-group">
                    <label class="form-label">شماره شناسنامه</label>
                    <input type="text" class="form-control" name="shenasnameh_code" required>
                </div>
                <button type="submit" class="btn btn-primary" style="width: 100%;">ورود به سیستم</button>
            </form>
            <div style="text-align: center; margin-top: 1rem;">
                <a href="{% url 'register' %}" style="color: var(--primary);">حساب کاربری ندارید؟ ثبت نام کنید</a>
            </div>
        </div>
    </div>
</div>
{% endblock %}

================================================================================
FILE: cars\templates\cars\manager_approval.html
================================================================================

{% extends 'cars/base.html' %}
{% load custom_filters %}
{% block title %}تأیید نهایی{% endblock %}
{% block content %}
<div class="page-header">
    <h1>تأیید نهایی خودرو</h1>
    <p>بررسی تمام مراحل و تصمیم نهایی</p>
</div>

<div class="row">
    <div class="col-md-4">
        <div class="card">
            <div class="card-header bg-info text-white">بازرسی</div>
            <div class="card-body">
                <p><strong>بازرس:</strong> {{ inspection.inspector }}</p>
                <p><strong>کسورات:</strong> {{ inspection.total_deduction|floatformat:0 }} ریال</p>
                <p><strong>قیمت:</strong> {{ inspection.final_price|floatformat:0 }} ریال</p>
            </div>
        </div>
    </div>
    <div class="col-md-4">
        <div class="card">
            <div class="card-header bg-warning text-dark">مالی</div>
            <div class="card-body">
                <p><strong>کاربر مالی:</strong> {{ finance.finance_user }}</p>
                <p><strong>قیمت پیشنهادی:</strong> {{ finance.suggested_price|floatformat:0 }} ریال</p>
            </div>
        </div>
    </div>
</div>

<form method="POST" class="card mt-4">
    {% csrf_token %}
    <div class="card-body">
        <div class="form-group">
            <label>تصمیم شما</label><br>
            <div class="form-check form-check-inline">
                <input class="form-check-input" type="radio" name="approved" value="True" id="approve">
                <label class="form-check-label text-success" for="approve">تأیید</label>
            </div>
            <div class="form-check form-check-inline">
                <input class="form-check-input" type="radio" name="approved" value="False" id="reject">
                <label class="form-check-label text-danger" for="reject">رد</label>
            </div>
        </div>
        <div class="form-group">
            <label>یادداشت مدیر</label>
            <textarea name="notes" class="form-control" rows="3"></textarea>
        </div>
        <div style="display: flex; gap: 1rem; justify-content: flex-end;">
            <button type="submit" class="btn btn-success">ثبت تصمیم</button>
        </div>
    </div>
</form>
{% endblock %}

================================================================================
FILE: cars\templates\cars\manager_approval_detail.html
================================================================================

{% extends 'cars/base.html' %}
{% load custom_filters %}

{% block title %}بررسی و تایید نهایی - {{ car.plate_number }}{% endblock %}

{% block content %}
<div class="container-fluid py-4">
    <div class="row">
        <div class="col-12">
            <!-- هدر صفحه -->
            <div class="card mb-4">
                <div class="card-header pb-0">
                    <div class="d-flex justify-content-between align-items-center">
                        <div>
                            <h4><i class="fas fa-check-double me-2"></i>بررسی و تایید نهایی</h4>
                            <p class="text-sm mb-0">پلاک: {{ car.plate_number }} - مالک: {{ car.owner_name }}</p>
                        </div>
                        <a href="{% url 'manager_approval_list' %}" class="btn btn-outline-secondary btn-sm">
                            <i class="fas fa-arrow-right me-1"></i>
                            بازگشت به لیست
                        </a>
                    </div>
                </div>
            </div>

            <!-- خلاصه اطلاعات -->
            <div class="row mb-4">
                <div class="col-xl-3 col-md-6 mb-3">
                    <div class="card">
                        <div class="card-body p-3">
                            <div class="row">
                                <div class="col-8">
                                    <div class="numbers">
                                        <p class="text-sm mb-0 text-uppercase font-weight-bold">قیمت پایه</p>
                                        <h5 class="font-weight-bolder mb-0">
                                            {{ car.base_price|floatformat:0 }} ریال
                                        </h5>
                                    </div>
                                </div>
                                <div class="col-4 text-end">
                                    <div class="icon icon-shape bg-gradient-primary shadow-primary text-center border-radius-md">
                                        <i class="fas fa-tag text-lg opacity-10"></i>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>

                <div class="col-xl-3 col-md-6 mb-3">
                    <div class="card">
                        <div class="card-body p-3">
                            <div class="row">
                                <div class="col-8">
                                    <div class="numbers">
                                        <p class="text-sm mb-0 text-uppercase font-weight-bold">قیمت نهایی</p>
                                        <h5 class="font-weight-bolder mb-0 text-success">
                                            {% with finance=car.finance_reviews.last %}
                                                {{ finance.suggested_price|floatformat:0|default:"0" }} ریال
                                            {% endwith %}
                                        </h5>
                                    </div>
                                </div>
                                <div class="col-4 text-end">
                                    <div class="icon icon-shape bg-gradient-success shadow-success text-center border-radius-md">
                                        <i class="fas fa-calculator text-lg opacity-10"></i>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>

                <div class="col-xl-3 col-md-6 mb-3">
                    <div class="card">
                        <div class="card-body p-3">
                            <div class="row">
                                <div class="col-8">
                                    <div class="numbers">
                                        <p class="text-sm mb-0 text-uppercase font-weight-bold">آیتم مفقوده</p>
                                        <h5 class="font-weight-bolder mb-0 text-info">
                                            {% if inspection %}
                                                {{ inspection.missing_items.count }}
                                            {% else %}
                                                0
                                            {% endif %}
                                        </h5>
                                    </div>
                                </div>
                                <div class="col-4 text-end">
                                    <div class="icon icon-shape bg-gradient-info shadow-info text-center border-radius-md">
                                        <i class="fas fa-list-check text-lg opacity-10"></i>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>

                <div class="col-xl-3 col-md-6 mb-3">
                    <div class="card">
                        <div class="card-body p-3">
                            <div class="row">
                                <div class="col-8">
                                    <div class="numbers">
                                        <p class="text-sm mb-0 text-uppercase font-weight-bold">وضعیت</p>
                                        <h5 class="font-weight-bolder mb-0">
                                            <span class="badge bg-{% if car.status == 'approved' %}success{% elif car.status == 'rejected' %}danger{% else %}warning{% endif %}">
                                                {{ car.get_status_display }}
                                            </span>
                                        </h5>
                                    </div>
                                </div>
                                <div class="col-4 text-end">
                                    <div class="icon icon-shape bg-gradient-warning shadow-warning text-center border-radius-md">
                                        <i class="fas fa-info-circle text-lg opacity-10"></i>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="row">
                <!-- ستون سمت چپ -->
                <div class="col-lg-8">
                    <!-- اطلاعات کلی خودرو -->
                    <div class="card mb-4">
                        <div class="card-header pb-0">
                            <h6><i class="fas fa-car me-2"></i>اطلاعات کلی خودرو</h6>
                        </div>
                        <div class="card-body p-3">
                            <div class="row">
                                <div class="col-md-6">
                                    <div class="table-responsive">
                                        <table class="table table-sm table-borderless">
                                            <tr>
                                                <td width="40%" class="text-sm font-weight-bold">مالک:</td>
                                                <td class="text-sm">{{ car.owner_name }}</td>
                                            </tr>
                                            <tr>
                                                <td class="text-sm font-weight-bold">پلاک:</td>
                                                <td class="text-sm">{{ car.plate_number }}</td>
                                            </tr>
                                            <tr>
                                                <td class="text-sm font-weight-bold">شماره VIN:</td>
                                                <td class="text-sm font-family-monospace">{{ car.vin }}</td>
                                            </tr>
                                            <tr>
                                                <td class="text-sm font-weight-bold">نوع خودرو:</td>
                                                <td class="text-sm">
                                                    {% if car.car_type %}
                                                        {{ car.car_type.type_name }}
                                                    {% else %}
                                                        <span class="text-muted">ندارد</span>
                                                    {% endif %}
                                                </td>
                                            </tr>
                                        </table>
                                    </div>
                                </div>
                                <div class="col-md-6">
                                    <div class="table-responsive">
                                        <table class="table table-sm table-borderless">
                                            <tr>
                                                <td width="40%" class="text-sm font-weight-bold">مدل:</td>
                                                <td class="text-sm">{{ car.model }}</td>
                                            </tr>
                                            <tr>
                                                <td class="text-sm font-weight-bold">رنگ:</td>
                                                <td class="text-sm">{{ car.color }}</td>
                                            </tr>
                                            <tr>
                                                <td class="text-sm font-weight-bold">ظرفیت:</td>
                                                <td class="text-sm">{{ car.capacity }} نفر</td>
                                            </tr>
                                            <tr>
                                                <td class="text-sm font-weight-bold">استان:</td>
                                                <td class="text-sm">{{ car.province }}</td>
                                            </tr>
                                        </table>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>

                    <!-- اطلاعات بازرسی -->
                    {% if inspection %}
                    <div class="card mb-4">
                        <div class="card-header pb-0">
                            <h6><i class="fas fa-clipboard-check me-2"></i>گزارش بازرسی</h6>
                        </div>
                        <div class="card-body p-3">
                            <div class="row mb-3">
                                <div class="col-md-6">
                                    <p class="text-sm mb-1">
                                        <span class="font-weight-bold">بازرس:</span> 
                                        {{ inspection.inspector.get_full_name|default:inspection.inspector.username }}
                                    </p>
                                </div>
                                <div class="col-md-6">
                                    <p class="text-sm mb-1">
                                        <span class="font-weight-bold">تاریخ بازرسی:</span> 
                                        {{ inspection.created_at|date:"Y/m/d H:i" }}
                                    </p>
                                </div>
                            </div>
                            
                            <div class="row mb-3">
                                <div class="col-12">
                                    <p class="text-sm mb-1">
                                        <span class="font-weight-bold">وضعیت بازرسی:</span>
                                        <span class="badge bg-{% if inspection.status == 'approved' %}success{% else %}danger{% endif %}">
                                            {{ inspection.get_status_display }}
                                        </span>
                                    </p>
                                </div>
                            </div>
                            
                            {% if inspection.notes %}
                            <div class="alert alert-info text-sm">
                                <strong><i class="fas fa-sticky-note me-1"></i> توضیحات بازرس:</strong><br>
                                {{ inspection.notes|linebreaks }}
                            </div>
                            {% endif %}

                            {% if missing_items %}
                            <div class="mt-4">
                                <h6 class="text-sm font-weight-bold mb-3">
                                    <i class="fas fa-list-check me-1"></i> 
                                    آیتم‌های مفقوده ({{ missing_items.count }})
                                </h6>
                                <div class="table-responsive">
                                    <table class="table table-sm table-striped table-hover align-items-center">
                                        <thead>
                                            <tr>
                                                <th class="text-uppercase text-secondary text-xxs font-weight-bolder opacity-7">#</th>
                                                <th class="text-uppercase text-secondary text-xxs font-weight-bolder opacity-7">نام آیتم</th>
                                                <th class="text-uppercase text-secondary text-xxs font-weight-bolder opacity-7">دسته‌بندی</th>
                                                <th class="text-uppercase text-secondary text-xxs font-weight-bolder opacity-7 text-end">قیمت کسر</th>
                                            </tr>
                                        </thead>
                                        <tbody>
                                            {% for item in missing_items %}
                                            <tr>
                                                <td class="text-sm">{{ forloop.counter }}</td>
                                                <td class="text-sm">{{ item.item.name }}</td>
                                                <td class="text-sm">
                                                    <span class="badge badge-sm {% if item.item.category == 'essential' %}bg-danger{% else %}bg-warning{% endif %}">
                                                        {{ item.item.get_category_display }}
                                                    </span>
                                                </td>
                                                <td class="text-sm text-end">{{ item.item_price|floatformat:0 }} ریال</td>
                                            </tr>
                                            {% endfor %}
                                            <tr class="table-warning">
                                                <td colspan="3" class="text-sm text-end font-weight-bold">جمع کل کسری:</td>
                                                <td class="text-sm text-end font-weight-bold">
                                                    {% with total=missing_items|dictsum:"item_price" %}
                                                        {{ total|floatformat:0 }} ریال
                                                    {% endwith %}
                                                </td>
                                            </tr>
                                        </tbody>
                                    </table>
                                </div>
                            </div>
                            {% else %}
                            <div class="alert alert-success text-sm">
                                <i class="fas fa-check me-1"></i>
                                هیچ آیتم مفقوده‌ای گزارش نشده است.
                            </div>
                            {% endif %}
                        </div>
                    </div>
                    {% endif %}

                    <!-- اطلاعات مالی -->
                    {% if finance_review %}
                    <div class="card mb-4">
                        <div class="card-header pb-0">
                            <h6><i class="fas fa-calculator me-2"></i>گزارش مالی</h6>
                        </div>
                        <div class="card-body p-3">
                            <div class="row mb-3">
                                <div class="col-md-6">
                                    <p class="text-sm mb-1">
                                        <span class="font-weight-bold">کاربر مالی:</span> 
                                        {{ finance_review.finance_user.get_full_name|default:finance_review.finance_user.username }}
                                    </p>
                                </div>
                                <div class="col-md-6">
                                    <p class="text-sm mb-1">
                                        <span class="font-weight-bold">تاریخ بررسی:</span> 
                                        {{ finance_review.created_at|date:"Y/m/d H:i" }}
                                    </p>
                                </div>
                            </div>
                            
                            <div class="row">
                                <div class="col-md-6">
                                    <div class="card bg-gradient-success text-white">
                                        <div class="card-body p-3">
                                            <div class="numbers">
                                                <p class="text-sm mb-0 text-uppercase font-weight-bold">قیمت پیشنهادی نهایی</p>
                                                <h4 class="font-weight-bolder mb-0">
                                                    {{ finance_review.suggested_price|floatformat:0 }} ریال
                                                </h4>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            
                            {% if finance_review.notes %}
                            <div class="alert alert-info text-sm mt-3">
                                <strong><i class="fas fa-sticky-note me-1"></i> توضیحات مالی:</strong><br>
                                {{ finance_review.notes|linebreaks }}
                            </div>
                            {% endif %}
                        </div>
                    </div>
                    {% endif %}
                </div>

                <!-- ستون سمت راست - فرم تایید نهایی -->
                <div class="col-lg-4">
                    <div class="card">
                        <div class="card-header pb-0">
                            <h6><i class="fas fa-gavel me-2"></i>تایید نهایی مدیر</h6>
                        </div>
                        <div class="card-body p-3">
                            <form method="post">
                                {% csrf_token %}
                                
                                <div class="form-group mb-4">
                                    <label class="form-label text-sm font-weight-bold">نتیجه نهایی:</label>
                                    <div class="row">
                                        <div class="col-6">
                                            <div class="form-check card">
                                                <input class="form-check-input" type="radio" name="approved" id="approved_true" value="true" required>
                                                <label class="form-check-label card-body text-center p-2" for="approved_true">
                                                    <i class="fas fa-check-circle text-success fa-2x mb-2"></i>
                                                    <h6 class="mb-1">تایید شده</h6>
                                                    <small class="text-muted">خودرو برای فروش تأیید می‌شود</small>
                                                </label>
                                            </div>
                                        </div>
                                        <div class="col-6">
                                            <div class="form-check card">
                                                <input class="form-check-input" type="radio" name="approved" id="approved_false" value="false" required>
                                                <label class="form-check-label card-body text-center p-2" for="approved_false">
                                                    <i class="fas fa-times-circle text-danger fa-2x mb-2"></i>
                                                    <h6 class="mb-1">رد شده</h6>
                                                    <small class="text-muted">خودرو رد می‌شود</small>
                                                </label>
                                            </div>
                                        </div>
                                    </div>
                                </div>

                                <div class="form-group">
                                    <label class="form-label text-sm font-weight-bold">توضیحات مدیر:</label>
                                    <textarea name="notes" class="form-control form-control-sm" rows="4" 
                                              placeholder="دلایل تایید یا رد نهایی، نکات مهم، توصیه‌ها..."></textarea>
                                </div>

                                <div class="d-grid gap-2 mt-4">
                                    <button type="submit" class="btn btn-success btn-lg">
                                        <i class="fas fa-check-double me-1"></i>
                                        ثبت تایید نهایی
                                    </button>
                                    <a href="{% url 'manager_approval_list' %}" class="btn btn-outline-secondary btn-sm">
                                        <i class="fas fa-arrow-right me-1"></i>
                                        بازگشت به لیست
                                    </a>
                                </div>
                            </form>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<style>
.font-family-monospace {
    font-family: 'Courier New', monospace;
    direction: ltr;
    text-align: left;
}

.form-check .card {
    border: 2px solid #dee2e6;
    transition: all 0.3s ease;
    cursor: pointer;
}

.form-check-input:checked + .card {
    border-color: #4CAF50;
    background-color: rgba(76, 175, 80, 0.05);
}

.form-check-input:checked + .card.text-danger {
    border-color: #f44336;
    background-color: rgba(244, 67, 54, 0.05);
}

.form-check-input {
    display: none;
}

.card-body small {
    font-size: 0.75rem;
}
</style>
{% endblock %}

================================================================================
FILE: cars\templates\cars\manager_approval_list.html
================================================================================

{% extends 'cars/base.html' %}

{% block title %}تایید نهایی مدیر{% endblock %}

{% block content %}
<div class="container mt-4">
    <div class="page-header">
        <h1><i class="fas fa-check-circle"></i> تایید نهایی مدیر</h1>
        <p>خودروهای در انتظار تایید نهایی</p>
    </div>
    
    {% if cars %}
    <div class="card">
        <div class="card-header">
            <h5 class="mb-0">لیست خودروها ({{ cars.count }})</h5>
        </div>
        <div class="card-body">
            <div class="table-responsive">
                <table class="table table-striped">
                    <thead>
                        <tr>
                            <th>#</th>
                            <th>پلاک</th>
                            <th>مالک</th>
                            <th>نوع خودرو</th>
                            <th>قیمت پایه</th>
                            <th>قیمت نهایی</th>
                            <th>استان</th>
                            <th>تاریخ ثبت</th>
                            <th>عملیات</th>
                        </tr>
                    </thead>
                    <tbody>
                        {% for car in cars %}
                        <tr>
                            <td>{{ forloop.counter }}</td>
                            <td><strong>{{ car.plate_number }}</strong></td>
                            <td>{{ car.owner_name }}</td>
                            <td>
                                {% if car.car_type %}
                                    {{ car.car_type.type_name }}
                                {% else %}
                                    <span class="text-muted">ندارد</span>
                                {% endif %}
                            </td>
                            <td>{{ car.base_price|floatformat:0 }} ریال</td>
                            <td>
                                {% with finance=car.finance_reviews.last %}
                                    {% if finance %}
                                        <strong class="text-success">{{ finance.suggested_price|floatformat:0 }} ریال</strong>
                                    {% else %}
                                        <span class="text-muted">ندارد</span>
                                    {% endif %}
                                {% endwith %}
                            </td>
                            <td>{{ car.province }}</td>
                            <td>{{ car.created_at|date:"Y/m/d" }}</td>
                            <td>
                                <a href="{% url 'manager_approval_detail' car.id %}" class="btn btn-primary btn-sm">
                                    <i class="fas fa-eye"></i>
                                    بررسی کامل
                                </a>
                            </td>
                        </tr>
                        {% endfor %}
                    </tbody>
                </table>
            </div>
        </div>
    </div>
    {% else %}
    <div class="alert alert-info">
        <i class="fas fa-info-circle"></i>
        در حال حاضر هیچ خودرویی برای تایید نهایی وجود ندارد.
    </div>
    {% endif %}
</div>
{% endblock %}

================================================================================
FILE: cars\templates\cars\parking.html
================================================================================

{% extends 'cars/base.html' %}

{% block page_title %}ثبت خودرو - مرحله ۴{% endblock %}

{% block content %}
<div class="row mb-4">
    <div class="col-12">
        <div class="d-flex justify-content-between align-items-center mb-4">
            <div>
                <h1 class="h3 mb-1">ثبت خودرو جدید</h1>
                <p class="text-muted mb-0">اطلاعات خودرو را در مراحل زیر وارد کنید</p>
            </div>
        </div>
    </div>
</div>

<!-- Stepper -->
<div class="card mb-4">
    <div class="card-body">
        <div class="stepper">
            <!-- Steps will be initialized by JavaScript -->
        </div>
    </div>
</div>

<div class="card mb-4">
    <div class="card-header bg-light">
        <h5 class="mb-0 fw-bold text-primary">
            <i class="fas fa-clipboard-check me-2"></i>
            خلاصه اطلاعات ثبت شده
        </h5>
    </div>
    <div class="card-body">
        <div class="row">
            <!-- ستون اول -->
            <div class="col-md-4">
                {% if request.session.current_chassis %}
                <div class="d-flex justify-content-between align-items-center border-bottom pb-2 mb-2">
                    <span class="fw-medium text-muted">شماره بدنه:</span>
                    <span class="fw-bold text-primary">{{ request.session.current_chassis }}</span>
                </div>
                {% endif %}
                
                {% if request.session.current_car_data %}
                    {% for key, value in request.session.current_car_data.items %}
                        {% if forloop.counter0|divisibleby:3 %}
                        <div class="d-flex justify-content-between align-items-center border-bottom pb-2 mb-2">
                            <span class="fw-medium text-muted">
                                {% if key == 'owner_name' %}مالک
                                {% elif key == 'plate_number' %}شماره پلاک
                                {% elif key == 'vin' %}شماره VIN
                                {% elif key == 'system' %}سیستم
                                {% elif key == 'car_type' %}نوع خودرو
                                {% elif key == 'model' %}مدل
                                {% elif key == 'engine_number' %}شماره موتور
                                {% elif key == 'color' %}رنگ
                                {% elif key == 'capacity' %}ظرفیت
                                {% elif key == 'base_price' %}قیمت پایه
                                {% else %}{{ key }}{% endif %}:
                            </span>
                            <span class="fw-bold">
                                {% if key == 'base_price' %}{{ value|floatformat:0 }} ریال
                                {% else %}{{ value }}{% endif %}
                            </span>
                        </div>
                        {% endif %}
                    {% endfor %}
                {% endif %}
            </div>
            
            <!-- ستون دوم -->
            <div class="col-md-4">
                {% if request.session.current_car_data %}
                    {% for key, value in request.session.current_car_data.items %}
                        {% if forloop.counter0|add:"-1"|divisibleby:3 %}
                        <div class="d-flex justify-content-between align-items-center border-bottom pb-2 mb-2">
                            <span class="fw-medium text-muted">
                                {% if key == 'owner_name' %}مالک
                                {% elif key == 'plate_number' %}شماره پلاک
                                {% elif key == 'vin' %}شماره VIN
                                {% elif key == 'system' %}سیستم
                                {% elif key == 'car_type' %}نوع خودرو
                                {% elif key == 'model' %}مدل
                                {% elif key == 'engine_number' %}شماره موتور
                                {% elif key == 'color' %}رنگ
                                {% elif key == 'capacity' %}ظرفیت
                                {% elif key == 'base_price' %}قیمت پایه
                                {% else %}{{ key }}{% endif %}:
                            </span>
                            <span class="fw-bold">
                                {% if key == 'base_price' %}{{ value|floatformat:0 }} ریال
                                {% else %}{{ value }}{% endif %}
                            </span>
                        </div>
                        {% endif %}
                    {% endfor %}
                {% endif %}
            </div>
            
            <!-- ستون سوم -->
            <div class="col-md-4">
                {% if request.session.current_car_data %}
                    {% for key, value in request.session.current_car_data.items %}
                        {% if forloop.counter0|add:"-2"|divisibleby:3 %}
                        <div class="d-flex justify-content-between align-items-center border-bottom pb-2 mb-2">
                            <span class="fw-medium text-muted">
                                {% if key == 'owner_name' %}مالک
                                {% elif key == 'plate_number' %}شماره پلاک
                                {% elif key == 'vin' %}شماره VIN
                                {% elif key == 'system' %}سیستم
                                {% elif key == 'car_type' %}نوع خودرو
                                {% elif key == 'model' %}مدل
                                {% elif key == 'engine_number' %}شماره موتور
                                {% elif key == 'color' %}رنگ
                                {% elif key == 'capacity' %}ظرفیت
                                {% elif key == 'base_price' %}قیمت پایه
                                {% else %}{{ key }}{% endif %}:
                            </span>
                            <span class="fw-bold">
                                {% if key == 'base_price' %}{{ value|floatformat:0 }} ریال
                                {% else %}{{ value }}{% endif %}
                            </span>
                        </div>
                        {% endif %}
                    {% endfor %}
                {% endif %}
            </div>
        </div>
    </div>
</div>

<div class="card">
    <div class="card-header">
        <h5 class="mb-0 fw-bold">اطلاعات پارکینگ</h5>
    </div>
    <div class="card-body">
        <form method="POST">
            {% csrf_token %}
            
            <div class="row mb-3">
                <div class="col-md-6">
                    <div class="mb-3">
                        <label class="form-label fw-medium">ناحیه پارکینگ <span class="text-danger">*</span></label>
                        <select class="form-select" name="parking_zone" required>
                            <option value="">انتخاب ناحیه</option>
                            <option value="A">ناحیه A</option>
                            <option value="B">ناحیه B</option>
                            <option value="C">ناحیه C</option>
                        </select>
                    </div>
                </div>
                <div class="col-md-6">
                    <div class="mb-3">
                        <label class="form-label fw-medium">شماره جای پارک <span class="text-danger">*</span></label>
                        <input type="text" class="form-control" name="parking_number" 
                               placeholder="مثال: ۱۲" required>
                    </div>
                </div>
            </div>

            <div class="row mb-4">
                <div class="col-md-6">
                    <div class="mb-3">
                        <label class="form-label fw-medium">تاریخ پارک <span class="text-danger">*</span></label>
                        <input type="date" class="form-control" name="park_date" required>
                    </div>
                </div>
                <div class="col-md-6">
                    <div class="mb-3">
                        <label class="form-label fw-medium">ساعت پارک <span class="text-danger">*</span></label>
                        <input type="time" class="form-control" name="park_time" required>
                    </div>
                </div>
            </div>

            <div class="d-flex gap-2 justify-content-end pt-3 border-top">
                <a href="{% url 'intermediary' %}" class="btn btn-secondary">
                    <i class="fas fa-arrow-right me-2"></i>
                    بازگشت به مرحله قبل
                </a>
                <button type="submit" class="btn btn-success">
                    <i class="fas fa-check-circle me-2"></i>
                    تکمیل ثبت اطلاعات
                </button>
            </div>
        </form>
    </div>
</div>

<script>
    document.addEventListener('DOMContentLoaded', function() {
        // Set default date to today
        const dateInput = document.querySelector('input[name="park_date"]');
        if (!dateInput.value) {
            const today = new Date().toISOString().split('T')[0];
            dateInput.value = today;
            dateInput.min = today;
        }
        
        // Set default time to now
        const timeInput = document.querySelector('input[name="park_time"]');
        if (!timeInput.value) {
            const now = new Date();
            const hours = now.getHours().toString().padStart(2, '0');
            const minutes = now.getMinutes().toString().padStart(2, '0');
            timeInput.value = `${hours}:${minutes}`;
        }
        
        // Initialize stepper for car registration
        initializeStepper(['شماره بدنه', 'اطلاعات خودرو', 'خریدار و واسطه', 'پارکینگ'], 3);
    });
</script>
{% endblock %}

{% block extra_scripts %}
<style>
.form-control, .form-select {
    border-radius: 8px;
    padding: 0.75rem 1rem;
    border: 2px solid var(--border-color);
    transition: all 0.3s ease;
}

.form-control:focus, .form-select:focus {
    border-color: var(--primary-color);
    box-shadow: 0 0 0 0.2rem rgba(44, 90, 160, 0.15);
}

.form-label {
    font-weight: 500;
    margin-bottom: 0.5rem;
    color: var(--dark-text);
}

.btn {
    border-radius: 8px;
    padding: 0.75rem 1.5rem;
    font-weight: 500;
}

.card {
    border-radius: 12px;
    border: 1px solid var(--border-color);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.card-header {
    background: transparent;
    border-bottom: 1px solid var(--border-color);
    padding: 1.25rem 1.5rem;
}

.card-body {
    padding: 1.5rem;
}

.stepper {
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    padding: 0 2rem;
}

.stepper::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--border-color);
    z-index: 1;
}

.step {
    position: relative;
    z-index: 2;
    background: white;
    border: 2px solid var(--border-color);
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    transition: all 0.3s ease;
}

[data-theme="dark"] .step {
    background: #252a32;
}

.step.active {
    border-color: var(--primary-color);
    background: var(--primary-color);
    color: white;
}

.step.completed {
    border-color: var(--success-color);
    background: var(--success-color);
    color: white;
}

.step-label {
    position: absolute;
    top: 100%;
    margin-top: 0.5rem;
    font-size: 0.875rem;
    white-space: nowrap;
    text-align: center;
    width: 100px;
    right: -30px;
}

@media (max-width: 768px) {
    .stepper {
        padding: 0 1rem;
    }
    
    .step-label {
        font-size: 0.75rem;
        width: 80px;
        right: -20px;
    }
    
    /* در موبایل اطلاعات در یک ستون نمایش داده شود */
    .summary-container .col-md-4 {
        margin-bottom: 1rem;
    }
}
</style>
{% endblock %}

================================================================================
FILE: cars\templates\cars\pending_inspections.html
================================================================================

{% extends 'cars/base.html' %}
{% load custom_filters %}

{% block title %}خودروهای در انتظار بازرسی{% endblock %}

{% block content %}
<div class="container mt-4">
    <div class="page-header">
        <h1><i class="fas fa-clock"></i> خودروهای در انتظار بازرسی</h1>
        <p>لیست خودروهایی که نیاز به بازرسی دارند</p>
    </div>
    
    {% if messages %}
        {% for message in messages %}
            <div class="alert alert-{{ message.tags }} alert-dismissible fade show" role="alert">
                {{ message }}
                <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
            </div>
        {% endfor %}
    {% endif %}
    
    {% if cars %}
    <div class="card">
        <div class="card-header">
            <h5 class="mb-0">لیست خودروهای در انتظار بازرسی ({{ cars.count }})</h5>
        </div>
        <div class="card-body">
            <div class="table-responsive">
                <table class="table table-striped table-hover">
                    <thead class="table-dark">
                        <tr>
                            <th>#</th>
                            <th>پلاک</th>
                            <th>مالک</th>
                            <th>نوع خودرو</th>
                            <th>مدل</th>
                            <th>رنگ</th>
                            <th>قیمت پایه</th>
                            <th>تاریخ ثبت</th>
                            <th>عملیات</th>
                        </tr>
                    </thead>
                    <tbody>
                        {% for car in cars %}
                        <tr>
                            <td>{{ forloop.counter }}</td>
                            <td><strong>{{ car.plate_number }}</strong></td>
                            <td>{{ car.owner_name }}</td>
                            <td>
                                {% if car.car_type %}
                                    {{ car.car_type.type_name }}
                                {% else %}
                                    <span class="text-muted">ندارد</span>
                                {% endif %}
                            </td>
                            <td>{{ car.model }}</td>
                            <td>{{ car.color }}</td>
                            <td>{{ car.base_price|floatformat:0 }} ریال</td>
                            <td>{{ car.created_at|date:"Y/m/d" }}</td>
                            <td>
                                <a href="{% url 'inspect_car' car.id %}" class="btn btn-primary btn-sm">
                                    <i class="fas fa-clipboard-check"></i>
                                    شروع بازرسی
                                </a>
                            </td>
                        </tr>
                        {% endfor %}
                    </tbody>
                </table>
            </div>
        </div>
    </div>
    {% else %}
    <div class="alert alert-info">
        <i class="fas fa-info-circle"></i>
        در حال حاضر هیچ خودرویی برای بازرسی وجود ندارد.
    </div>
    {% endif %}
</div>
{% endblock %}

================================================================================
FILE: cars\templates\cars\register.html
================================================================================

{% extends 'cars/base.html' %}

{% block title %}ثبت نام{% endblock %}

{% block content %}
<div style="max-width: 600px; margin: 2rem auto;">
    <div class="card">
        <div class="card-header">
            <h2>ثبت نام در سیستم</h2>
        </div>
        <div class="card-body">
            <form method="POST">
                {% csrf_token %}
                <div class="form-row">
                    <div class="form-group">
                        <label class="form-label">نام</label>
                        <input type="text" class="form-control" name="first_name" required>
                    </div>
                    <div class="form-group">
                        <label class="form-label">نام خانوادگی</label>
                        <input type="text" class="form-control" name="last_name" required>
                    </div>
                </div>
                <div class="form-row">
                    <div class="form-group">
                        <label class="form-label">شماره تلفن</label>
                        <input type="tel" class="form-control" name="phone" required>
                    </div>
                    <div class="form-group">
                        <label class="form-label">کد ملی</label>
                        <input type="text" class="form-control" name="national_code" required>
                    </div>
                </div>
                <div class="form-row">
                    <div class="form-group">
                        <label class="form-label">شماره شناسنامه</label>
                        <input type="text" class="form-control" name="shenasnameh_code" required>
                    </div>
                    <div class="form-group">
                        <label class="form-label">استان</label>
                        <select class="form-control" name="province" required>
                            <option value="">انتخاب استان</option>
                            <option value="قزوین">قزوین</option>
                            <option value="تهران">تهران</option>
                            <option value="کرمان">کرمان</option>
                        </select>
                    </div>
                </div>
                <div class="form-group">
                    <label class="form-label">نوع کاربر</label>
                    <select class="form-control" name="user_type">
                        <option value="user">کاربر عادی</option>
                        <option value="inspector">بازرس</option>
                    </select>
                </div>
                <div class="form-row">
                    <div class="form-group">
                        <label class="form-label">رمز عبور</label>
                        <input type="password" class="form-control" name="password1" required>
                    </div>
                    <div class="form-group">
                        <label class="form-label">تکرار رمز عبور</label>
                        <input type="password" class="form-control" name="password2" required>
                    </div>
                </div>
                <button type="submit" class="btn btn-primary" style="width: 100%;">ثبت نام</button>
            </form>
            <div style="text-align: center; margin-top: 1rem;">
                <a href="{% url 'login' %}" style="color: var(--primary);">قبلاً ثبت نام کرده‌اید؟ وارد شوید</a>
            </div>
        </div>
    </div>
</div>
{% endblock %}

================================================================================
FILE: cars\templatetags\custom_filters.py
================================================================================

from django import template

register = template.Library()

@register.filter
def dictsum(items, attribute):
    """جمع‌زدن مقادیر یک attribute از مجموعه‌ای از آبجکت‌ها"""
    try:
        return sum(getattr(item, attribute, 0) for item in items)
    except (TypeError, AttributeError):
        return 0

@register.filter
def upper(value):
    """تبدیل رشته به حروف بزرگ"""
    return str(value).upper() if value else ''

@register.filter
def get_item(dictionary, key):
    """دریافت مقدار از دیکشنری با کلید"""
    return dictionary.get(key, '')

================================================================================
FILE: cars\templatetags\__init__.py
================================================================================



================================================================================
FILE: car_system\settings.py
================================================================================

import os
from pathlib import Path

BASE_DIR = Path(__file__).resolve().parent.parent

SECRET_KEY = 'django-insecure-your-secret-key-here'

DEBUG = True

ALLOWED_HOSTS = []

INSTALLED_APPS = [
    'cars',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

ROOT_URLCONF = 'car_system.urls'

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

WSGI_APPLICATION = 'car_system.wsgi.application'

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]


LANGUAGE_CODE = 'fa-ir'
TIME_ZONE = 'Asia/Tehran'
USE_I18N = True
USE_L10N = True
USE_TZ = True

STATIC_URL = '/static/'
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'

LOGIN_URL = 'login'
LOGIN_REDIRECT_URL = 'dashboard'
LOGOUT_REDIRECT_URL = 'login'

AUTH_USER_MODEL = 'cars.User'

================================================================================
FILE: car_system\urls.py
================================================================================

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('cars.urls')),
]

================================================================================
FILE: car_system\wsgi.py
================================================================================

import os
from django.core.wsgi import get_wsgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'car_system.settings')
application = get_wsgi_application()

================================================================================
FILE: car_system\__init__.py
================================================================================

# Empty file
