94 lines
2.4 KiB
Elixir
94 lines
2.4 KiB
Elixir
# Script for populating the database. You can run it as:
|
|
#
|
|
# mix run priv/repo/seeds.exs
|
|
#
|
|
|
|
alias Mv.Membership
|
|
alias Mv.Accounts
|
|
|
|
for attrs <- [
|
|
%{
|
|
name: "String Field",
|
|
value_type: :string,
|
|
description: "Example for a field of type string",
|
|
immutable: true,
|
|
required: true
|
|
},
|
|
%{
|
|
name: "Date Field",
|
|
value_type: :date,
|
|
description: "Example for a field of type date",
|
|
immutable: true,
|
|
required: true
|
|
},
|
|
%{
|
|
name: "Boolean Field",
|
|
value_type: :boolean,
|
|
description: "Example for a field of type boolean",
|
|
immutable: true,
|
|
required: true
|
|
},
|
|
%{
|
|
name: "Email Field",
|
|
value_type: :email,
|
|
description: "Example for a field of type email",
|
|
immutable: true,
|
|
required: true
|
|
}
|
|
] do
|
|
Membership.create_property_type!(
|
|
attrs,
|
|
upsert?: true,
|
|
upsert_identity: :unique_name
|
|
)
|
|
end
|
|
|
|
# Create admin user for testing
|
|
Accounts.create_user!(%{email: "admin@mv.local"}, upsert?: true, upsert_identity: :unique_email)
|
|
|> Ash.Changeset.for_update(:admin_set_password, %{password: "testpassword"})
|
|
|> Ash.update!()
|
|
|
|
# Create sample members for testing
|
|
for member_attrs <- [
|
|
%{
|
|
first_name: "Hans",
|
|
last_name: "Müller",
|
|
email: "hans.mueller@example.de",
|
|
birth_date: ~D[1985-06-15],
|
|
join_date: ~D[2023-01-15],
|
|
paid: true,
|
|
phone_number: "+49301234567",
|
|
city: "München",
|
|
street: "Hauptstraße",
|
|
house_number: "42",
|
|
postal_code: "80331"
|
|
},
|
|
%{
|
|
first_name: "Greta",
|
|
last_name: "Schmidt",
|
|
email: "greta.schmidt@example.de",
|
|
birth_date: ~D[1990-03-22],
|
|
join_date: ~D[2023-02-01],
|
|
paid: false,
|
|
phone_number: "+49309876543",
|
|
city: "Hamburg",
|
|
street: "Lindenstraße",
|
|
house_number: "17",
|
|
postal_code: "20095",
|
|
notes: "Interessiert an Fortgeschrittenen-Kursen"
|
|
},
|
|
%{
|
|
first_name: "Friedrich",
|
|
last_name: "Wagner",
|
|
email: "friedrich.wagner@example.de",
|
|
birth_date: ~D[1978-11-08],
|
|
join_date: ~D[2022-11-10],
|
|
paid: true,
|
|
phone_number: "+49301122334",
|
|
city: "Berlin",
|
|
street: "Kastanienallee",
|
|
house_number: "8"
|
|
}
|
|
] do
|
|
Membership.create_member!(member_attrs)
|
|
end
|