//
//  LKFContextChange.swift
//  LKF
//
//  Created by Alexander Holzer on 28.02.24.
//  Copyright © 2024 Alexander Holzer. All rights reserved.
//

import Foundation

open class LKFContextChange {
    
    public let key: String
    
    public init (key: String) {
        self.key = key
    }
}

public enum LKFContextChangeAufenthaltOperation {
    case replace
    case add
    case delete
    case copy
}

open class LKFContextChangeAufenthalt : LKFContextChange {
    
    public let operation : LKFContextChangeAufenthaltOperation
    public let aufenthalt: LKFAufenthalt
    public let originalLines : [String]?
    
    init (operation: LKFContextChangeAufenthaltOperation, aufenthalt:LKFAufenthalt) {
        self.operation = operation
        self.aufenthalt = aufenthalt
        
        if operation == .replace || operation == .delete {
            originalLines = aufenthalt.getOutput()
        }
        else {
            originalLines = nil
        }
        
        super.init(key: "aufenthalt:\(aufenthalt.key)")
    }
}
