//
//  Copyright (c) 2019 Open Whisper Systems. All rights reserved.
//

#import "SSKMessageSenderJobRecord.h"
#import "TSOutgoingMessage.h"

NS_ASSUME_NONNULL_BEGIN

@implementation SSKMessageSenderJobRecord

#pragma mark

- (nullable instancetype)initWithCoder:(NSCoder *)coder
{
    return [super initWithCoder:coder];
}

- (nullable instancetype)initWithMessage:(TSOutgoingMessage *)message
               removeMessageAfterSending:(BOOL)removeMessageAfterSending
                                   label:(NSString *)label
                                   error:(NSError **)outError;
{
    self = [super initWithLabel:label];
    if (!self) {
        return self;
    }

    if (message.shouldBeSaved) {
        _messageId = message.uniqueId;
        if (_messageId == nil) {
            *outError = [NSError errorWithDomain:SSKJobRecordErrorDomain
                                            code:JobRecordError_AssertionError
                                        userInfo:@{ NSDebugDescriptionErrorKey : @"messageId wasn't set" }];
            return nil;
        }
        _invisibleMessage = nil;
    } else {
        _messageId = nil;
        _invisibleMessage = message;
    }

    _removeMessageAfterSending = removeMessageAfterSending;
    _threadId = message.uniqueThreadId;

    return self;
}

@end

NS_ASSUME_NONNULL_END
