selection

This commit is contained in:
2025-11-03 02:31:46 +01:00
parent 1c261bf0a2
commit 152f824e2e
15 changed files with 1331 additions and 164 deletions
+48 -9
View File
@@ -10,8 +10,8 @@ pub mod sql_types {
pub struct TenantStatus;
#[derive(diesel::query_builder::QueryId, Clone, diesel::sql_types::SqlType)]
#[diesel(postgres_type(name = "api_token_capability"))]
pub struct ApiTokenCapability;
#[diesel(postgres_type(name = "api_capability"))]
pub struct ApiCapability;
}
diesel::table! {
@@ -204,6 +204,7 @@ diesel::table! {
tenant_id -> Uuid,
created_at -> Timestamptz,
updated_at -> Timestamptz,
capability_set_id -> Nullable<Uuid>,
}
}
@@ -250,9 +251,6 @@ diesel::table! {
}
diesel::table! {
use diesel::sql_types::*;
use super::sql_types::ApiTokenCapability;
api_tokens (id) {
id -> Uuid,
user_id -> Uuid,
@@ -264,11 +262,46 @@ diesel::table! {
last_used_at -> Nullable<Timestamptz>,
expires_at -> Nullable<Timestamptz>,
revoked_at -> Nullable<Timestamptz>,
capabilities -> Array<ApiTokenCapability>,
capability_set_id -> Uuid,
}
}
diesel::joinable!(correspondents -> tenants (tenant_id));
diesel::table! {
use diesel::sql_types::Uuid;
use super::sql_types::ApiCapability;
capability_set_capabilities (capability_set_id, capability) {
capability_set_id -> Uuid,
capability -> ApiCapability,
}
}
diesel::table! {
capability_sets (id) {
id -> Uuid,
tenant_id -> Uuid,
slug -> Text,
cap_version -> Int4,
is_system -> Bool,
created_at -> Timestamptz,
updated_at -> Timestamptz,
}
}
diesel::table! {
document_assets_v2 (id) {
id -> Uuid,
document_version_id -> Uuid,
asset_type -> Text,
mime_type -> Text,
metadata -> Jsonb,
created_at -> Timestamptz,
cardinality -> Nullable<Int4>,
tenant_id -> Uuid,
}
}
diesel::joinable!(capability_set_capabilities -> capability_sets (capability_set_id));
diesel::joinable!(document_asset_objects -> document_assets (asset_id));
diesel::joinable!(document_asset_objects -> tenants (tenant_id));
diesel::joinable!(document_assets -> document_versions (document_version_id));
@@ -286,20 +319,27 @@ diesel::joinable!(documents -> folders (folder_id));
diesel::joinable!(documents -> tenants (tenant_id));
diesel::joinable!(folders -> tenants (tenant_id));
diesel::joinable!(jobs -> tenants (tenant_id));
diesel::joinable!(magic_tokens -> users (user_id));
diesel::joinable!(user_sessions -> tenants (tenant_id));
diesel::joinable!(user_sessions -> users (user_id));
diesel::joinable!(tags -> tenants (tenant_id));
diesel::joinable!(user_memberships -> capability_sets (capability_set_id));
diesel::joinable!(user_memberships -> tenants (tenant_id));
diesel::joinable!(user_memberships -> users (user_id));
diesel::joinable!(user_passkeys -> users (user_id));
diesel::joinable!(webauthn_challenges -> users (user_id));
diesel::joinable!(api_tokens -> capability_sets (capability_set_id));
diesel::joinable!(api_tokens -> tenants (tenant_id));
diesel::joinable!(api_tokens -> users (user_id));
diesel::allow_tables_to_appear_in_same_query!(
api_tokens,
capability_set_capabilities,
capability_sets,
correspondents,
document_asset_objects,
document_assets,
document_assets_v2,
document_correspondents,
document_tags,
document_versions,
@@ -307,12 +347,11 @@ diesel::allow_tables_to_appear_in_same_query!(
folders,
jobs,
magic_tokens,
user_sessions,
tags,
tenants,
user_memberships,
user_passkeys,
user_sessions,
users,
webauthn_challenges,
api_tokens,
);