# Generated by Django 5.2.4 on 2025-07-24 19:21 import django.db.models.deletion from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ ('ssh_manager', '0012_sshcredential_connection_status_and_more'), ] operations = [ migrations.CreateModel( name='Invoice', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('invoice_number', models.CharField(max_length=50, unique=True, verbose_name='Fatura No')), ('issue_date', models.DateField(verbose_name='Düzenleme Tarihi')), ('due_date', models.DateField(verbose_name='Son Ödeme Tarihi')), ('status', models.CharField(choices=[('draft', 'Taslak'), ('sent', 'Gönderildi'), ('paid', 'Ödendi'), ('overdue', 'Gecikti'), ('cancelled', 'İptal Edildi')], default='draft', max_length=20, verbose_name='Durum')), ('payment_method', models.CharField(choices=[('bank_transfer', 'Banka Havalesi'), ('credit_card', 'Kredi Kartı'), ('cash', 'Nakit'), ('other', 'Diğer')], default='bank_transfer', max_length=20, verbose_name='Ödeme Yöntemi')), ('subtotal', models.DecimalField(decimal_places=2, default=0, max_digits=10, verbose_name='Ara Toplam')), ('tax_amount', models.DecimalField(decimal_places=2, default=0, max_digits=10, verbose_name='KDV Tutarı')), ('total_amount', models.DecimalField(decimal_places=2, default=0, max_digits=10, verbose_name='Toplam Tutar')), ('discount', models.DecimalField(decimal_places=2, default=0, max_digits=10, verbose_name='İndirim')), ('notes', models.TextField(blank=True, null=True, verbose_name='Notlar')), ('payment_notes', models.TextField(blank=True, null=True, verbose_name='Ödeme Notları')), ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Oluşturma Tarihi')), ('updated_at', models.DateTimeField(auto_now=True, verbose_name='Güncelleme Tarihi')), ('customer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='invoices', to='ssh_manager.customer', verbose_name='Müşteri')), ], options={ 'verbose_name': 'Fatura', 'verbose_name_plural': 'Faturalar', 'ordering': ['-issue_date', '-id'], }, ), migrations.CreateModel( name='InvoiceItem', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('description', models.CharField(max_length=255, verbose_name='Açıklama')), ('quantity', models.DecimalField(decimal_places=2, default=1, max_digits=10, verbose_name='Miktar')), ('unit_price', models.DecimalField(decimal_places=2, max_digits=10, verbose_name='Birim Fiyat')), ('tax_rate', models.DecimalField(decimal_places=2, default=18, max_digits=5, verbose_name='KDV Oranı (%)')), ('amount', models.DecimalField(decimal_places=2, max_digits=10, verbose_name='Tutar')), ('invoice', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='items', to='ssh_manager.invoice', verbose_name='Fatura')), ('project', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='ssh_manager.project', verbose_name='İlişkili Proje')), ], options={ 'verbose_name': 'Fatura Kalemi', 'verbose_name_plural': 'Fatura Kalemleri', 'ordering': ['id'], }, ), ]