No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 

48 líneas
1.3 KiB

  1. //
  2. // File.swift
  3. //
  4. //
  5. // Created by Michiel Carman on 4/16/24.
  6. //
  7. import Fluent
  8. import Vapor
  9. final class mdlToken: Model, Content{
  10. static let schema = "user_token"
  11. @ID(custom: "id", generatedBy: .database) var id: Int?
  12. @Field(key: "value") var value: String
  13. @Parent(key: "associateId") var user: mdlAssociate
  14. init(){}
  15. init(id: Int? = nil, value: String, userid: mdlAssociate.IDValue){
  16. self.id = id
  17. self.value = value
  18. self.$user.id = userid
  19. }
  20. }
  21. extension mdlToken{
  22. struct Create: AsyncMigration {
  23. var name: String { "CreateUserToken"}
  24. func prepare(on database: Database) async throws {
  25. try await database.schema("user_token")
  26. .field("id", .int, .identifier(auto: true))
  27. .field("value", .string)
  28. .field("associateId", .int, .required, .references("associate", "id"))
  29. .unique(on: "value")
  30. .create()
  31. }
  32. func revert(on database: Database) async throws {
  33. try await database.schema("user_token").delete()
  34. }
  35. }
  36. }
  37. extension mdlToken: ModelTokenAuthenticatable{
  38. static let valueKey = \mdlToken.$value
  39. static let userKey = \mdlToken.$user
  40. var isValid: Bool{true}
  41. }