Files
Exodai-Academy-API/Sources/ExodaiAcademy/Infrastructure/Database/TokenModel.swift
2026-01-26 00:37:35 +01:00

46 lines
1016 B
Swift

//
// TokenModel.swift
// ExodaiAcademy
//
// Created by Exodai on 23/01/2026.
//
import Fluent
final class TokenModel: Model, @unchecked Sendable {
static let schema: String = Database.tokens.rawValue
@ID(key: .id)
var id: UUID?
@Field(key: FieldKeys.userID)
var userID: UserModel.IDValue
@Field(key: FieldKeys.value)
var value: String
@Timestamp(key: FieldKeys.createdAt, on: .create)
var createdAt: Date?
@Timestamp(key: FieldKeys.validTill, on: .none)
var validTill: Date?
init() {}
init(id: UUID? = nil, userID: UserModel.IDValue, value: String, validTill: Date?) {
self.id = id
self.userID = userID
self.value = value
self.validTill = validTill
}
}
extension TokenModel {
struct FieldKeys {
static var userID: FieldKey { "userID" }
static var value: FieldKey { "value" }
static var createdAt: FieldKey { "createdAt" }
static var validTill: FieldKey { "validTill" }
}
}