Pith - kiln
package com.vgmlr.kiln

import androidx.room.Entity
import androidx.room.ForeignKey
import androidx.room.Index

@Entity(
    tableName = "day_record",
    primaryKeys = ["accountId", "epochDay"],
    foreignKeys = [ForeignKey(
        entity = KilnAccount::class,
        parentColumns = ["id"],
        childColumns = ["accountId"],
        onDelete = ForeignKey.CASCADE
    )],
    indices = [Index("accountId")]
)
data class KilnDayRecord(
    val accountId: Long,
    val epochDay: Long,
    val mood: Int? = null,
    val checked: Set<Long> = emptySet()
) {
    val hasData get() = mood != null || checked.isNotEmpty()

    fun toggled(id: Long): KilnDayRecord =
        copy(checked = if (id in checked) checked - id else checked + id)
}