feat: Add APIs for Campaigns (#2175)

This commit is contained in:
Sojan Jose
2021-04-29 22:23:32 +05:30
committed by GitHub
parent 3afc9b5f5b
commit b89cc9cf57
23 changed files with 452 additions and 1 deletions

View File

@@ -0,0 +1,18 @@
class Campaigns < ActiveRecord::Migration[6.0]
def change
create_table :campaigns do |t|
t.integer :display_id, null: false
t.string :title, null: false
t.text :description
t.text :content, null: false
t.integer :sender_id
t.boolean :enabled, default: true
t.references :account, null: false, foreign_key: true
t.references :inbox, null: false, foreign_key: true
t.column :trigger_rules, :jsonb, default: {}
t.timestamps
end
add_reference :conversations, :campaign, foreign_key: true
end
end

View File

@@ -0,0 +1,28 @@
# This migration was auto-generated via `rake db:generate_trigger_migration'.
# While you can edit this file, any changes you make to the definitions here
# will be undone by the next auto-generated trigger migration.
class CreateTriggersAccountsInsertOrCampaignsInsert < ActiveRecord::Migration[6.0]
def up
create_trigger('camp_dpid_before_insert', generated: true, compatibility: 1)
.on('accounts')
.name('camp_dpid_before_insert')
.after(:insert)
.for_each(:row) do
"execute format('create sequence IF NOT EXISTS camp_dpid_seq_%s', NEW.id);"
end
create_trigger('campaigns_before_insert_row_tr', generated: true, compatibility: 1)
.on('campaigns')
.before(:insert)
.for_each(:row) do
"NEW.display_id := nextval('camp_dpid_seq_' || NEW.account_id);"
end
end
def down
drop_trigger('camp_dpid_before_insert', 'accounts', generated: true)
drop_trigger('campaigns_before_insert_row_tr', 'campaigns', generated: true)
end
end