module Adamantium module Validation module Posts class BookContract < Dry::Validation::Contract params do required(:name).maybe(:string) required(:content).filled(:string) required(:category).array(:string) required(:published_at).maybe(:time) required(:slug).filled(:string) required(:post_type).value(included_in?: %w[book]) required(:book_author).maybe(:string) required(:book_status).value(included_in?: %w[to-read reading read finished]) end end end end end