import Foundation
import UIKit
import Postbox
import TelegramCore
import SyncCore

enum ChatEditInterfaceMessageStateContent: Equatable {
    case plaintext
    case media(mediaOptions: MessageMediaEditingOptions)
}

final class ChatEditInterfaceMessageState: Equatable {
    let content: ChatEditInterfaceMessageStateContent
    let mediaReference: AnyMediaReference?
    
    init(content: ChatEditInterfaceMessageStateContent, mediaReference: AnyMediaReference?) {
        self.content = content
        self.mediaReference = mediaReference
    }
    
    static func ==(lhs: ChatEditInterfaceMessageState, rhs: ChatEditInterfaceMessageState) -> Bool {
        if lhs.content != rhs.content {
            return false
        }
        if let lhsMedia = lhs.mediaReference, let rhsMedia = rhs.mediaReference {
            if !lhsMedia.media.isEqual(to: rhsMedia.media) {
                return false
            }
        } else if (lhs.mediaReference != nil) != (rhs.mediaReference != nil) {
            return false
        }
        return true
    }
}