mirror of https://github.com/docusealco/docuseal
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.5 KiB
45 lines
1.5 KiB
# frozen_string_literal: true
|
|
|
|
# == Schema Information
|
|
#
|
|
# Table name: email_events
|
|
#
|
|
# id :bigint not null, primary key
|
|
# data :text not null
|
|
# email :string not null
|
|
# emailable_type :string not null
|
|
# event_datetime :datetime not null
|
|
# event_type :string not null
|
|
# tag :string not null
|
|
# created_at :datetime not null
|
|
# account_id :bigint not null
|
|
# emailable_id :bigint not null
|
|
# message_id :string not null
|
|
#
|
|
# Indexes
|
|
#
|
|
# index_email_events_on_account_id_and_event_datetime (account_id,event_datetime)
|
|
# index_email_events_on_email (email)
|
|
# index_email_events_on_email_event_types (email) WHERE ((event_type)::text = ANY ((ARRAY['bounce'::character varying, 'soft_bounce'::character varying, 'permanent_bounce'::character varying, 'complaint'::character varying, 'soft_complaint'::character varying])::text[]))
|
|
# index_email_events_on_emailable (emailable_type,emailable_id)
|
|
# index_email_events_on_message_id (message_id)
|
|
#
|
|
# Foreign Keys
|
|
#
|
|
# fk_rails_... (account_id => accounts.id)
|
|
#
|
|
class EmailEvent < ApplicationRecord
|
|
belongs_to :emailable, polymorphic: true
|
|
belongs_to :account
|
|
|
|
attribute :data, :string, default: -> { {} }
|
|
|
|
serialize :data, coder: JSON
|
|
|
|
before_validation :maybe_set_account, on: :create
|
|
|
|
def maybe_set_account
|
|
self.account ||= emailable.account
|
|
end
|
|
end
|