diff --git a/lib/nulla/instance_settings.ex b/lib/nulla/instance_settings.ex new file mode 100644 index 0000000..7ed5956 --- /dev/null +++ b/lib/nulla/instance_settings.ex @@ -0,0 +1,20 @@ +defmodule Nulla.InstanceSettings do + use Ecto.Schema + import Ecto.Changeset + + schema "instance_settings" do + field :name, :string + field :description, :string + field :domain, :string + field :registration, :boolean, default: false + field :max_characters, :integer + field :max_upload_size, :integer + end + + @doc false + def changeset(instance_settings, attrs) do + instance_settings + |> cast(attrs, [:name, :description, :domain, :registration, :max_characters, :max_upload_size]) + |> validate_required([:name, :description, :domain, :registration, :max_characters, :max_upload_size]) + end +end diff --git a/priv/repo/migrations/20250527054942_create_instance.exs b/priv/repo/migrations/20250527054942_create_instance.exs new file mode 100644 index 0000000..4fe6dc8 --- /dev/null +++ b/priv/repo/migrations/20250527054942_create_instance.exs @@ -0,0 +1,14 @@ +defmodule Nulla.Repo.Migrations.CreateInstanceSettings do + use Ecto.Migration + + def change do + create table(:instance_settings) do + add :name, :string, default: "Nulla", null: false + add :description, :string, default: "Freedom Social Network", null: false + add :domain, :string, default: "localhost", null: false + add :registration, :boolean, default: false, null: false + add :max_characters, :integer, default: 5000, null: false + add :max_upload_size, :integer, default: 50, null: false + end + end +end