defmodule Berrypod.Repo.Migrations.CreateAnalyticsEvents do
  use Ecto.Migration

  def change do
    create table(:analytics_events, primary_key: false) do
      add :id, :binary_id, primary_key: true
      add :name, :string, null: false
      add :pathname, :string, null: false
      add :visitor_hash, :binary, null: false
      add :session_hash, :binary, null: false
      add :referrer, :string
      add :referrer_source, :string
      add :utm_source, :string
      add :utm_medium, :string
      add :utm_campaign, :string
      add :country_code, :string, size: 2
      add :screen_size, :string
      add :browser, :string
      add :os, :string
      add :revenue, :integer

      timestamps(type: :utc_datetime, updated_at: false)
    end

    create index(:analytics_events, [:inserted_at])
    create index(:analytics_events, [:name, :inserted_at])
    create index(:analytics_events, [:session_hash, :inserted_at])
    create index(:analytics_events, [:pathname, :inserted_at])
  end
end
