# Generated by Django 5.2.4 on 2025-09-07 07:35 import django.db.models.deletion from django.conf import settings from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ ('invoices', '0001_initial'), ('processes', '0001_initial'), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name='InstallationAssignment', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', models.DateTimeField(auto_now_add=True, verbose_name='تاریخ ایجاد')), ('updated', models.DateTimeField(auto_now=True, verbose_name='تاریخ بروزرسانی')), ('is_active', models.BooleanField(default=True, verbose_name='فعال')), ('is_deleted', models.BooleanField(default=False, verbose_name='حذف شده')), ('deleted_at', models.DateTimeField(blank=True, null=True, verbose_name='تاریخ حذف')), ('scheduled_date', models.DateField(blank=True, null=True, verbose_name='تاریخ مراجعه')), ('notes', models.TextField(blank=True, verbose_name='یادداشت')), ('assigned_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='assigner_installations', to=settings.AUTH_USER_MODEL, verbose_name='اختصاص\u200cدهنده')), ('installer', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='assigned_installations', to=settings.AUTH_USER_MODEL, verbose_name='نصاب')), ('process_instance', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='installation_assignments', to='processes.processinstance', verbose_name='نمونه فرآیند')), ], options={ 'verbose_name': 'اختصاص نصاب', 'verbose_name_plural': 'اختصاص\u200cهای نصاب', 'ordering': ['-created'], }, ), migrations.CreateModel( name='InstallationReport', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', models.DateTimeField(auto_now_add=True, verbose_name='تاریخ ایجاد')), ('updated', models.DateTimeField(auto_now=True, verbose_name='تاریخ بروزرسانی')), ('is_active', models.BooleanField(default=True, verbose_name='فعال')), ('is_deleted', models.BooleanField(default=False, verbose_name='حذف شده')), ('deleted_at', models.DateTimeField(blank=True, null=True, verbose_name='تاریخ حذف')), ('visited_date', models.DateField(blank=True, null=True, verbose_name='تاریخ مراجعه')), ('new_water_meter_serial', models.CharField(blank=True, max_length=50, null=True, verbose_name='سریال کنتور جدید')), ('seal_number', models.CharField(blank=True, max_length=50, null=True, verbose_name='شماره پلمپ')), ('is_meter_suspicious', models.BooleanField(default=False, verbose_name='کنتور مشکوک است؟')), ('utm_x', models.DecimalField(blank=True, decimal_places=6, max_digits=10, null=True, verbose_name='UTM X')), ('utm_y', models.DecimalField(blank=True, decimal_places=6, max_digits=10, null=True, verbose_name='UTM Y')), ('description', models.TextField(blank=True, verbose_name='توضیحات')), ('approved', models.BooleanField(default=False, verbose_name='تایید شده')), ('approved_at', models.DateTimeField(blank=True, null=True, verbose_name='تاریخ تایید')), ('assignment', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='reports', to='installations.installationassignment', verbose_name='اختصاص')), ('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='ایجادکننده')), ], options={ 'verbose_name': 'گزارش نصب', 'verbose_name_plural': 'گزارش\u200cهای نصب', 'ordering': ['-created'], }, ), migrations.CreateModel( name='InstallationPhoto', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', models.DateTimeField(auto_now_add=True, verbose_name='تاریخ ایجاد')), ('updated', models.DateTimeField(auto_now=True, verbose_name='تاریخ بروزرسانی')), ('is_active', models.BooleanField(default=True, verbose_name='فعال')), ('is_deleted', models.BooleanField(default=False, verbose_name='حذف شده')), ('deleted_at', models.DateTimeField(blank=True, null=True, verbose_name='تاریخ حذف')), ('image', models.ImageField(upload_to='installations/photos/%Y/%m/%d/', verbose_name='عکس')), ('report', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='photos', to='installations.installationreport', verbose_name='گزارش')), ], options={ 'verbose_name': 'عکس نصب', 'verbose_name_plural': 'عکس\u200cهای نصب', 'ordering': ['created'], }, ), migrations.CreateModel( name='InstallationItemChange', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', models.DateTimeField(auto_now_add=True, verbose_name='تاریخ ایجاد')), ('updated', models.DateTimeField(auto_now=True, verbose_name='تاریخ بروزرسانی')), ('is_active', models.BooleanField(default=True, verbose_name='فعال')), ('is_deleted', models.BooleanField(default=False, verbose_name='حذف شده')), ('deleted_at', models.DateTimeField(blank=True, null=True, verbose_name='تاریخ حذف')), ('change_type', models.CharField(choices=[('add', 'افزودن'), ('remove', 'حذف')], max_length=6, verbose_name='نوع تغییر')), ('quantity', models.PositiveIntegerField(verbose_name='تعداد')), ('unit_price', models.DecimalField(blank=True, decimal_places=2, max_digits=15, null=True, verbose_name='قیمت واحد')), ('total_price', models.DecimalField(blank=True, decimal_places=2, max_digits=15, null=True, verbose_name='قیمت کل')), ('notes', models.TextField(blank=True, verbose_name='یادداشت')), ('item', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='invoices.item', verbose_name='آیتم')), ('report', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='item_changes', to='installations.installationreport', verbose_name='گزارش')), ], options={ 'verbose_name': 'تغییر آیتم نصب', 'verbose_name_plural': 'تغییرات آیتم\u200cهای نصب', 'ordering': ['created'], }, ), ]