axiston-db-schema 0.1.0

Generated database schema for the Axiston application.
Documentation
// @generated automatically by Diesel CLI.

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,
);