ImportExportService.kt

package de.pflugradts.passbird.application.exchange

import de.pflugradts.kotlinextensions.TryResult
import de.pflugradts.passbird.domain.model.shell.Shell
import de.pflugradts.passbird.domain.model.slot.Slot

interface ImportExportService {
    fun peekImportEggIdShells(): TryResult<ShellMap>
    fun peekImportNests(): TryResult<List<ImportNestPreview>>
    fun importEggs()
    fun importEggs(sourceSlot: Slot, targetSlot: Slot)
    fun exportEggs()
    fun exportEggs(slots: Set<Slot>)
}

data class ImportNestPreview(val nestId: Shell, val slot: Slot, val eggIds: List<Shell>)
typealias ShellMap = Map<Slot, List<Shell>>