//! Diesel schema definitions //! //! Contains all database table definitions for diesel ORM. diesel::table! { organizations (org_id) { org_id -> Uuid, name -> Text, slug -> Text, created_at -> Timestamptz, } } diesel::table! { bots (id) { id -> Uuid, name -> Varchar, description -> Nullable, llm_provider -> Varchar, llm_config -> Jsonb, context_provider -> Varchar, context_config -> Jsonb, created_at -> Timestamptz, updated_at -> Timestamptz, is_active -> Nullable, tenant_id -> Nullable, } } diesel::table! { system_automations (id) { id -> Uuid, bot_id -> Uuid, kind -> Int4, target -> Nullable, schedule -> Nullable, param -> Text, is_active -> Bool, last_triggered -> Nullable, } } diesel::table! { user_sessions (id) { id -> Uuid, user_id -> Uuid, bot_id -> Uuid, title -> Text, context_data -> Jsonb, current_tool -> Nullable, created_at -> Timestamptz, updated_at -> Timestamptz, } } diesel::table! { message_history (id) { id -> Uuid, session_id -> Uuid, user_id -> Uuid, role -> Int4, content_encrypted -> Text, message_type -> Int4, message_index -> Int8, created_at -> Timestamptz, } } diesel::table! { users (id) { id -> Uuid, username -> Text, email -> Text, password_hash -> Text, is_active -> Bool, is_admin -> Bool, created_at -> Timestamptz, updated_at -> Timestamptz, } } diesel::table! { clicks (id) { id -> Uuid, campaign_id -> Text, email -> Text, updated_at -> Timestamptz, } } diesel::table! { bot_memories (id) { id -> Uuid, bot_id -> Uuid, key -> Text, value -> Text, created_at -> Timestamptz, updated_at -> Timestamptz, } } diesel::table! { kb_documents (id) { id -> Text, bot_id -> Text, user_id -> Text, collection_name -> Text, file_path -> Text, file_size -> Integer, file_hash -> Text, first_published_at -> Text, last_modified_at -> Text, indexed_at -> Nullable, metadata -> Text, created_at -> Text, updated_at -> Text, } } diesel::table! { basic_tools (id) { id -> Text, bot_id -> Text, tool_name -> Text, file_path -> Text, ast_path -> Text, file_hash -> Text, mcp_json -> Nullable, tool_json -> Nullable, compiled_at -> Text, is_active -> Integer, created_at -> Text, updated_at -> Text, } } diesel::table! { kb_collections (id) { id -> Text, bot_id -> Text, user_id -> Text, name -> Text, folder_path -> Text, qdrant_collection -> Text, document_count -> Integer, is_active -> Integer, created_at -> Text, updated_at -> Text, } } diesel::table! { user_kb_associations (id) { id -> Text, user_id -> Text, bot_id -> Text, kb_name -> Text, is_website -> Integer, website_url -> Nullable, created_at -> Text, updated_at -> Text, } } diesel::table! { session_tool_associations (id) { id -> Text, session_id -> Text, tool_name -> Text, added_at -> Text, } } diesel::table! { bot_configuration (id) { id -> Uuid, bot_id -> Uuid, config_key -> Text, config_value -> Text, is_encrypted -> Bool, config_type -> Text, created_at -> Timestamptz, updated_at -> Timestamptz, } } diesel::table! { user_email_accounts (id) { id -> Uuid, user_id -> Uuid, email -> Varchar, display_name -> Nullable, imap_server -> Varchar, imap_port -> Int4, smtp_server -> Varchar, smtp_port -> Int4, username -> Varchar, password_encrypted -> Text, is_primary -> Bool, is_active -> Bool, created_at -> Timestamptz, updated_at -> Timestamptz, } } diesel::table! { email_drafts (id) { id -> Uuid, user_id -> Uuid, account_id -> Uuid, to_address -> Text, cc_address -> Nullable, bcc_address -> Nullable, subject -> Nullable, body -> Nullable, attachments -> Jsonb, created_at -> Timestamptz, updated_at -> Timestamptz, } } diesel::table! { email_folders (id) { id -> Uuid, account_id -> Uuid, folder_name -> Varchar, folder_path -> Varchar, unread_count -> Int4, total_count -> Int4, last_synced -> Nullable, created_at -> Timestamptz, updated_at -> Timestamptz, } } diesel::table! { user_preferences (id) { id -> Uuid, user_id -> Uuid, preference_key -> Varchar, preference_value -> Jsonb, created_at -> Timestamptz, updated_at -> Timestamptz, } } diesel::table! { user_login_tokens (id) { id -> Uuid, user_id -> Uuid, token_hash -> Varchar, expires_at -> Timestamptz, created_at -> Timestamptz, last_used -> Timestamptz, user_agent -> Nullable, ip_address -> Nullable, is_active -> Bool, } } diesel::table! { tasks (id) { id -> Uuid, title -> Text, description -> Nullable, status -> Text, priority -> Text, assignee_id -> Nullable, reporter_id -> Nullable, project_id -> Nullable, due_date -> Nullable, tags -> Array, dependencies -> Array, estimated_hours -> Nullable, actual_hours -> Nullable, progress -> Int4, created_at -> Timestamptz, updated_at -> Timestamptz, completed_at -> Nullable, } } // Enterprise Email Tables (6.1.0_enterprise_suite migration) diesel::table! { global_email_signatures (id) { id -> Uuid, bot_id -> Uuid, name -> Varchar, content_html -> Text, content_plain -> Text, position -> Varchar, is_active -> Bool, created_at -> Timestamptz, updated_at -> Timestamptz, } } diesel::table! { email_signatures (id) { id -> Uuid, user_id -> Uuid, bot_id -> Nullable, name -> Varchar, content_html -> Text, content_plain -> Text, is_default -> Bool, is_active -> Bool, created_at -> Timestamptz, updated_at -> Timestamptz, } } diesel::table! { scheduled_emails (id) { id -> Uuid, user_id -> Uuid, bot_id -> Uuid, to_addresses -> Text, cc_addresses -> Nullable, bcc_addresses -> Nullable, subject -> Text, body_html -> Text, body_plain -> Nullable, attachments_json -> Text, scheduled_at -> Timestamptz, sent_at -> Nullable, status -> Varchar, retry_count -> Int4, error_message -> Nullable, created_at -> Timestamptz, } } diesel::table! { email_templates (id) { id -> Uuid, bot_id -> Uuid, user_id -> Nullable, name -> Varchar, description -> Nullable, subject_template -> Text, body_html_template -> Text, body_plain_template -> Nullable, variables_json -> Text, category -> Nullable, is_shared -> Bool, usage_count -> Int4, created_at -> Timestamptz, updated_at -> Timestamptz, } } diesel::table! { email_auto_responders (id) { id -> Uuid, user_id -> Uuid, bot_id -> Uuid, responder_type -> Varchar, subject -> Text, body_html -> Text, body_plain -> Nullable, start_date -> Nullable, end_date -> Nullable, send_to_internal_only -> Bool, exclude_addresses -> Nullable, is_active -> Bool, stalwart_sieve_id -> Nullable, created_at -> Timestamptz, updated_at -> Timestamptz, } } diesel::table! { email_rules (id) { id -> Uuid, user_id -> Uuid, bot_id -> Uuid, name -> Varchar, priority -> Int4, conditions_json -> Text, actions_json -> Text, stop_processing -> Bool, is_active -> Bool, stalwart_sieve_id -> Nullable, created_at -> Timestamptz, updated_at -> Timestamptz, } } diesel::table! { email_labels (id) { id -> Uuid, user_id -> Uuid, bot_id -> Uuid, name -> Varchar, color -> Varchar, parent_id -> Nullable, is_system -> Bool, created_at -> Timestamptz, } } diesel::table! { email_label_assignments (id) { id -> Uuid, email_message_id -> Varchar, label_id -> Uuid, assigned_at -> Timestamptz, } } diesel::table! { distribution_lists (id) { id -> Uuid, bot_id -> Uuid, owner_id -> Uuid, name -> Varchar, email_alias -> Nullable, description -> Nullable, members_json -> Text, is_public -> Bool, stalwart_principal_id -> Nullable, created_at -> Timestamptz, updated_at -> Timestamptz, } } diesel::table! { shared_mailboxes (id) { id -> Uuid, bot_id -> Uuid, email_address -> Varchar, display_name -> Varchar, description -> Nullable, settings_json -> Text, stalwart_account_id -> Nullable, is_active -> Bool, created_at -> Timestamptz, } } diesel::table! { shared_mailbox_members (id) { id -> Uuid, mailbox_id -> Uuid, user_id -> Uuid, permission_level -> Varchar, added_at -> Timestamptz, } } diesel::allow_tables_to_appear_in_same_query!( organizations, bots, system_automations, user_sessions, message_history, users, clicks, bot_memories, kb_documents, basic_tools, kb_collections, user_kb_associations, session_tool_associations, bot_configuration, user_email_accounts, email_drafts, email_folders, user_preferences, user_login_tokens, tasks, global_email_signatures, email_signatures, scheduled_emails, email_templates, email_auto_responders, email_rules, email_labels, email_label_assignments, distribution_lists, shared_mailboxes, shared_mailbox_members, );