diff --git a/BanYaroGo/Views/AusgabenView.swift b/BanYaroGo/Views/AusgabenView.swift index a36d8c9..8569418 100644 --- a/BanYaroGo/Views/AusgabenView.swift +++ b/BanYaroGo/Views/AusgabenView.swift @@ -93,7 +93,7 @@ private struct ExpenseRow: View { .foregroundStyle(Color.accentColor) .frame(width: 28) VStack(alignment: .leading, spacing: 2) { - Text(expense.kategorie).font(.subheadline.bold()) + Text(label(for: expense.kategorie)).font(.subheadline.bold()) HStack(spacing: 6) { Text(dateLabel) if let dog = expense.dogName { @@ -115,14 +115,24 @@ private struct ExpenseRow: View { private func icon(for kategorie: String) -> String { switch kategorie.lowercased() { - case "futter", "essen": return "fork.knife" - case "tierarzt": return "stethoscope" - case "versicherung": return "shield.lefthalf.filled" - case "spielzeug": return "tennisball.fill" - case "pflege", "fellpflege": return "scissors" - case "training", "hundeschule": return "graduationcap.fill" - case "leckerli", "snacks": return "carrot.fill" - default: return "eurosign.circle" + case "futter": return "fork.knife" + case "tierarzt": return "stethoscope" + case "zubehoer": return "bag.fill" + case "versicherung": return "shield.lefthalf.filled" + case "sitter": return "person.fill" + default: return "eurosign.circle" + } + } + + private func label(for kategorie: String) -> String { + switch kategorie.lowercased() { + case "futter": return "Futter" + case "tierarzt": return "Tierarzt" + case "zubehoer": return "Zubehör" + case "versicherung": return "Versicherung" + case "sitter": return "Sitter" + case "sonstiges": return "Sonstiges" + default: return kategorie.capitalized } } } @@ -131,7 +141,7 @@ private struct AddExpenseSheet: View { @Environment(\.dismiss) private var dismiss let onSaved: () -> Void - @State private var kategorie = "Futter" + @State private var kategorie = "futter" @State private var betrag = "" @State private var date = Date() @State private var notiz = "" @@ -140,14 +150,24 @@ private struct AddExpenseSheet: View { @State private var isSaving = false @State private var errorMessage: String? - private let kategorien = ["Futter", "Tierarzt", "Versicherung", "Spielzeug", "Pflege", "Training", "Leckerli", "Sonstiges"] + /// Backend-Whitelist: tierarzt, futter, zubehoer, versicherung, sitter, sonstiges + private let kategorien: [(key: String, label: String)] = [ + ("futter", "Futter"), + ("tierarzt", "Tierarzt"), + ("zubehoer", "Zubehör"), + ("versicherung", "Versicherung"), + ("sitter", "Sitter"), + ("sonstiges", "Sonstiges") + ] var body: some View { NavigationStack { Form { Section("Kategorie") { Picker("Kategorie", selection: $kategorie) { - ForEach(kategorien, id: \.self) { Text($0) } + ForEach(kategorien, id: \.key) { entry in + Text(entry.label).tag(entry.key) + } } } Section("Betrag") {