package ch.threema.storage.models

import ch.threema.domain.types.IdentityString

/**
 * This model is used to track at what time a group sync request has been answered. This is required
 * to limit the number of answered group sync requests per group and sender of the request.
 */
class IncomingGroupSyncRequestLogModel(
    /**
     * The database id of the group.
     */
    val groupId: Long,
    /**
     * The identity of the sender of the group sync request.
     */
    val senderIdentity: IdentityString,
    /**
     * The time when the last group request from [senderIdentity] in group [groupId] has been
     * answered.
     */
    var lastHandledRequest: Long,
) {
    companion object {
        const val TABLE = "incoming_group_sync_request_log"

        const val COLUMN_GROUP_ID = "groupId"
        const val COLUMN_SENDER_IDENTITY = "senderIdentity"
        const val COLUMN_LAST_HANDLED_REQUEST = "lastHandledRequest"
    }
}
