Files
Stella/Sources/stella/Models/Session.swift
2025-05-23 13:26:13 -04:00

41 lines
916 B
Swift

import Fluent
final class Session: Model, @unchecked Sendable {
static let schema: String = "sessions"
@ID(custom: "token", generatedBy: .random)
var id: String?
@Parent(key: "accountId")
var account: Account
@Field(key: "expires")
var expires: Date
@Field(key: "type")
var type: SessionType
init() { }
convenience init(account: Account, expires: Date, type: SessionType) throws {
self.init(accountId: try account.requireID(), expires: expires, type: type)
}
init(accountId: Int, expires: Date, type: SessionType) {
self.$account.id = accountId
self.expires = expires
self.type = type
if (type != .VIEWER) {
self.id = UUID().uuidString
} else {
self.id = String(Int.random())
}
}
}
enum SessionType: Int, Codable {
case ZAT = 0
case ZRT = 1
case VIEWER = 2
}