63 lines
2.8 KiB
Elixir
63 lines
2.8 KiB
Elixir
defmodule Ammoprices.Repo.Migrations.SeedRetailersAndCalibers do
|
|
use Ecto.Migration
|
|
|
|
def up do
|
|
now = DateTime.utc_now() |> DateTime.truncate(:second) |> DateTime.to_naive()
|
|
|
|
retailers = [
|
|
%{name: "Lucky Gunner", slug: "lucky-gunner", base_url: "https://www.luckygunner.com"},
|
|
%{name: "SGAmmo", slug: "sgammo", base_url: "https://www.sgammo.com"},
|
|
%{
|
|
name: "Target Sports USA",
|
|
slug: "target-sports-usa",
|
|
base_url: "https://www.targetsportsusa.com"
|
|
}
|
|
]
|
|
|
|
for r <- retailers do
|
|
execute("""
|
|
INSERT INTO retailers (id, name, slug, base_url, inserted_at, updated_at)
|
|
VALUES (gen_random_uuid(), '#{r.name}', '#{r.slug}', '#{r.base_url}', '#{now}', '#{now}')
|
|
ON CONFLICT (slug) DO NOTHING
|
|
""")
|
|
end
|
|
|
|
calibers = [
|
|
{"9mm Luger", "9mm-luger", "handgun", ~s({"9mm","9x19","9mm parabellum","9mm nato"})},
|
|
{".45 ACP", "45-acp", "handgun", ~s({".45 acp","45 acp",".45 auto","45 auto"})},
|
|
{".380 ACP", "380-acp", "handgun", ~s({".380","380 acp",".380 auto","380 auto"})},
|
|
{".40 S&W", "40-sw", "handgun", ~s({".40 s&w","40 s&w",".40 cal","40 cal"})},
|
|
{".38 Special", "38-special", "handgun", ~s({".38 spl","38 special",".38 spc","38 spl"})},
|
|
{".357 Magnum", "357-magnum", "handgun", ~s({".357 mag","357 mag","357 magnum"})},
|
|
{"10mm Auto", "10mm-auto", "handgun", ~s({"10mm","10mm auto"})},
|
|
{"5.56x45 / .223 Rem", "556-223", "rifle",
|
|
~s({"5.56","5.56x45",".223",".223 rem","223 remington","5.56 nato"})},
|
|
{".308 Win / 7.62x51", "308-win", "rifle",
|
|
~s({".308",".308 win","308 winchester","7.62x51","7.62 nato"})},
|
|
{"7.62x39", "762x39", "rifle", ~s({"7.62x39","7.62x39mm"})},
|
|
{".30-06 Springfield", "30-06", "rifle",
|
|
~s({".30-06","30-06","30-06 springfield",".30-06 sprg"})},
|
|
{".300 Blackout", "300-blackout", "rifle",
|
|
~s({".300 blk","300 blackout",".300 aac blackout","300 blk"})},
|
|
{"6.5 Creedmoor", "65-creedmoor", "rifle", ~s({"6.5 creedmoor","6.5cm","6.5 cm"})},
|
|
{".22 LR", "22-lr", "rimfire", ~s({".22 lr","22 lr",".22 long rifle","22 long rifle"})},
|
|
{".22 WMR", "22-wmr", "rimfire", ~s({".22 wmr","22 wmr",".22 magnum","22 mag"})},
|
|
{".17 HMR", "17-hmr", "rimfire", ~s({".17 hmr","17 hmr",".17 hornady magnum"})},
|
|
{"12 Gauge", "12-gauge", "shotgun", ~s({"12 gauge","12 ga","12ga"})},
|
|
{"20 Gauge", "20-gauge", "shotgun", ~s({"20 gauge","20 ga","20ga"})}
|
|
]
|
|
|
|
for {name, slug, category, aliases} <- calibers do
|
|
execute("""
|
|
INSERT INTO calibers (id, name, slug, category, aliases, inserted_at, updated_at)
|
|
VALUES (gen_random_uuid(), '#{name}', '#{slug}', '#{category}', '#{aliases}', '#{now}', '#{now}')
|
|
ON CONFLICT (slug) DO NOTHING
|
|
""")
|
|
end
|
|
end
|
|
|
|
def down do
|
|
execute("DELETE FROM calibers")
|
|
execute("DELETE FROM retailers")
|
|
end
|
|
end
|