Aggiunge il rilevamento di invio e apertura delle email di campagna.
CI / scan_ruby (push) Failing after 12m56s
CI / scan_js (push) Successful in 12m23s
CI / lint (push) Failing after 12m15s

Ogni destinatario mostra se la mail è partita e se è stata aperta, con conteggi in dashboard.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-20 12:26:14 +02:00
co-authored by Cursor
parent ab57309f5c
commit 2db7504629
18 changed files with 332 additions and 5 deletions
Generated
+7 -1
View File
@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema[8.1].define(version: 2026_08_17_234500) do
ActiveRecord::Schema[8.1].define(version: 2026_08_20_110000) do
# These are extensions that must be enabled in order to support this database
enable_extension "pg_catalog.plpgsql"
@@ -126,17 +126,23 @@ ActiveRecord::Schema[8.1].define(version: 2026_08_17_234500) do
t.datetime "created_at", null: false
t.string "email"
t.text "error_message"
t.datetime "last_opened_at"
t.bigint "mailing_id", null: false
t.integer "open_count", default: 0, null: false
t.datetime "opened_at"
t.bigint "organization_id", null: false
t.string "rendered_subject"
t.datetime "sent_at"
t.string "skip_reason"
t.string "status", default: "pending", null: false
t.string "tracking_token", null: false
t.datetime "updated_at", null: false
t.index ["ab_variant"], name: "index_mailing_recipients_on_ab_variant"
t.index ["email"], name: "index_mailing_recipients_on_email"
t.index ["mailing_id", "organization_id"], name: "idx_mailing_recipients_unique", unique: true
t.index ["opened_at"], name: "index_mailing_recipients_on_opened_at"
t.index ["status"], name: "index_mailing_recipients_on_status"
t.index ["tracking_token"], name: "index_mailing_recipients_on_tracking_token", unique: true
end
create_table "mailings", force: :cascade do |t|