### feat: erweitere Stammdaten-Integration

- **Repositories:** Implementiere und integriere `KtorPferdRepository` und `KtorFunktionaerRepository`.
- **SQLite:** Erweitere Schema um `LocalPferd` und `LocalFunktionaer` mit passenden Queries.
- **ViewModels:** Passe `PferdeViewModel` und `FunktionaerViewModel` an, um Flows und Repository-Injektion zu nutzen.
- **DI-Module:** Aktualisiere `PferdeModule` und `FunktionaerModule` für Backend-Anbindung.
This commit is contained in:
2026-04-22 12:25:39 +02:00
parent d4cc0eb77d
commit 98c241fc64
12 changed files with 385 additions and 178 deletions
@@ -64,6 +64,30 @@ CREATE TABLE LocalReiter (
last_updated INTEGER NOT NULL
);
CREATE TABLE LocalPferd (
id INTEGER NOT NULL PRIMARY KEY,
name TEXT NOT NULL,
lebensnummer TEXT NOT NULL,
geschlecht TEXT,
farbe TEXT,
geburtsjahr INTEGER,
oebs_nummer TEXT,
is_active INTEGER NOT NULL DEFAULT 1,
last_updated INTEGER NOT NULL
);
CREATE TABLE LocalFunktionaer (
id INTEGER NOT NULL PRIMARY KEY,
vorname TEXT NOT NULL,
nachname TEXT NOT NULL,
richter_nummer TEXT,
disziplinen TEXT, -- Kommagetrennte Liste
qualifikation TEXT,
email TEXT,
is_active INTEGER NOT NULL DEFAULT 1,
last_updated INTEGER NOT NULL
);
-- Verein Queries
upsertVerein:
INSERT OR REPLACE INTO LocalVerein(id, oebs_nummer, name, ort, plz, bundesland, is_active, last_updated)
@@ -90,8 +114,40 @@ SELECT * FROM LocalReiter
WHERE nachname LIKE ('%' || ? || '%') OR vorname LIKE ('%' || ? || '%') OR zns_nummer LIKE ('%' || ? || '%')
ORDER BY nachname ASC, vorname ASC;
-- Pferde Queries
upsertPferd:
INSERT OR REPLACE INTO LocalPferd(id, name, lebensnummer, geschlecht, farbe, geburtsjahr, oebs_nummer, is_active, last_updated)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?);
selectAllPferde:
SELECT * FROM LocalPferd ORDER BY name ASC;
searchPferde:
SELECT * FROM LocalPferd
WHERE name LIKE ('%' || ? || '%') OR lebensnummer LIKE ('%' || ? || '%') OR oebs_nummer LIKE ('%' || ? || '%')
ORDER BY name ASC;
-- Funktionaer Queries
upsertFunktionaer:
INSERT OR REPLACE INTO LocalFunktionaer(id, vorname, nachname, richter_nummer, disziplinen, qualifikation, email, is_active, last_updated)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?);
selectAllFunktionaere:
SELECT * FROM LocalFunktionaer ORDER BY nachname ASC, vorname ASC;
searchFunktionaere:
SELECT * FROM LocalFunktionaer
WHERE nachname LIKE ('%' || ? || '%') OR vorname LIKE ('%' || ? || '%') OR richter_nummer LIKE ('%' || ? || '%')
ORDER BY nachname ASC, vorname ASC;
deleteAllVereine:
DELETE FROM LocalVerein;
deleteAllReiter:
DELETE FROM LocalReiter;
deleteAllPferde:
DELETE FROM LocalPferd;
deleteAllFunktionaere:
DELETE FROM LocalFunktionaer;