@@ -220,6 +220,44 @@ public struct UserIdentity: Codable, Hashable, Identifiable, Sendable {
220
220
self . lastSignInAt = lastSignInAt
221
221
self . updatedAt = updatedAt
222
222
}
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
+ }
223
261
}
224
262
225
263
public enum Provider : String , Identifiable , Codable , CaseIterable , Sendable {
0 commit comments