37882-vm/core/migrations/0001_initial.py
Flatlogic Bot df45ad71cc Ver.01
2026-01-27 18:19:22 +00:00

120 lines
8.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Generated by Django 5.2.7 on 2026-01-27 18:13
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Category',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=100, verbose_name='Наименование')),
],
options={
'verbose_name': 'Категория',
'verbose_name_plural': 'Категории',
},
),
migrations.CreateModel(
name='FleetUnit',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=255, verbose_name='Наименование')),
('model_name', models.CharField(max_length=255, verbose_name='Модель')),
('vin', models.CharField(max_length=100, unique=True, verbose_name='VIN / Серийный номер')),
('plate_number', models.CharField(blank=True, max_length=50, null=True, verbose_name='Госномер')),
('year', models.PositiveIntegerField(verbose_name='Год выпуска')),
('photo', models.ImageField(blank=True, null=True, upload_to='fleet_photos/', verbose_name='Фото')),
('status', models.CharField(choices=[('active', 'В работе'), ('idle', 'Простаивает'), ('broken', 'Сломана'), ('repair', 'В ремонте'), ('waiting_parts', 'Ждёт деталь')], default='active', max_length=20, verbose_name='Статус')),
('commissioning_date', models.DateField(verbose_name='Дата ввода в эксплуатацию')),
('notes', models.TextField(blank=True, null=True, verbose_name='Примечания')),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('category', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='core.category', verbose_name='Категория')),
],
options={
'verbose_name': 'Техника',
'verbose_name_plural': 'Техника',
'ordering': ['-created_at'],
},
),
migrations.CreateModel(
name='Breakdown',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('date', models.DateField(auto_now_add=True, verbose_name='Дата')),
('system_node', models.CharField(max_length=255, verbose_name='Узел / система')),
('description', models.TextField(verbose_name='Описание')),
('status', models.CharField(choices=[('reported', 'Заявлено'), ('repaired', 'Отремонтировано'), ('need_part', 'Нужна деталь')], default='reported', max_length=20, verbose_name='Статус')),
('repair_date', models.DateField(blank=True, null=True, verbose_name='Дата ремонта')),
('cost', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='Стоимость')),
('fleet_unit', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='breakdowns', to='core.fleetunit', verbose_name='Техника')),
],
options={
'verbose_name': 'Поломка',
'verbose_name_plural': 'Поломки',
},
),
migrations.CreateModel(
name='Maintenance',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('m_type', models.CharField(choices=[('TO-250', 'ТО-250'), ('TO-500', 'ТО-500'), ('seasonal', 'Сезонное'), ('individual', 'Индивидуальное')], max_length=50, verbose_name='Тип ТО')),
('planned_date', models.DateField(verbose_name='Плановая дата')),
('planned_runtime', models.PositiveIntegerField(verbose_name='Плановый пробег / моточасы')),
('status', models.CharField(choices=[('planned', 'Планируется'), ('in_progress', 'В процессе'), ('completed', 'Выполнено')], default='planned', max_length=20, verbose_name='Статус')),
('actual_date', models.DateField(blank=True, null=True, verbose_name='Фактическая дата')),
('actual_runtime', models.PositiveIntegerField(blank=True, null=True, verbose_name='Фактический пробег / моточасы')),
('notes', models.TextField(blank=True, null=True, verbose_name='Примечания')),
('fleet_unit', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='maintenances', to='core.fleetunit', verbose_name='Техника')),
],
options={
'verbose_name': 'ТО',
'verbose_name_plural': 'ТО',
},
),
migrations.CreateModel(
name='PartRequest',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('part_name', models.CharField(max_length=255, verbose_name='Наименование детали')),
('article_number', models.CharField(blank=True, max_length=100, null=True, verbose_name='Артикул')),
('quantity', models.PositiveIntegerField(default=1, verbose_name='Количество')),
('status', models.CharField(choices=[('draft', 'Черновик'), ('sent', 'Отправлено'), ('ordered', 'Заказано'), ('delivered', 'Доставлено')], default='draft', max_length=20, verbose_name='Статус')),
('photo', models.ImageField(blank=True, null=True, upload_to='part_photos/', verbose_name='Фото')),
('notes', models.TextField(blank=True, null=True, verbose_name='Примечание')),
('created_at', models.DateTimeField(auto_now_add=True)),
('fleet_unit', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='part_requests', to='core.fleetunit', verbose_name='Техника')),
],
options={
'verbose_name': 'Заявка на запчасть',
'verbose_name_plural': 'Заявки на запчасти',
},
),
migrations.CreateModel(
name='Document',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('doc_type', models.CharField(choices=[('passport', 'Паспорт'), ('maintenance_act', 'Акт ТО'), ('photo', 'Фото'), ('invoice', 'Счет')], max_length=50, verbose_name='Тип документа')),
('file', models.FileField(upload_to='documents/', verbose_name='Файл')),
('uploaded_at', models.DateTimeField(auto_now_add=True, verbose_name='Дата добавления')),
('breakdown', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='documents', to='core.breakdown')),
('fleet_unit', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='documents', to='core.fleetunit')),
('maintenance', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='documents', to='core.maintenance')),
('part_request', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='documents', to='core.partrequest')),
],
options={
'verbose_name': 'Документ',
'verbose_name_plural': 'Документы',
},
),
]