pub mod sql_types {
#[derive(diesel::query_builder::QueryId, diesel::sql_types::SqlType)]
#[diesel(postgres_type(name = "invite_status"))]
pub struct InviteStatus;
#[derive(diesel::query_builder::QueryId, diesel::sql_types::SqlType)]
#[diesel(postgres_type(name = "project_role"))]
pub struct ProjectRole;
#[derive(diesel::query_builder::QueryId, diesel::sql_types::SqlType)]
#[diesel(postgres_type(name = "token_action"))]
pub struct TokenAction;
}
diesel::table! {
account_permissions (account_id) {
account_id -> Uuid,
read_accounts -> Bool,
write_accounts -> Bool,
read_workspaces -> Bool,
write_workspaces -> Bool,
read_workflows -> Bool,
write_workflows -> Bool,
created_at -> Timestamptz,
updated_at -> Timestamptz,
}
}
diesel::table! {
account_sessions (account_id, token_seq) {
token_seq -> Uuid,
account_id -> Uuid,
#[max_length = 2]
region_id -> Bpchar,
ip_address -> Inet,
user_agent -> Text,
issued_at -> Timestamptz,
expired_at -> Timestamptz,
deleted_at -> Nullable<Timestamptz>,
}
}
diesel::table! {
use diesel::sql_types::*;
use super::sql_types::TokenAction;
account_tokens (account_id, action_token) {
action_token -> Uuid,
account_id -> Uuid,
action_type -> TokenAction,
token_data -> Jsonb,
ip_address -> Inet,
user_agent -> Text,
issued_at -> Timestamptz,
expired_at -> Timestamptz,
used_at -> Nullable<Timestamptz>,
}
}
diesel::table! {
accounts (id) {
id -> Uuid,
display_name -> Text,
email_address -> Text,
password_hash -> Text,
is_activated -> Bool,
created_at -> Timestamptz,
updated_at -> Timestamptz,
deleted_at -> Nullable<Timestamptz>,
}
}
diesel::table! {
workflow_executions (workflow_id, execution_id) {
workflow_id -> Uuid,
execution_id -> Uuid,
output_graph -> Jsonb,
rt_metadata -> Jsonb,
started_at -> Timestamptz,
ended_at -> Timestamptz,
deleted_at -> Nullable<Timestamptz>,
}
}
diesel::table! {
workflow_schedules (workflow_id, schedule_id) {
workflow_id -> Uuid,
schedule_id -> Uuid,
created_at -> Timestamptz,
}
}
diesel::table! {
workflow_webhooks (workflow_id, webhook_id) {
workflow_id -> Uuid,
webhook_id -> Uuid,
created_at -> Timestamptz,
}
}
diesel::table! {
workflows (id) {
id -> Uuid,
workspace_id -> Uuid,
display_name -> Text,
metadata -> Jsonb,
input_graph -> Jsonb,
rt_metadata -> Jsonb,
created_at -> Timestamptz,
updated_at -> Timestamptz,
deleted_at -> Nullable<Timestamptz>,
}
}
diesel::table! {
use diesel::sql_types::*;
use super::sql_types::InviteStatus;
workspace_invites (workspace_id, invite_id) {
invite_id -> Uuid,
workspace_id -> Uuid,
account_id -> Uuid,
invite_status -> InviteStatus,
created_by -> Uuid,
updated_by -> Uuid,
created_at -> Timestamptz,
updated_at -> Timestamptz,
}
}
diesel::table! {
use diesel::sql_types::*;
use super::sql_types::ProjectRole;
workspace_members (workspace_id, account_id) {
workspace_id -> Uuid,
account_id -> Uuid,
account_role -> ProjectRole,
show_order -> Int4,
is_pinned -> Bool,
is_hidden -> Bool,
created_by -> Uuid,
updated_by -> Uuid,
created_at -> Timestamptz,
updated_at -> Timestamptz,
}
}
diesel::table! {
workspace_schedules (id) {
id -> Uuid,
workspace_id -> Uuid,
update_interval -> Int4,
metadata -> Jsonb,
created_at -> Timestamptz,
updated_at -> Timestamptz,
deleted_at -> Nullable<Timestamptz>,
}
}
diesel::table! {
workspace_webhooks (id) {
id -> Uuid,
workspace_id -> Uuid,
metadata -> Jsonb,
created_at -> Timestamptz,
updated_at -> Timestamptz,
deleted_at -> Nullable<Timestamptz>,
}
}
diesel::table! {
workspaces (id) {
id -> Uuid,
display_name -> Text,
metadata -> Jsonb,
created_at -> Timestamptz,
updated_at -> Timestamptz,
deleted_at -> Nullable<Timestamptz>,
}
}
diesel::joinable!(account_permissions -> accounts (account_id));
diesel::joinable!(account_sessions -> accounts (account_id));
diesel::joinable!(account_tokens -> accounts (account_id));
diesel::joinable!(workflow_executions -> workflows (workflow_id));
diesel::joinable!(workflow_schedules -> workflows (workflow_id));
diesel::joinable!(workflow_schedules -> workspace_schedules (schedule_id));
diesel::joinable!(workflow_webhooks -> workflows (workflow_id));
diesel::joinable!(workflow_webhooks -> workspace_webhooks (webhook_id));
diesel::joinable!(workflows -> workspaces (workspace_id));
diesel::joinable!(workspace_invites -> workspaces (workspace_id));
diesel::joinable!(workspace_members -> workspaces (workspace_id));
diesel::joinable!(workspace_schedules -> workspaces (workspace_id));
diesel::joinable!(workspace_webhooks -> workspaces (workspace_id));
diesel::allow_tables_to_appear_in_same_query!(
account_permissions,
account_sessions,
account_tokens,
accounts,
workflow_executions,
workflow_schedules,
workflow_webhooks,
workflows,
workspace_invites,
workspace_members,
workspace_schedules,
workspace_webhooks,
workspaces,
);