Files
ccn/Packages/Persistence/Sources/Internal/Models/UserRecord.swift
T

56 lines
1.0 KiB
Swift

import FluentKit
import Foundation
/// A FluentKit model of a single `users` row.
final class UserRecord: Model, @unchecked Sendable {
// MARK: Properties
static let schema = "users"
@ID(key: .id)
var id: UUID?
@Field(key: "email")
var email: String
@Field(key: "display_name")
var displayName: String
// MARK: Initializers
init() {}
/// Creates a record with the given values.
/// - Parameters:
/// - email: the account's normalized email address.
/// - displayName: the name other people see.
init(
email: String,
displayName: String
) {
self.email = email
self.displayName = displayName
}
}
// MARK: - Extensions
extension UserRecord {
// MARK: Computed
/// The `Sendable` snapshot of the saved record.
var snapshot: User {
get throws {
.init(
id: try requireID(),
email: email,
displayName: displayName
)
}
}
}