50 lines
992 B
Swift
50 lines
992 B
Swift
import Fluent
|
|
|
|
import struct Foundation.UUID
|
|
|
|
final class User: Model, @unchecked Sendable {
|
|
static let schema = "users"
|
|
|
|
@ID(key: .id)
|
|
var id: UUID?
|
|
|
|
@Field(key: "username")
|
|
var username: String
|
|
|
|
@Field(key: "email")
|
|
var email: String
|
|
|
|
@Field(key: "password")
|
|
var password: String
|
|
|
|
@Field(key: "group")
|
|
var group: String
|
|
|
|
@Field(key: "is_superuser")
|
|
var isSuperuser: Bool
|
|
|
|
init() {}
|
|
|
|
init(
|
|
id: UUID? = nil, username: String, email: String, password: String, group: String,
|
|
isSuperuser: Bool
|
|
) {
|
|
self.id = id
|
|
self.username = username
|
|
self.email = email
|
|
self.password = password
|
|
self.group = group
|
|
self.isSuperuser = isSuperuser
|
|
}
|
|
|
|
func toDTO() -> UserDTO {
|
|
.init(
|
|
id: self.id,
|
|
username: self.username,
|
|
email: self.email,
|
|
group: self.group,
|
|
isSuperuser: self.isSuperuser
|
|
)
|
|
}
|
|
}
|