// // Copyright 2021 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only // #import #import NS_ASSUME_NONNULL_BEGIN @class AciObjC; @class SDSAnyReadTransaction; @class SignalServiceAddress; @interface OWSLinkedDeviceViewedReceipt : MTLModel @property (nonatomic, readonly) SignalServiceAddress *senderAddress; @property (nonatomic, readonly, nullable) NSString *messageUniqueId; // Only nil if decoding old values @property (nonatomic, readonly) uint64_t messageIdTimestamp; @property (nonatomic, readonly) uint64_t viewedTimestamp; + (instancetype)new NS_UNAVAILABLE; - (instancetype)init NS_UNAVAILABLE; - (instancetype)initWithSenderAci:(AciObjC *)senderAci messageUniqueId:(nullable NSString *)messageUniqueId messageIdTimestamp:(uint64_t)messageIdTimestamp viewedTimestamp:(uint64_t)viewedTimestamp NS_DESIGNATED_INITIALIZER; @end @interface OWSViewedReceiptsForLinkedDevicesMessage : OWSOutgoingSyncMessage + (instancetype)new NS_UNAVAILABLE; - (instancetype)init NS_UNAVAILABLE; - (instancetype)initWithThread:(TSThread *)thread transaction:(SDSAnyReadTransaction *)transaction NS_UNAVAILABLE; - (instancetype)initWithTimestamp:(uint64_t)timestamp thread:(TSThread *)thread transaction:(SDSAnyReadTransaction *)transaction NS_UNAVAILABLE; - (instancetype)initWithThread:(TSThread *)thread viewedReceipts:(NSArray *)readReceipts transaction:(SDSAnyReadTransaction *)transaction NS_DESIGNATED_INITIALIZER; - (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER; @end NS_ASSUME_NONNULL_END