diff --git a/config/config.exs b/config/config.exs index 27f682e..837e2c3 100644 --- a/config/config.exs +++ b/config/config.exs @@ -53,7 +53,7 @@ config :spark, config :decentralised_book_index, ecto_repos: [DecentralisedBookIndex.Repo], generators: [timestamp_type: :utc_datetime], - ash_domains: [DecentralisedBookIndex.Accounts] + ash_domains: [DecentralisedBookIndex.Books, DecentralisedBookIndex.Accounts] # Configures the endpoint config :decentralised_book_index, DecentralisedBookIndexWeb.Endpoint, diff --git a/lib/decentralised_book_index/books.ex b/lib/decentralised_book_index/books.ex new file mode 100644 index 0000000..ce6f67f --- /dev/null +++ b/lib/decentralised_book_index/books.ex @@ -0,0 +1,8 @@ +defmodule DecentralisedBookIndex.Books do + use Ash.Domain, + otp_app: :decentralised_book_index + + resources do + resource DecentralisedBookIndex.Books.Book + end +end diff --git a/lib/decentralised_book_index/books/book.ex b/lib/decentralised_book_index/books/book.ex new file mode 100644 index 0000000..644ade4 --- /dev/null +++ b/lib/decentralised_book_index/books/book.ex @@ -0,0 +1,30 @@ +defmodule DecentralisedBookIndex.Books.Book do + use Ash.Resource, + otp_app: :decentralised_book_index, + domain: DecentralisedBookIndex.Books + + actions do + defaults [:read] + end + + attributes do + uuid_primary_key :id + + attribute :title, :string do + allow_nil? false + public? true + end + + attribute :isbn, :string do + allow_nil? false + public? true + end + + attribute :description, :string do + allow_nil? false + public? true + end + + timestamps() + end +end