Untitled
import Foundation // AnnotationType Enum enum AnnotationType: String, Codable { case draw = "draw" case pin = "pin" case text = "text" } // Comment Model struct Comment: Codable { var id: String? var chatType: Int var messageType: String var payload: String var mentionedUserIds: [String]? var annotation: Annotation? var parent: String? var document: String var caseId: String var user: String var replies: [Comment]? var createdAt: Date? var updatedAt: Date? // Nested Annotation Struct struct Annotation: Codable { var annotationType: AnnotationType? var parentId: String? var galleryId: String? var meta: Meta? // Nested Meta Struct struct Meta: Codable { var thumbId: String? var name: String? var pins: [Pin]? var shapes: [[[[String]]]]? // Nested Pin Struct struct Pin: Codable { var position: [Double] } } } } // Example JSON Encoding and Decoding extension Comment { static func fromJSON(_ jsonData: Data) throws -> Comment { let decoder = JSONDecoder() decoder.dateDecodingStrategy = .iso8601 return try decoder.decode(Comment.self, from: jsonData) } func toJSON() throws -> Data { let encoder = JSONEncoder() encoder.dateEncodingStrategy = .iso8601 return try encoder.encode(self) } }
Leave a Comment