PasswordTreeSnapshot.kt
package de.pflugradts.passbird.application.passwordtree
import de.pflugradts.passbird.domain.model.egg.Egg
import de.pflugradts.passbird.domain.model.egg.FavoriteMap
import de.pflugradts.passbird.domain.model.egg.MemoryMap
import de.pflugradts.passbird.domain.model.shell.Shell
import de.pflugradts.passbird.domain.model.shell.Shell.Companion.emptyShell
import de.pflugradts.passbird.domain.model.slot.Slot
import de.pflugradts.passbird.domain.service.password.tree.emptyFavorites
import de.pflugradts.passbird.domain.service.password.tree.emptyMemory
data class PasswordTreeSnapshot(
val eggs: List<Egg> = emptyList(),
val favorites: FavoriteMap = emptyFavorites(),
val memory: MemoryMap = emptyMemory(),
val nests: List<Shell> = List(Slot.CAPACITY) { emptyShell() },
) {
init {
require(nests.size == Slot.CAPACITY)
}
}