Sha256: 275c642496b3ba55d70b44802529db2d2b19c0623f946d9b69f9fa501d54613c

Contents?: true

Size: 1.95 KB

Versions: 1

Compression:

Stored size: 1.95 KB

Contents

# frozen_string_literals: true

# Create the tables for the Segmentor gem
class CreateSegmentorTables < ActiveRecord::Migration[6.1]
  def change
    create_table :segmentor_segments, force: true do |t|
      t.string :name
      t.string :description
      t.integer :generate_frequency, default: 0
      t.integer :notify_frequency, default: 0
      t.boolean :auto_activate, default: false

      t.timestamps
    end

    create_table :segmentor_sources, force: true do |t|
      t.string :type, null: false
      t.text :code, null: true
      t.references :segment, foreign_key: { to_table: :segmentor_segments }, index: { unique: true }

      t.timestamps
    end

    create_table :segmentor_notifier_contexts, force: true do |t|
      t.string :type, null: false
      t.references :segment, foreign_key: { to_table: :segmentor_segments }
      t.text :email_template, null: true # ::Segmentor::EmailNotifierContext
      t.text :template_name, null: true # ::Segmentor::PostmarkNotifierContext
      t.text :template_payload, null: true # ::Segmentor::PostmarkNotifierContext

      t.timestamps
    end

    create_table :segmentor_sessions, force: true do |t|
      t.references :segment, foreign_key: { to_table: :segmentor_segments }
      t.string :session_id, null: false, index: true
      t.text :reason, null: true
      t.integer :status, default: 0

      t.timestamps
    end

    create_table :segmentor_targets, force: true do |t|
      t.references :session, foreign_key: { to_table: :segmentor_sessions }
      t.references :segment, foreign_key: { to_table: :segmentor_segments }
      t.integer :user_id
      t.json :payload

      t.timestamps
    end

    create_table :segmentor_receipts, force: true do |t|
      t.references :segment, foreign_key: { to_table: :segmentor_segments }
      t.integer :user_id, null: false
      t.json :metadata, null: true
      t.text :rendered_value, null: true
      t.datetime :sent_at

      t.timestamps
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
segmentor-0.0.2.3 lib/generators/segmentor/templates/create_segmentor_tables.rb