# Generated by Django 5.0.6 on 2025-08-24 19:27

import uuid

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


class Migration(migrations.Migration):

    dependencies = [
        ("stiftung", "0010_rentmeister_stiftungskonto_verwaltungskosten"),
    ]

    operations = [
        migrations.CreateModel(
            name="BankTransaction",
            fields=[
                (
                    "id",
                    models.UUIDField(
                        default=uuid.uuid4,
                        editable=False,
                        primary_key=True,
                        serialize=False,
                    ),
                ),
                ("datum", models.DateField(verbose_name="Buchungsdatum")),
                (
                    "valuta",
                    models.DateField(blank=True, null=True, verbose_name="Valutadatum"),
                ),
                (
                    "betrag",
                    models.DecimalField(
                        decimal_places=2, max_digits=12, verbose_name="Betrag (€)"
                    ),
                ),
                (
                    "waehrung",
                    models.CharField(
                        default="EUR", max_length=3, verbose_name="Währung"
                    ),
                ),
                ("verwendungszweck", models.TextField(verbose_name="Verwendungszweck")),
                (
                    "empfaenger_zahlungspflichtiger",
                    models.CharField(
                        blank=True,
                        max_length=200,
                        verbose_name="Empfänger/Zahlungspflichtiger",
                    ),
                ),
                (
                    "iban_gegenpartei",
                    models.CharField(
                        blank=True, max_length=34, verbose_name="IBAN Gegenpartei"
                    ),
                ),
                (
                    "bic_gegenpartei",
                    models.CharField(
                        blank=True, max_length=11, verbose_name="BIC Gegenpartei"
                    ),
                ),
                (
                    "referenz",
                    models.CharField(
                        blank=True,
                        max_length=100,
                        verbose_name="Referenz/Transaktions-ID",
                    ),
                ),
                (
                    "transaction_type",
                    models.CharField(
                        choices=[
                            ("eingang", "Eingang"),
                            ("ausgang", "Ausgang"),
                            ("lastschrift", "Lastschrift"),
                            ("ueberweisung", "Überweisung"),
                            ("dauerauftrag", "Dauerauftrag"),
                            ("kartenzahlung", "Kartenzahlung"),
                            ("zinsen", "Zinsen"),
                            ("gebuehren", "Gebühren"),
                            ("sonstiges", "Sonstiges"),
                        ],
                        default="sonstiges",
                        max_length=20,
                        verbose_name="Transaktionsart",
                    ),
                ),
                (
                    "status",
                    models.CharField(
                        choices=[
                            ("imported", "Importiert"),
                            ("verified", "Geprüft"),
                            ("assigned", "Zugeordnet"),
                            ("ignored", "Ignoriert"),
                        ],
                        default="imported",
                        max_length=20,
                        verbose_name="Status",
                    ),
                ),
                ("kommentare", models.TextField(blank=True, verbose_name="Kommentare")),
                (
                    "import_datei",
                    models.CharField(
                        blank=True, max_length=255, verbose_name="Import-Datei"
                    ),
                ),
                (
                    "importiert_am",
                    models.DateTimeField(
                        auto_now_add=True, verbose_name="Importiert am"
                    ),
                ),
                (
                    "saldo_nach_buchung",
                    models.DecimalField(
                        blank=True,
                        decimal_places=2,
                        max_digits=12,
                        null=True,
                        verbose_name="Saldo nach Buchung",
                    ),
                ),
                (
                    "konto",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to="stiftung.stiftungskonto",
                        verbose_name="Konto",
                    ),
                ),
                (
                    "verwaltungskosten",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        to="stiftung.verwaltungskosten",
                        verbose_name="Zugeordnete Verwaltungskosten",
                    ),
                ),
            ],
            options={
                "verbose_name": "Banktransaktion",
                "verbose_name_plural": "Banktransaktionen",
                "ordering": ["-datum", "-importiert_am"],
                "unique_together": {("konto", "datum", "betrag", "referenz")},
            },
        ),
    ]
