ChWebsiteApp/CHDataManagement/Model/Settings/LocalizedPostSettings.swift
2025-01-08 14:59:04 +01:00

60 lines
1.5 KiB
Swift

import Foundation
final class LocalizedPostSettings: ObservableObject {
/// The page title for the post feed
@Published
var title: String
/// The page description for the post feed
@Published
var description: String
/// The path to the feed in the final website, appended with the page number
@Published
var feedUrlPrefix: String
/**
The text to display when linking to a page
Each post may define a custom text.
*/
@Published
var defaultPageLinkText: String
init(title: String, description: String, feedUrlPrefix: String, defaultPageLinkText: String) {
self.title = title
self.description = description
self.feedUrlPrefix = feedUrlPrefix
self.defaultPageLinkText = defaultPageLinkText
}
}
// MARK: Storage
extension LocalizedPostSettings {
convenience init(data: Data) {
self.init(
title: data.feedTitle,
description: data.feedDescription,
feedUrlPrefix: data.feedUrlPrefix,
defaultPageLinkText: data.defaultPageLinkText)
}
var data: Data {
.init(
feedTitle: title,
feedDescription: description,
feedUrlPrefix: feedUrlPrefix,
defaultPageLinkText: defaultPageLinkText)
}
struct Data: Codable {
let feedTitle: String
let feedDescription: String
let feedUrlPrefix: String
let defaultPageLinkText: String
}
}