Jul 14 - Using CDN - update
This commit is contained in:
@@ -26,6 +26,11 @@ final class LocalIssue {
|
||||
/// JSON-encoded array of resolution photo server paths (issue_result_photos bucket).
|
||||
/// Mirrors Issue.result_photos on the server — shown under "Resolution Details".
|
||||
var resultPhotoServerPathsJSON: String = "[]"
|
||||
/// JSON-encoded absolute display URLs (presigned R2 / absolute static),
|
||||
/// parallel to photoServerPaths / resultPhotoServerPaths (same order).
|
||||
/// Empty ("[]") when talking to an older server that omits the *_url fields.
|
||||
var photoServerUrlsJSON: String = "[]"
|
||||
var resultPhotoServerUrlsJSON: String = "[]"
|
||||
|
||||
// Shared coders — JSONDecoder/Encoder init is expensive (parses locale and
|
||||
// calendar info). Allocating them inside computed property getters means
|
||||
@@ -115,6 +120,22 @@ final class LocalIssue {
|
||||
}
|
||||
}
|
||||
|
||||
/// Absolute display URLs parallel to photoServerPaths (same order).
|
||||
var photoServerUrls: [String] {
|
||||
get { (try? Self.jsonDecoder.decode([String].self,
|
||||
from: Data(photoServerUrlsJSON.utf8))) ?? [] }
|
||||
set { photoServerUrlsJSON = (try? String(data: Self.jsonEncoder.encode(newValue),
|
||||
encoding: .utf8)) ?? "[]" }
|
||||
}
|
||||
|
||||
/// Absolute display URLs parallel to resultPhotoServerPaths (same order).
|
||||
var resultPhotoServerUrls: [String] {
|
||||
get { (try? Self.jsonDecoder.decode([String].self,
|
||||
from: Data(resultPhotoServerUrlsJSON.utf8))) ?? [] }
|
||||
set { resultPhotoServerUrlsJSON = (try? String(data: Self.jsonEncoder.encode(newValue),
|
||||
encoding: .utf8)) ?? "[]" }
|
||||
}
|
||||
|
||||
var createdAt: Date
|
||||
var syncStatus: String // "pending" | "synced" | "failed"
|
||||
var syncRetryCount: Int
|
||||
@@ -193,6 +214,8 @@ final class LocalIssue {
|
||||
self.photoLocalPathsJSON = "[]"
|
||||
self.photoServerPathsJSON = "[]"
|
||||
self.resultPhotoServerPathsJSON = "[]"
|
||||
self.photoServerUrlsJSON = "[]"
|
||||
self.resultPhotoServerUrlsJSON = "[]"
|
||||
self.createdAt = Date()
|
||||
self.syncStatus = "pending"
|
||||
self.syncRetryCount = 0
|
||||
|
||||
Reference in New Issue
Block a user