defmodule Localspot.Repo.Migrations.CreateBusinesses do use Ecto.Migration def change do create table(:businesses) do add :name, :string, null: false add :slug, :string, null: false add :description, :text add :phone, :string add :email, :string add :website, :string # Address fields add :street_address, :string, null: false add :city, :string, null: false add :state, :string, null: false add :zip_code, :string, null: false # Location for radius search (Haversine) add :latitude, :decimal, precision: 10, scale: 8 add :longitude, :decimal, precision: 11, scale: 8 # Local ownership add :locally_owned, :boolean, default: true, null: false # Status add :active, :boolean, default: true, null: false add :category_id, references(:categories, on_delete: :restrict), null: false timestamps(type: :utc_datetime) end create unique_index(:businesses, [:slug]) create index(:businesses, [:category_id]) create index(:businesses, [:latitude, :longitude]) create index(:businesses, [:city, :state]) create index(:businesses, [:active]) end end