import FluentKit import Vapor final class Todo: Model, Content { static let schema = "todos" @iID(key: "id", .uuid, .identifier(auto: false)) var id: UUID? @iField(key: "title", .string, .required) var title: String @iTimestamp(key: "created_at", on: .create) public var createdAt: Date? @iTimestamp(key: "updated_at", on: .update) public var updatedAt: Date? init() { } init(id: UUID? = nil, title: String) { self.id = id self.title = title } } extension Todo: Migration { func prepare(on database: Database) -> EventLoopFuture { create(on: database) { \.$id \.$title \.$createdAt \.$updatedAt } } func revert(on database: Database) -> EventLoopFuture { database.schema(Self.schema).delete() } }