- Create settings table for site-wide key-value configuration - Create images table for BLOB storage of logo/header images - Add Setting schema with JSON/string/integer/boolean support - Add ThemeSettings embedded schema with all theme options - Add Settings context with get/put/update operations - Add Media context for image uploads and retrieval - Add Image schema with SVG detection and storage - Add 9 curated theme presets (gallery, studio, boutique, etc.) - Add comprehensive tests for Settings and Media contexts - Add seeds with default Studio preset - All tests passing (29 tests, 0 failures)
17 lines
432 B
Elixir
17 lines
432 B
Elixir
defmodule SimpleshopTheme.Repo.Migrations.CreateSettings do
|
|
use Ecto.Migration
|
|
|
|
def change do
|
|
create table(:settings, primary_key: false) do
|
|
add :id, :binary_id, primary_key: true
|
|
add :key, :string, null: false
|
|
add :value, :text, null: false
|
|
add :value_type, :string, null: false, default: "string"
|
|
|
|
timestamps(type: :utc_datetime)
|
|
end
|
|
|
|
create unique_index(:settings, [:key])
|
|
end
|
|
end
|