generalbots/src/core/shared/schema/analytics.rs

103 lines
2.9 KiB
Rust

use crate::core::shared::schema::core::{organizations, bots};
diesel::table! {
dashboards (id) {
id -> Uuid,
org_id -> Uuid,
bot_id -> Uuid,
owner_id -> Uuid,
name -> Varchar,
description -> Nullable<Text>,
layout -> Jsonb,
refresh_interval -> Nullable<Int4>,
is_public -> Bool,
is_template -> Bool,
tags -> Array<Text>,
created_at -> Timestamptz,
updated_at -> Timestamptz,
}
}
diesel::table! {
dashboard_widgets (id) {
id -> Uuid,
dashboard_id -> Uuid,
widget_type -> Varchar,
title -> Varchar,
position_x -> Int4,
position_y -> Int4,
width -> Int4,
height -> Int4,
config -> Jsonb,
data_query -> Nullable<Jsonb>,
style -> Jsonb,
created_at -> Timestamptz,
updated_at -> Timestamptz,
}
}
diesel::table! {
dashboard_data_sources (id) {
id -> Uuid,
org_id -> Uuid,
bot_id -> Uuid,
name -> Varchar,
description -> Nullable<Text>,
source_type -> Varchar,
connection -> Jsonb,
schema_definition -> Jsonb,
refresh_schedule -> Nullable<Varchar>,
last_sync -> Nullable<Timestamptz>,
status -> Varchar,
created_at -> Timestamptz,
updated_at -> Timestamptz,
}
}
diesel::table! {
dashboard_filters (id) {
id -> Uuid,
dashboard_id -> Uuid,
name -> Varchar,
field -> Varchar,
filter_type -> Varchar,
default_value -> Nullable<Jsonb>,
options -> Jsonb,
linked_widgets -> Jsonb,
created_at -> Timestamptz,
}
}
diesel::table! {
dashboard_widget_data_sources (id) {
id -> Uuid,
widget_id -> Uuid,
data_source_id -> Uuid,
created_at -> Timestamptz,
}
}
diesel::table! {
conversational_queries (id) {
id -> Uuid,
org_id -> Uuid,
bot_id -> Uuid,
dashboard_id -> Nullable<Uuid>,
user_id -> Uuid,
natural_language -> Text,
generated_query -> Nullable<Text>,
result_widget_config -> Nullable<Jsonb>,
created_at -> Timestamptz,
}
}
diesel::joinable!(dashboards -> organizations (org_id));
diesel::joinable!(dashboards -> bots (bot_id));
diesel::joinable!(dashboard_widgets -> dashboards (dashboard_id));
diesel::joinable!(dashboard_data_sources -> organizations (org_id));
diesel::joinable!(dashboard_data_sources -> bots (bot_id));
diesel::joinable!(dashboard_filters -> dashboards (dashboard_id));
diesel::joinable!(dashboard_widget_data_sources -> dashboard_widgets (widget_id));
diesel::joinable!(dashboard_widget_data_sources -> dashboard_data_sources (data_source_id));
diesel::joinable!(conversational_queries -> organizations (org_id));
diesel::joinable!(conversational_queries -> bots (bot_id));