From 3509a98eb29a44eca0fd5c8ad96ed356ef71d41c Mon Sep 17 00:00:00 2001 From: Pranav Date: Tue, 19 May 2026 17:23:00 -0700 Subject: [PATCH] revert schema.rb --- db/schema.rb | 90 ++++++++++++++++++++-------------------------------- 1 file changed, 34 insertions(+), 56 deletions(-) diff --git a/db/schema.rb b/db/schema.rb index 117b4366a..9d9fe3cbc 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.1].define(version: 2026_05_19_000000) do +ActiveRecord::Schema[7.1].define(version: 2026_05_15_000000) do # These extensions should be enabled to support this database enable_extension "pg_stat_statements" enable_extension "pg_trgm" @@ -52,7 +52,6 @@ ActiveRecord::Schema[7.1].define(version: 2026_05_19_000000) do t.boolean "auto_offline", default: true, null: false t.bigint "custom_role_id" t.bigint "agent_capacity_policy_id" - t.integer "status", default: 0, null: false t.index ["account_id", "user_id"], name: "uniq_user_id_per_account_id", unique: true t.index ["account_id"], name: "index_account_users_on_account_id" t.index ["agent_capacity_policy_id"], name: "index_account_users_on_agent_capacity_policy_id" @@ -72,7 +71,6 @@ ActiveRecord::Schema[7.1].define(version: 2026_05_19_000000) do t.jsonb "limits", default: {} t.jsonb "custom_attributes", default: {} t.integer "status", default: 0 - t.integer "contactable_contacts_count", default: 0 t.jsonb "internal_attributes", default: {}, null: false t.jsonb "settings", default: {} t.index ["status"], name: "index_accounts_on_status" @@ -475,8 +473,8 @@ ActiveRecord::Schema[7.1].define(version: 2026_05_19_000000) do t.boolean "smtp_enable_ssl_tls", default: false t.jsonb "provider_config", default: {} t.string "provider" - t.boolean "verified_for_sending", default: false, null: false t.string "imap_authentication", default: "plain" + t.boolean "verified_for_sending", default: false, null: false t.index ["email"], name: "index_channel_email_on_email", unique: true t.index ["forward_to_email"], name: "index_channel_email_on_forward_to_email", unique: true end @@ -493,15 +491,6 @@ ActiveRecord::Schema[7.1].define(version: 2026_05_19_000000) do t.index ["page_id"], name: "index_channel_facebook_pages_on_page_id" end - create_table "channel_google_play", force: :cascade do |t| - t.bigint "account_id", null: false - t.string "app_id", null: false - t.jsonb "provider_config", default: {}, null: false - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.index ["account_id", "app_id"], name: "index_channel_google_play_on_account_id_and_app_id", unique: true - end - create_table "channel_instagram", force: :cascade do |t| t.string "access_token", null: false t.datetime "expires_at", null: false @@ -624,7 +613,7 @@ ActiveRecord::Schema[7.1].define(version: 2026_05_19_000000) do t.bigint "account_id", null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false - t.integer "contacts_count", default: 0, null: false + t.integer "contacts_count" t.jsonb "additional_attributes", default: {} t.jsonb "custom_attributes", default: {} t.datetime "last_activity_at", precision: nil @@ -633,7 +622,7 @@ ActiveRecord::Schema[7.1].define(version: 2026_05_19_000000) do t.index ["name", "account_id"], name: "index_companies_on_name_and_account_id" end - create_table "contact_inboxes", id: :bigint, default: -> { "nextval('contact_inboxes2_id_seq'::regclass)" }, force: :cascade do |t| + create_table "contact_inboxes", force: :cascade do |t| t.bigint "contact_id" t.bigint "inbox_id" t.text "source_id", null: false @@ -641,14 +630,14 @@ ActiveRecord::Schema[7.1].define(version: 2026_05_19_000000) do t.datetime "updated_at", null: false t.boolean "hmac_verified", default: false t.string "pubsub_token" - t.index ["contact_id"], name: "contact_inboxes2_contact_id_idx" - t.index ["inbox_id", "source_id"], name: "contact_inboxes2_inbox_id_source_id_idx", unique: true - t.index ["inbox_id"], name: "contact_inboxes2_inbox_id_idx" - t.index ["pubsub_token"], name: "contact_inboxes2_pubsub_token_idx", unique: true - t.index ["source_id"], name: "contact_inboxes2_source_id_idx" + t.index ["contact_id"], name: "index_contact_inboxes_on_contact_id" + t.index ["inbox_id", "source_id"], name: "index_contact_inboxes_on_inbox_id_and_source_id", unique: true + t.index ["inbox_id"], name: "index_contact_inboxes_on_inbox_id" + t.index ["pubsub_token"], name: "index_contact_inboxes_on_pubsub_token", unique: true + t.index ["source_id"], name: "index_contact_inboxes_on_source_id" end - create_table "contacts", id: :integer, default: -> { "nextval('contacts2_id_seq'::regclass)" }, force: :cascade do |t| + create_table "contacts", id: :serial, force: :cascade do |t| t.string "name", default: "" t.string "email" t.string "phone_number" @@ -659,27 +648,25 @@ ActiveRecord::Schema[7.1].define(version: 2026_05_19_000000) do t.string "identifier" t.jsonb "custom_attributes", default: {} t.datetime "last_activity_at", precision: nil - t.boolean "resolved", default: false, null: false - t.integer "contact_type", default: 0, null: false + t.integer "contact_type", default: 0 t.string "middle_name", default: "" t.string "last_name", default: "" t.string "location", default: "" t.string "country_code", default: "" t.boolean "blocked", default: false, null: false t.bigint "company_id" - t.index "lower((email)::text), account_id", name: "contacts2_lower_account_id_idx" + t.index "lower((email)::text), account_id", name: "index_contacts_on_lower_email_account_id" t.index ["account_id", "contact_type"], name: "index_contacts_on_account_id_and_contact_type" - t.index ["account_id", "email", "phone_number", "identifier"], name: "contacts2_account_id_email_phone_number_identifier_idx", where: "(((email)::text <> ''::text) OR ((phone_number)::text <> ''::text) OR ((identifier)::text <> ''::text))" + t.index ["account_id", "email", "phone_number", "identifier"], name: "index_contacts_on_nonempty_fields", where: "(((email)::text <> ''::text) OR ((phone_number)::text <> ''::text) OR ((identifier)::text <> ''::text))" t.index ["account_id", "last_activity_at"], name: "index_contacts_on_account_id_and_last_activity_at", order: { last_activity_at: "DESC NULLS LAST" } - t.index ["account_id", "resolved"], name: "index_contacts_on_account_id_and_resolved" - t.index ["account_id"], name: "contacts2_account_id_idx" - t.index ["account_id"], name: "contacts2_account_id_idx1", where: "(((email)::text <> ''::text) OR ((phone_number)::text <> ''::text) OR ((identifier)::text <> ''::text))" + t.index ["account_id"], name: "index_contacts_on_account_id" + t.index ["account_id"], name: "index_resolved_contact_account_id", where: "(((email)::text <> ''::text) OR ((phone_number)::text <> ''::text) OR ((identifier)::text <> ''::text))" t.index ["blocked"], name: "index_contacts_on_blocked" t.index ["company_id"], name: "index_contacts_on_company_id" - t.index ["email", "account_id"], name: "contacts2_email_account_id_idx", unique: true - t.index ["identifier", "account_id"], name: "contacts2_identifier_account_id_idx", unique: true - t.index ["name", "email", "phone_number", "identifier"], name: "contacts2_name_email_phone_number_identifier_idx", opclass: :gin_trgm_ops, using: :gin - t.index ["phone_number", "account_id"], name: "contacts2_phone_number_account_id_idx" + t.index ["email", "account_id"], name: "uniq_email_per_account_contact", unique: true + t.index ["identifier", "account_id"], name: "uniq_identifier_per_account_contact", unique: true + t.index ["name", "email", "phone_number", "identifier"], name: "index_contacts_on_name_email_phone_number_identifier", opclass: :gin_trgm_ops, using: :gin + t.index ["phone_number", "account_id"], name: "index_contacts_on_phone_number_and_account_id" end create_table "conversation_participants", force: :cascade do |t| @@ -707,7 +694,7 @@ ActiveRecord::Schema[7.1].define(version: 2026_05_19_000000) do t.datetime "agent_last_seen_at", precision: nil t.jsonb "additional_attributes", default: {} t.bigint "contact_inbox_id" - t.uuid "uuid", default: -> { "public.gen_random_uuid()" }, null: false + t.uuid "uuid", default: -> { "gen_random_uuid()" }, null: false t.string "identifier" t.datetime "last_activity_at", precision: nil, default: -> { "CURRENT_TIMESTAMP" }, null: false t.bigint "team_id" @@ -721,12 +708,6 @@ ActiveRecord::Schema[7.1].define(version: 2026_05_19_000000) do t.datetime "waiting_since" t.text "cached_label_list" t.bigint "assignee_agent_bot_id" - t.bigint "last_message_id" - t.bigint "last_incoming_message_id" - t.bigint "last_non_activity_message_id" - t.text "cached_summary" - t.datetime "cached_summary_at" - t.index ["account_id", "created_at", "inbox_id"], name: "index_conversations_on_account_created_inbox" t.index ["account_id", "display_id"], name: "index_conversations_on_account_id_and_display_id", unique: true t.index ["account_id", "id"], name: "index_conversations_on_id_and_account_id" t.index ["account_id", "inbox_id", "status", "assignee_id"], name: "conv_acid_inbid_stat_asgnid_idx" @@ -738,9 +719,6 @@ ActiveRecord::Schema[7.1].define(version: 2026_05_19_000000) do t.index ["first_reply_created_at"], name: "index_conversations_on_first_reply_created_at" t.index ["identifier", "account_id"], name: "index_conversations_on_identifier_and_account_id" t.index ["inbox_id"], name: "index_conversations_on_inbox_id" - t.index ["last_incoming_message_id"], name: "index_conversations_on_last_incoming_message_id" - t.index ["last_message_id"], name: "index_conversations_on_last_message_id" - t.index ["last_non_activity_message_id"], name: "index_conversations_on_last_non_activity_message_id" t.index ["priority"], name: "index_conversations_on_priority" t.index ["status", "account_id"], name: "index_conversations_on_status_and_account_id" t.index ["status", "priority"], name: "index_conversations_on_status_and_priority" @@ -807,6 +785,7 @@ ActiveRecord::Schema[7.1].define(version: 2026_05_19_000000) do t.string "regex_pattern" t.string "regex_cue" t.index ["account_id"], name: "index_custom_attribute_definitions_on_account_id" + t.index ["attribute_key", "attribute_model", "account_id"], name: "attribute_key_model_index", unique: true end create_table "custom_filters", force: :cascade do |t| @@ -989,7 +968,7 @@ ActiveRecord::Schema[7.1].define(version: 2026_05_19_000000) do t.integer "visibility", default: 0 t.bigint "created_by_id" t.bigint "updated_by_id" - t.jsonb "actions", default: "{}", null: false + t.jsonb "actions", default: {}, null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false t.index ["account_id"], name: "index_macros_on_account_id" @@ -1008,7 +987,7 @@ ActiveRecord::Schema[7.1].define(version: 2026_05_19_000000) do t.index ["user_id"], name: "index_mentions_on_user_id" end - create_table "messages", id: :integer, default: -> { "nextval('messages2_id_seq'::regclass)" }, force: :cascade do |t| + create_table "messages", id: :serial, force: :cascade do |t| t.text "content" t.integer "account_id", null: false t.integer "inbox_id", null: false @@ -1027,18 +1006,18 @@ ActiveRecord::Schema[7.1].define(version: 2026_05_19_000000) do t.jsonb "additional_attributes", default: {} t.text "processed_message_content" t.jsonb "sentiment", default: {} - t.index "((additional_attributes -> 'campaign_id'::text))", name: "messages2_expr_idx", using: :gin + t.index "((additional_attributes -> 'campaign_id'::text))", name: "index_messages_on_additional_attributes_campaign_id", using: :gin t.index ["account_id", "content_type", "created_at"], name: "idx_messages_account_content_created" t.index ["account_id", "created_at", "message_type"], name: "index_messages_on_account_created_type" - t.index ["account_id", "inbox_id"], name: "messages2_account_id_inbox_id_idx" - t.index ["account_id"], name: "messages2_account_id_idx" - t.index ["content"], name: "messages2_content_idx", opclass: :gin_trgm_ops, using: :gin - t.index ["conversation_id", "account_id", "message_type", "created_at"], name: "messages2_conversation_id_account_id_message_type_created_a_idx" - t.index ["conversation_id"], name: "messages2_conversation_id_idx" - t.index ["created_at"], name: "messages2_created_at_idx" - t.index ["inbox_id"], name: "messages2_inbox_id_idx" - t.index ["sender_type", "sender_id"], name: "messages2_sender_type_sender_id_idx" - t.index ["source_id"], name: "messages2_source_id_idx" + t.index ["account_id", "inbox_id"], name: "index_messages_on_account_id_and_inbox_id" + t.index ["account_id"], name: "index_messages_on_account_id" + t.index ["content"], name: "index_messages_on_content", opclass: :gin_trgm_ops, using: :gin + t.index ["conversation_id", "account_id", "message_type", "created_at"], name: "index_messages_on_conversation_account_type_created" + t.index ["conversation_id"], name: "index_messages_on_conversation_id" + t.index ["created_at"], name: "index_messages_on_created_at" + t.index ["inbox_id"], name: "index_messages_on_inbox_id" + t.index ["sender_type", "sender_id"], name: "index_messages_on_sender_type_and_sender_id" + t.index ["source_id"], name: "index_messages_on_source_id" end create_table "notes", force: :cascade do |t| @@ -1170,7 +1149,6 @@ ActiveRecord::Schema[7.1].define(version: 2026_05_19_000000) do t.float "value_in_business_hours" t.datetime "event_start_time", precision: nil t.datetime "event_end_time", precision: nil - t.index ["account_id", "name", "created_at", "inbox_id"], name: "index_reporting_events_on_account_name_created_inbox" t.index ["account_id", "name", "created_at"], name: "reporting_events__account_id__name__created_at" t.index ["account_id", "name", "inbox_id", "created_at"], name: "index_reporting_events_for_response_distribution" t.index ["account_id"], name: "index_reporting_events_on_account_id" @@ -1304,7 +1282,7 @@ ActiveRecord::Schema[7.1].define(version: 2026_05_19_000000) do t.text "message_signature" t.string "otp_secret" t.integer "consumed_timestep" - t.boolean "otp_required_for_login", default: false, null: false + t.boolean "otp_required_for_login", default: false t.text "otp_backup_codes" t.index ["email"], name: "index_users_on_email" t.index ["otp_required_for_login"], name: "index_users_on_otp_required_for_login"