feat: Add APIs for Campaigns (#2175)
This commit is contained in:
18
db/migrate/20210428135041_campaigns.rb
Normal file
18
db/migrate/20210428135041_campaigns.rb
Normal 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
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user