@@ -220,6 +220,44 @@ public struct UserIdentity: Codable, Hashable, Identifiable, Sendable {
220220 self . lastSignInAt = lastSignInAt
221221 self . updatedAt = updatedAt
222222 }
223+
224+ private enum CodingKeys : CodingKey {
225+ case id
226+ case identityId
227+ case userId
228+ case identityData
229+ case provider
230+ case createdAt
231+ case lastSignInAt
232+ case updatedAt
233+ }
234+
235+ public init ( from decoder: any Decoder ) throws {
236+ let container = try decoder. container ( keyedBy: CodingKeys . self)
237+
238+ id = try container. decode ( String . self, forKey: . id)
239+ identityId = try container. decodeIfPresent ( UUID . self, forKey: . identityId)
240+ ?? UUID ( uuidString: " 00000000-0000-0000-0000-000000000000 " ) !
241+ userId = try container. decode ( UUID . self, forKey: . userId)
242+ identityData = try container. decodeIfPresent ( [ String : AnyJSON ] . self, forKey: . identityData)
243+ provider = try container. decode ( String . self, forKey: . provider)
244+ createdAt = try container. decode ( Date . self, forKey: . createdAt)
245+ lastSignInAt = try container. decode ( Date . self, forKey: . lastSignInAt)
246+ updatedAt = try container. decode ( Date . self, forKey: . updatedAt)
247+ }
248+
249+ public func encode( to encoder: any Encoder ) throws {
250+ var container = encoder. container ( keyedBy: CodingKeys . self)
251+
252+ try container. encode ( id, forKey: . id)
253+ try container. encode ( identityId, forKey: . identityId)
254+ try container. encode ( userId, forKey: . userId)
255+ try container. encodeIfPresent ( identityData, forKey: . identityData)
256+ try container. encode ( provider, forKey: . provider)
257+ try container. encode ( createdAt, forKey: . createdAt)
258+ try container. encode ( lastSignInAt, forKey: . lastSignInAt)
259+ try container. encode ( updatedAt, forKey: . updatedAt)
260+ }
223261}
224262
225263public enum Provider : String , Identifiable , Codable , CaseIterable , Sendable {
0 commit comments