import FluentSQLiteDriver import Vapor /// A registered user final class User: Model { enum Key: String { case id = "id" case name = "name" case hash = "hash" case points = "points" case table = "table_id" var key: FieldKey { .init(stringLiteral: rawValue) } } /// The name of the SQLite table static let schema = "user" /// The unique identifier for this user. @ID(key: .id) var id: UUID? /// The user's full name. @Field(key: Key.name.key) var name: String /// The hash of the user's password @Field(key: Key.hash.key) var passwordHash: String /// The user's total points @Field(key: Key.points.key) var points: Int // Example of an optional parent relation. @OptionalParent(key: Key.table.key) var table: Table? init() { } /// Creates a new user. init(id: UUID? = nil, name: String, hash: String) { self.id = id self.name = name self.passwordHash = hash self.points = 0 } } //extension User: Content { }