defmodule Mobilizon.Repo.Migrations.CreateTodos do
  use Ecto.Migration

  def change do
    create table(:todo_lists, primary_key: false) do
      add(:id, :uuid, primary_key: true)
      add(:title, :string)
      add(:url, :string)
      add(:actor_id, references(:actors, on_delete: :delete_all), null: false)

      timestamps()
    end

    create table(:todos, primary_key: false) do
      add(:id, :uuid, primary_key: true)
      add(:title, :string)
      add(:url, :string)
      add(:status, :boolean, default: false, null: false)
      add(:due_date, :utc_datetime)
      add(:creator_id, references(:actors, on_delete: :delete_all), null: false)
      add(:assigned_to_id, references(:actors, on_delete: :nilify_all))

      add(:todo_list_id, references(:todo_lists, on_delete: :delete_all, type: :uuid), null: false)

      timestamps()
    end
  end
end