# One Yjs update of a document -- an edit by someone, or a compacted state # that replaces many earlier updates. Order doesn't matter to Yjs. class DocumentUpdate < ApplicationRecord MAX_BYTES = 10.megabytes belongs_to :document belongs_to :user, optional: true validates :data, presence: true validate { errors.add(:data, "ist zu groß") if data && data.bytesize > MAX_BYTES } def as_message = { id:, data: Base64.strict_encode64(data) } end