# Generated by Django 5.2.15 on 2026-07-01 11:39 import django.db.models.deletion import modules.fleet.models import uuid from decimal import Decimal from django.conf import settings from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name='Vehicle', fields=[ ('id', models.UUIDField(default=uuid.uuid4, editable=False, help_text='Unikatni identifikator entiteta (UUID).', primary_key=True, serialize=False)), ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Vrijeme kreiranja')), ('updated_at', models.DateTimeField(auto_now=True, verbose_name='Vrijeme zadnje izmjene')), ('registration_number', models.CharField(max_length=20, unique=True, verbose_name='Registracija')), ('make', models.CharField(blank=True, max_length=100, verbose_name='Proizvođač')), ('model', models.CharField(blank=True, max_length=100, verbose_name='Model')), ('year', models.PositiveSmallIntegerField(blank=True, null=True, verbose_name='Godina')), ('vin', models.CharField(blank=True, max_length=50, null=True, unique=True, verbose_name='VIN')), ('current_mileage', models.PositiveIntegerField(default=0, verbose_name='Trenutna kilometraža (km)')), ('service_interval_km', models.PositiveIntegerField(default=15000, verbose_name='Interval servisa (km)')), ('is_active', models.BooleanField(default=True, verbose_name='Aktivno')), ('assigned_servicer', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='assigned_vehicles', to=settings.AUTH_USER_MODEL, verbose_name='Serviser')), ], options={ 'verbose_name': 'Vozilo', 'verbose_name_plural': 'Vozila', 'ordering': ['registration_number'], }, ), migrations.CreateModel( name='VehicleNotification', fields=[ ('id', models.UUIDField(default=uuid.uuid4, editable=False, help_text='Unikatni identifikator entiteta (UUID).', primary_key=True, serialize=False)), ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Vrijeme kreiranja')), ('updated_at', models.DateTimeField(auto_now=True, verbose_name='Vrijeme zadnje izmjene')), ('is_active', models.BooleanField(default=True, verbose_name='Aktivan zapis')), ('title', models.CharField(max_length=255, verbose_name='Naslov')), ('message', models.TextField(verbose_name='Poruka')), ('level', models.CharField(choices=[('info', 'Info'), ('warning', 'Upozorenje'), ('critical', 'Kritično')], default='info', max_length=20, verbose_name='Razina')), ('is_sent', models.BooleanField(default=False, verbose_name='Poslano (e-mail)')), ('is_read', models.BooleanField(default=False, verbose_name='Pročitano')), ('recipient', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='vehicle_notifications', to=settings.AUTH_USER_MODEL, verbose_name='Primatelj')), ], options={ 'verbose_name': 'Notifikacija za vozilo', 'verbose_name_plural': 'Notifikacije za vozila', 'ordering': ['-created_at'], }, ), migrations.CreateModel( name='VehicleServiceRecord', fields=[ ('id', models.UUIDField(default=uuid.uuid4, editable=False, help_text='Unikatni identifikator entiteta (UUID).', primary_key=True, serialize=False)), ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Vrijeme kreiranja')), ('updated_at', models.DateTimeField(auto_now=True, verbose_name='Vrijeme zadnje izmjene')), ('is_active', models.BooleanField(default=True, verbose_name='Aktivan zapis')), ('description', models.TextField(verbose_name='Opis posla')), ('parts', models.TextField(blank=True, verbose_name='Korišteni dijelovi')), ('cost', models.DecimalField(decimal_places=2, default=Decimal('0.00'), max_digits=10, verbose_name='Trošak')), ('service_date', models.DateField(auto_now_add=True, verbose_name='Datum servisa')), ('mileage', models.PositiveIntegerField(verbose_name='Kilometraža pri servisu')), ('next_service_due_at', models.PositiveIntegerField(blank=True, null=True, verbose_name='Kilometraža sljedećeg servisa')), ('performed_by', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='performed_vehicle_services', to=settings.AUTH_USER_MODEL, verbose_name='Izvršio')), ('vehicle', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='service_records', to='fleet.vehicle', verbose_name='Vozilo')), ], options={ 'verbose_name': 'Servisni zapis', 'verbose_name_plural': 'Servisni zapisi', 'ordering': ['-service_date'], }, ), migrations.CreateModel( name='VehicleServicePhoto', fields=[ ('id', models.UUIDField(default=uuid.uuid4, editable=False, help_text='Unikatni identifikator entiteta (UUID).', primary_key=True, serialize=False)), ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Vrijeme kreiranja')), ('updated_at', models.DateTimeField(auto_now=True, verbose_name='Vrijeme zadnje izmjene')), ('image', models.ImageField(upload_to=modules.fleet.models._service_photo_upload_to, verbose_name='Fotografija')), ('description', models.CharField(blank=True, max_length=255, verbose_name='Opis')), ('is_active', models.BooleanField(default=True, verbose_name='Aktivan')), ('uploaded_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='uploaded_service_photos', to=settings.AUTH_USER_MODEL, verbose_name='Postavio')), ('service_record', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='photos', to='fleet.vehicleservicerecord', verbose_name='Servisni zapis')), ], options={ 'verbose_name': 'Fotografija servisa', 'verbose_name_plural': 'Fotografije servisa', 'ordering': ['-created_at'], }, ), migrations.CreateModel( name='WorkOrder', fields=[ ('id', models.UUIDField(default=uuid.uuid4, editable=False, help_text='Unikatni identifikator entiteta (UUID).', primary_key=True, serialize=False)), ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Vrijeme kreiranja')), ('updated_at', models.DateTimeField(auto_now=True, verbose_name='Vrijeme zadnje izmjene')), ('is_active', models.BooleanField(default=True, verbose_name='Aktivan zapis')), ('date', models.DateField(auto_now_add=True, verbose_name='Datum')), ('start_mileage', models.PositiveIntegerField(verbose_name='Početna kilometraža')), ('end_mileage', models.PositiveIntegerField(blank=True, null=True, verbose_name='Završna kilometraža')), ('purpose', models.CharField(blank=True, max_length=255, verbose_name='Svrha')), ('notes', models.TextField(blank=True, verbose_name='Bilješke')), ('status', models.CharField(choices=[('open', 'Otvoren'), ('closed', 'Zatvoren')], default='open', max_length=20, verbose_name='Status')), ('creator', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='created_work_orders', to=settings.AUTH_USER_MODEL, verbose_name='Kreirao')), ('vehicle', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='work_orders', to='fleet.vehicle', verbose_name='Vozilo')), ], options={ 'verbose_name': 'Putni nalog', 'verbose_name_plural': 'Putni nalozi', 'ordering': ['-created_at'], }, ), ]