, поэтому у меня есть названия моделей Organization
, User
и App
. И приложения, и пользователи принадлежат организациям.
final class Organization: Model, Content {
static let schema = "organizations"
@ID(key: .id)
var id: UUID?
@Field(key: "name")
var name: String
@Children(for: \.$organization)
var users: [User]
}
final class App: Model, Content {
static let schema = "apps"
@ID(key: .id)
var id: UUID?
@Field(key: "name")
var name: String
@Parent(key: "organization_id")
var organization: Organization
}
final class User: Model, Content {
static let schema = "users"
@ID(key: .id)
var id: UUID?
@Field(key: "email")
var email: String
@Field(key: "password_hash")
var passwordHash: String
@Parent(key: "organization_id")
var organization: Organization
}
Теперь, в основном то, что я хочу сделать, это: учитывая пользователя, я хочу получить все приложения, принадлежащие его организации .
Я могу получить пользователя из своей системы аутентификации, но тогда все, что у меня есть, это такой запрос:
let user = try req.auth.require(User.self)
return App.query(on: req.db).filter(\.$organization.id == user.$organization.id).all()
Это не срабатывает с сообщением об ошибке Operator function '==' requires that 'UUID' conform to 'QueryableProperty'
.
Что мне делать вместо этого?