Tusker/Tusker/Models/EditedFilter.swift

39 lines
960 B
Swift

//
// EditedFilter.swift
// Tusker
//
// Created by Shadowfacts on 12/2/22.
// Copyright © 2022 Shadowfacts. All rights reserved.
//
import Foundation
import Pachyderm
class EditedFilter: ObservableObject {
let id: String?
@Published var title: String?
@Published var contexts: [FilterV1.Context]
@Published var expiresIn: TimeInterval?
@Published var keywords: [Keyword]
@Published var action: FilterV2.Action
init(_ mo: FilterMO) {
self.id = mo.id
self.title = mo.title
self.contexts = mo.contexts
if let expiresAt = mo.expiresAt {
expiresIn = expiresAt.timeIntervalSinceNow
}
self.keywords = mo.keywordMOs.map {
Keyword(id: $0.id, keyword: $0.keyword, wholeWord: $0.wholeWord)
}
self.action = mo.filterAction
}
struct Keyword {
let id: String?
var keyword: String
var wholeWord: Bool
}
}