mobilizon/priv/repo/seeds.exs

42 lines
1.3 KiB
Elixir

# Script for populating the database. You can run it as:
#
# mix run priv/repo/seeds.exs
#
# Inside the script, you can read and write to any of your
# repositories directly:
#
# Mobilizon.Repo.insert!(%Mobilizon.SomeSchema{})
#
# We recommend using the bang functions (`insert!`, `update!`
# and so on) as they will fail if something goes wrong.
import Mobilizon.Factory
# Insert an user
user = insert(:user)
# Insert an actor account
actor = insert(:actor, user: user)
# Insert a second actor account for the same user
actor2 = insert(:actor, user: user)
tag1 = insert(:tag)
tag2 = insert(:tag)
tag3 = insert(:tag)
# Make actor organize a few events
event = insert(:event, organizer_actor: actor, tags: [tag1, tag2])
event2 = insert(:event, organizer_actor: actor, tags: [tag1, tag2])
event3 = insert(:event, organizer_actor: actor, tags: [tag1])
event4 = insert(:event, organizer_actor: actor2, tags: [tag3, tag2])
insert(:participant, actor: actor, event: event, role: :creator)
insert(:participant, actor: actor, event: event2, role: :creator)
insert(:participant, actor: actor, event: event3, role: :creator)
insert(:participant, actor: actor2, event: event4, role: :creator)
insert(:participant, actor: actor, event: event4, role: :participant)
# Insert a group
group = insert(:actor, type: :Group)