Schafkopf-Server/Sources/App/Model/Migrations/UserTableMigration.swift
2022-10-11 12:04:30 +02:00

34 lines
1.3 KiB
Swift

import FluentSQLiteDriver
struct UserTableMigration: Migration {
func prepare(on database: FluentSQLiteDriver.Database) -> EventLoopFuture<Void> {
let one = database.schema(User.schema)
.id()
.field(User.Key.name.key, .string, .required)
.field(User.Key.hash.key, .string, .required)
.field(User.Key.points.key, .int, .required)
.field(User.Key.table.key, .uuid, .references(Table.schema, Table.Key.id.key))
.field(User.Key.recoveryEmail.key, .string)
.create()
let two = database.enum(Table.Key.language.rawValue)
.case(SupportedLanguage.german.rawValue)
.case(SupportedLanguage.english.rawValue)
.create()
let three = database.enum(Table.Key.language.rawValue).read().flatMap { lang in
database.schema(Table.schema)
.id()
.field(Table.Key.name.key, .string, .required)
.field(Table.Key.isPublic.key, .bool, .required)
.field(Table.Key.language.key, lang, .required)
.create()
}
return one.and(two).and(three).map { _ in }
}
func revert(on database: FluentSQLiteDriver.Database) -> EventLoopFuture<Void> {
database.eventLoop.makeCompletedFuture(.success(()))
}
}