class <%= migration_class_name %> < ActiveRecord::Migration<%= migration_version %>

def change
  create_table :ahoy_visits<%= primary_key_type %> do |t|
    t.string :visit_token
    t.string :visitor_token

    # the rest are recommended but optional
    # simply remove any you don't want

    # user
    t.references :user<%= foreign_key_type %>

    # standard
    t.string :ip
    t.text :user_agent
    t.text :referrer
    t.string :referring_domain
    t.text :landing_page

    # technology
    t.string :browser
    t.string :os
    t.string :device_type

    # location
    t.string :country
    t.string :region
    t.string :city
    t.float :latitude
    t.float :longitude

    # utm parameters
    t.string :utm_source
    t.string :utm_medium
    t.string :utm_term
    t.string :utm_content
    t.string :utm_campaign

    # native apps
    t.string :app_version
    t.string :os_version
    t.string :platform

    t.datetime :started_at
  end

  add_index :ahoy_visits, :visit_token, unique: true
  add_index :ahoy_visits, [:visitor_token, :started_at]

  create_table :ahoy_events<%= primary_key_type %> do |t|
    t.references :visit<%= foreign_key_type %>
    t.references :user<%= foreign_key_type %>

    t.string :name
    t.<%= properties_type %> :properties
    t.datetime :time
  end

  add_index :ahoy_events, [:name, :time]<% if properties_type == "jsonb" %>
  add_index :ahoy_events, :properties, using: :gin, opclass: :jsonb_path_ops<% end %>
end

end