This repository has no description
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435// SPDX-License-Identifier: AGPL-3.0-or-later
import type {ChannelID, MessageID, UserID} from '../BrandedTypes';import type {ReadStateRow} from '../database/types/ChannelTypes';
type ReadStateSourceRow = ReadStateRow & {version?: bigint | number | null};
export class ReadState { readonly userId: UserID; readonly channelId: ChannelID; readonly lastMessageId: MessageID | null; readonly mentionCount: number; readonly lastPinTimestamp: Date | null; readonly version: bigint;
constructor(row: ReadStateSourceRow) { this.userId = row.user_id; this.channelId = row.channel_id; this.lastMessageId = row.message_id ?? null; this.mentionCount = row.mention_count ?? 0; this.lastPinTimestamp = row.last_pin_timestamp ?? null; this.version = row.version == null ? 0n : BigInt(row.version); }
toRow(): ReadStateRow { return { user_id: this.userId, channel_id: this.channelId, message_id: this.lastMessageId, mention_count: this.mentionCount, last_pin_timestamp: this.lastPinTimestamp, }; }}