46 lines
1016 B
Swift
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" }
|
|
}
|
|
}
|