# frozen_string_literal: true

require_relative 'active_record_conversion'
require_relative 'active_record_queries'
require_relative 'basic_repository'

module Upgrow
  # Repositories are responsible for the persistence layer of the app. They
  # encapsulate Rails' Active Record in a subset of simple methods for querying
  # and persistence of data, and return simple read-only objects as a result.
  # This allows the app to isolate Active Record only to this subset, exposing
  # only the desired queries and methods to other layers through Repositories.
  class Repository < BasicRepository
    include ActiveRecordConversion
    include ActiveRecordQueries
  end
end