feat(frontend+domain): add start list repository, enhance Bewerb model, and update view models
- **StartlistenRepository:** - Introduced a new repository for generating and retrieving start lists, with `DefaultStartlistenRepository` implementation for remote API integration. - **Bewerb Enhancements:** - Updated `Bewerb` and `BewerbDto` models to include additional details (e.g., `tag`, `platz`, `sparte`, etc.). - Adjusted mappers to align with model updates. - **ViewModel Updates:** - Extended `BewerbViewModel` to integrate with `StartlistenRepository` for start list generation and preview. - Refactored loading logic in `BewerbViewModel` to display errors and handle repository responses properly. - **UI Enhancements:** - Improved start list preview layout in `TurnierBewerbeTab` with additional styling and dynamic fields. - Added buttons to confirm or cancel start list changes in the preview modal. - **Dependency Injection:** - Registered `DefaultStartlistenRepository` in the `TurnierFeatureModule` and updated `BewerbViewModel` factory.
This commit is contained in:
+13
-2
@@ -2,6 +2,9 @@ package at.mocode.desktop.screens.preview
|
||||
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.runtime.Composable
|
||||
import at.mocode.turnier.feature.domain.Bewerb
|
||||
import at.mocode.turnier.feature.domain.BewerbRepository
|
||||
import at.mocode.turnier.feature.domain.StartlistenRepository
|
||||
import at.mocode.turnier.feature.presentation.*
|
||||
import at.mocode.zns.parser.ZnsBewerb
|
||||
import at.mocode.veranstalter.feature.presentation.VeranstalterAuswahlScreen
|
||||
@@ -114,10 +117,18 @@ fun PreviewTurnierOrganisationTab() {
|
||||
@Composable
|
||||
fun PreviewTurnierBewerbeTab() {
|
||||
val mockRepo = object : BewerbRepository {
|
||||
override suspend fun listByTurnier(turnierId: Long): List<BewerbListItem> = emptyList()
|
||||
override suspend fun list(turnierId: Long): Result<List<Bewerb>> = Result.success(emptyList())
|
||||
override suspend fun getById(id: Long): Result<Bewerb> = Result.failure(NotImplementedError())
|
||||
override suspend fun create(model: Bewerb): Result<Bewerb> = Result.failure(NotImplementedError())
|
||||
override suspend fun update(id: Long, model: Bewerb): Result<Bewerb> = Result.failure(NotImplementedError())
|
||||
override suspend fun delete(id: Long): Result<Unit> = Result.success(Unit)
|
||||
override suspend fun importBewerbe(turnierId: Long, bewerbe: List<ZnsBewerb>): Result<Unit> = Result.success(Unit)
|
||||
}
|
||||
val vm = BewerbViewModel(mockRepo, 1L)
|
||||
val mockStartlistenRepo = object : StartlistenRepository {
|
||||
override suspend fun generate(bewerbId: Long): Result<List<StartlistenZeile>> = Result.success(emptyList())
|
||||
override suspend fun getByBewerb(bewerbId: Long): Result<List<StartlistenZeile>> = Result.success(emptyList())
|
||||
}
|
||||
val vm = BewerbViewModel(mockRepo, mockStartlistenRepo, 1L)
|
||||
MaterialTheme {
|
||||
BewerbeTabContent(viewModel = vm, turnierId = 1L)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user