ReadKeep/readeck/Domain/Model/BookmarkUpdateRequest.swift
Ilyas Hallak d2e8228903 feat: Add label management to bookmarks and UI improvements
- BookmarkDetail: Add labels property, display and manage labels in detail view
- Add AddLabelsToBookmarkUseCase and RemoveLabelsFromBookmarkUseCase
- Update UpdateBookmarkUseCase and BookmarkUpdateRequest for label operations
- UI: Show labels in BookmarkDetailView, add label management sheet
- DefaultUseCaseFactory: Provide use cases for label management
- Localizable: Add/adjust label-related strings, minor cleanup
- SettingsServerView: Update debug endpoint
- SidebarTab: Change 'Alle' to 'All'
- Project: Remove unused region from Xcode project
2025-07-08 16:30:27 +02:00

70 lines
2.1 KiB
Swift

import Foundation
struct BookmarkUpdateRequest {
let addLabels: [String]?
let isArchived: Bool?
let isDeleted: Bool?
let isMarked: Bool?
let labels: [String]?
let readAnchor: String?
let readProgress: Int?
let removeLabels: [String]?
let title: String?
init(
addLabels: [String]? = nil,
isArchived: Bool? = nil,
isDeleted: Bool? = nil,
isMarked: Bool? = nil,
labels: [String]? = nil,
readAnchor: String? = nil,
readProgress: Int? = nil,
removeLabels: [String]? = nil,
title: String? = nil
) {
self.addLabels = addLabels
self.isArchived = isArchived
self.isDeleted = isDeleted
self.isMarked = isMarked
self.labels = labels
self.readAnchor = readAnchor
self.readProgress = readProgress
self.removeLabels = removeLabels
self.title = title
}
}
// Convenience Initializers für häufige Aktionen
extension BookmarkUpdateRequest {
static func archive(_ isArchived: Bool) -> BookmarkUpdateRequest {
return BookmarkUpdateRequest(isArchived: isArchived)
}
static func favorite(_ isMarked: Bool) -> BookmarkUpdateRequest {
return BookmarkUpdateRequest(isMarked: isMarked)
}
static func delete(_ isDeleted: Bool) -> BookmarkUpdateRequest {
return BookmarkUpdateRequest(isDeleted: isDeleted)
}
static func updateProgress(_ progress: Int, anchor: String? = nil) -> BookmarkUpdateRequest {
return BookmarkUpdateRequest(readAnchor: anchor, readProgress: progress)
}
static func updateTitle(_ title: String) -> BookmarkUpdateRequest {
return BookmarkUpdateRequest(title: title)
}
static func updateLabels(_ labels: [String]) -> BookmarkUpdateRequest {
return BookmarkUpdateRequest(labels: labels)
}
static func addLabels(_ labels: [String]) -> BookmarkUpdateRequest {
return BookmarkUpdateRequest(addLabels: labels)
}
static func removeLabels(_ labels: [String]) -> BookmarkUpdateRequest {
return BookmarkUpdateRequest(removeLabels: labels)
}
}