Shared-Modul: Gemeinsame Datenmodelle #39

Closed
opened 2026-05-14 17:26:38 +00:00 by jreinemann-euris · 1 comment
jreinemann-euris commented 2026-05-14 17:26:38 +00:00 (Migrated from github.com)

Feature: Shared-Modul fuer gemeinsame Datenmodelle zwischen App und Server

Part of: #11

Ziel

Ein neues Gradle-Modul :shared (pure Kotlin/JVM) enthaelt die @Serializable DTOs, die sowohl der Android-Client als auch der Ktor-Server verwenden.

Scope

  • Neues Gradle-Modul :shared anlegen (Kotlin/JVM, keine Android-Abhaengigkeit)
  • @Serializable DTO-Klassen aus ExportData.kt extrahieren (CategoryDto, LocationDto, ItemDto, SettingDto, InventoryDto)
  • settings.gradle.kts erweitern: include(:shared)
  • :app haengt von :shared ab, bestehende Export-Klassen migrieren
  • libs.versions.toml um shared-relevante Dependencies erweitern falls noetig

Technische Hinweise

  • Bestehende Klassen: ExportData, CategoryExport, LocationExport, ItemExport, SettingExport in de.krisenvorrat.app.data.export
  • Die Room-Entities bleiben in :app (Android-spezifisch)
  • Die Shared-DTOs ersetzen die bisherigen Export-Klassen
  • Package: de.krisenvorrat.shared.model

Akzeptanzkriterien

  • Modul :shared existiert und baut erfolgreich
  • Alle @Serializable DTOs sind im Shared-Modul
  • :app kompiliert mit Dependency auf :shared
  • Bestehende JSON-Export/Import-Tests laufen weiterhin gruen
  • Kein Android-spezifischer Code im Shared-Modul
## Feature: Shared-Modul fuer gemeinsame Datenmodelle zwischen App und Server Part of: #11 ### Ziel Ein neues Gradle-Modul `:shared` (pure Kotlin/JVM) enthaelt die `@Serializable` DTOs, die sowohl der Android-Client als auch der Ktor-Server verwenden. ### Scope - Neues Gradle-Modul `:shared` anlegen (Kotlin/JVM, keine Android-Abhaengigkeit) - `@Serializable` DTO-Klassen aus `ExportData.kt` extrahieren (CategoryDto, LocationDto, ItemDto, SettingDto, InventoryDto) - `settings.gradle.kts` erweitern: `include(:shared)` - `:app` haengt von `:shared` ab, bestehende Export-Klassen migrieren - `libs.versions.toml` um shared-relevante Dependencies erweitern falls noetig ### Technische Hinweise - Bestehende Klassen: `ExportData`, `CategoryExport`, `LocationExport`, `ItemExport`, `SettingExport` in `de.krisenvorrat.app.data.export` - Die Room-Entities bleiben in `:app` (Android-spezifisch) - Die Shared-DTOs ersetzen die bisherigen Export-Klassen - Package: `de.krisenvorrat.shared.model` ### Akzeptanzkriterien - [ ] Modul `:shared` existiert und baut erfolgreich - [ ] Alle `@Serializable` DTOs sind im Shared-Modul - [ ] `:app` kompiliert mit Dependency auf `:shared` - [ ] Bestehende JSON-Export/Import-Tests laufen weiterhin gruen - [ ] Kein Android-spezifischer Code im Shared-Modul
jreinemann-euris commented 2026-05-14 17:50:47 +00:00 (Migrated from github.com)

Abgeschlossen (2025-05-14)

Zyklen: 1
Tests: 165 Tests, 0 Fehler

Implementierte Artefakte

  • Gradle-Modul :shared (Kotlin/JVM + kotlinx.serialization)
  • CategoryDto, LocationDto, ItemDto, SettingDto, InventoryDto in de.krisenvorrat.shared.model
  • :app migriert auf Shared-DTOs, ExportData.kt entfernt
  • settings.gradle.kts, build.gradle.kts, libs.versions.toml aktualisiert

Abweichungen

Keine

## Abgeschlossen (2025-05-14) **Zyklen:** 1 **Tests:** ✅ 165 Tests, 0 Fehler ### Implementierte Artefakte - ✅ Gradle-Modul :shared (Kotlin/JVM + kotlinx.serialization) - ✅ CategoryDto, LocationDto, ItemDto, SettingDto, InventoryDto in de.krisenvorrat.shared.model - ✅ :app migriert auf Shared-DTOs, ExportData.kt entfernt - ✅ settings.gradle.kts, build.gradle.kts, libs.versions.toml aktualisiert ### Abweichungen Keine
Sign in to join this conversation.
No description provided.