ReadKeep/readeck/Domain/Model/Bookmark.swift
Ilyas Hallak e88693363b Refactor authentication, settings, and UI; add search and improve bookmark image handling
- Refactor authentication flow to require endpoint for login and decouple token saving
- Add and integrate search functionality for bookmarks
- Simplify and improve server settings setup (remove connection test, direct save & login)
- Update sidebar/tab navigation to include search and improve structure
- Show placeholder image in BookmarkCardView if no image is available, ensuring consistent layout
- Improve BookmarkDetailView header and meta info display
- Add utility for domain extraction from URLs
- General code cleanup and minor UI/UX improvements
2025-07-03 21:45:53 +02:00

67 lines
1.3 KiB
Swift

import Foundation
struct BookmarksPage {
var bookmarks: [Bookmark]
let currentPage: Int?
let totalCount: Int?
let totalPages: Int?
let links: [String]?
}
struct Bookmark {
let id: String
let title: String
let url: String
let href: String
let description: String
let authors: [String]
let created: String
let published: String?
let updated: String
let siteName: String
let site: String
let readingTime: Int?
let wordCount: Int?
let hasArticle: Bool
let isArchived: Bool
let isDeleted: Bool
let isMarked: Bool
let labels: [String]
let lang: String?
let loaded: Bool
let readProgress: Int
let documentType: String
let state: Int
let textDirection: String
let type: String
let resources: BookmarkResources
}
struct BookmarkResources {
let article: Resource?
let icon: ImageResource?
let image: ImageResource?
let log: Resource?
let props: Resource?
let thumbnail: ImageResource?
}
struct Resource {
let src: String
}
struct ImageResource {
let src: String
let height: Int
let width: Int
}
extension Bookmark: Hashable, Identifiable {
func hash(into hasher: inout Hasher) {
hasher.combine(id)
}
static func == (lhs: Bookmark, rhs: Bookmark) -> Bool {
lhs.id == rhs.id
}
}