"""Gemeinsame Datenstrukturen für den Import."""

from __future__ import annotations

from dataclasses import dataclass, field
from typing import Any


@dataclass
class CustomerRecord:
    values: dict[str, Any] = field(default_factory=dict)
    source: str = "A"
    row_index: int = 0
    match_status: str = "Kein Match (Neukunde)"
    issues: list[str] = field(default_factory=list)
    conflict: bool = False

    def get(self, key: str, default: Any = None) -> Any:
        return self.values.get(key, default)

    def set(self, key: str, value: Any) -> None:
        self.values[key] = value

    def clone(self) -> CustomerRecord:
        return CustomerRecord(
            values=dict(self.values),
            source=self.source,
            row_index=self.row_index,
            match_status=self.match_status,
            issues=list(self.issues),
            conflict=self.conflict,
        )

    def display_name(self) -> str:
        company = str(self.get("company") or "").strip()
        first = str(self.get("first_name") or "").strip()
        last = str(self.get("last_name") or "").strip()
        if company:
            return company
        full = f"{first} {last}".strip()
        return full or f"Zeile {self.row_index}"


@dataclass
class ProcessResult:
    success: bool
    message: str
    stats: dict[str, Any] = field(default_factory=dict)
    issues: list[dict[str, Any]] = field(default_factory=list)
    log: list[str] = field(default_factory=list)
    output_path: str | None = None
