* Added a global config helper to easily access installation/global configs
* this will fetch the keys from cache with fallback to DB on cache miss
* ability to query multiple keys simultaneously
* interface to delete the existing global config cache
* Added tests for this new helper module
* Renamed concern from Feature to Featurable
* Feature: Installation config (#839)
* Added new model installtion config with corresponding migrations and specs
* Created an installation config yml (key value store model)
* Created a config loader module to load the installaltion configs
* Added this to the config loader seeder
* Changed the account before create hook for default feature enabling to use the feature values from installtion config
* Renamed the feature concern to Featurable to follow the naming pattern for concerns
* Added comments and specs for modules and places that deemed necessary
* Refactored config loader to reduce cognitive complexity (#839)
* [#139] Delayed emails for conversations
* Added the setex and get methods to Redis wrapper
* Set the priorities for the sidekiq queues
* Was not able to use mailhog for testing email in local, switched back to letter opener and added comments on using the SMTP settings
* Added after create hood in messages to queue the sending of mail after 2 minutes using sidekiq worker and also set the redis key for the conversation to avoid the email sending for every message
* Added the sidekiq worker to send the email and delete the conversation redis key
* Added the mailer and mail template
* mailer sends the last 10 messages along with the new messages from the time it was queued
* Send email only in development or if smtp config is set
* Send email only in development or if smtp config is set
* Set the SMTP_PORT in production variable
* Adding redis to circle CI
* Specs for the conversation email changes
* Added specs for conversation email sidekiq worker
* Added specs for conversation mailer
* Added specs in message model for the after create hook for notify email
* Send emails only when there is a reply from agent
* set development to use mailhog
* Adding comments for using letter opener
* Add annotate gem to the project
* Annotate models, fixtures, factories and model_specs
* Keep annotations only in Models
* Remove unwanted changes in model specs
* Exclude auto_annotate_models from rubocop
* Added dotenv-rails gem to manage environment variables
* Added dotenv-rails gem to manage environment variables
* Removed figaro which was used earlier for this purpose
* Standardized variable names
* Changed all env variables to be upper case. This included changes in files referencing env variables.
* Added example env file with all variables set to empty value
* Removed the earlier setup of copying application.yml and database.yml and the scripts and documentation associated to this
* Docker setup
* Added docker file for building the docker images
* Added entrypoint.sh script which is referenced inside the Docker image
* Cloned the Procfile for development using docker which has slight change compared to regular procfile
* Added the docker-compose.yml which has 3 service's configuration, postgres, redis and chatwoot server and a mounted volume for postgres
* Added docker related info to documentation
* Added the docker setup info in the documentation
* Added info for using`rbenv` instead of rvm for managing ruby versions
* Updated the documentation for environment variables to have one about `dotenv-rails` gem and removed the documentation about the old copy paste method used by figaro
* Changing the postgres database, username and password as environment variables
* Removed database.yml from gitignore
* Made the postgres databse, username and password as environemnt variables
* Added this in documentation
* Added a quick setup page
* Added quick setup page
* Removed the docs from README and added link to the docs in website
* Removed the figaro related things from circle.ci config
* Adding external volume for redis in docker compose
* Added instructions for adding the redis volume in docs
* Add Conversation factory with dependent factories
* Include FactoryBot methods in rspec config
* Add unit tests for public methods of Conversation model
* Move Current model into a separate file in lib folder
* Disable Metrics/BlockLength rule for db/migrate and spec folders
* Get rid of global $dispatcher variable
* Create Message#unread_since scope
* Refactor callback methods in Conversation model
* Create Conversations::EventDataPresenter
* Add translation keys for activity messages
* Add pry-rails gem
* Refactor Conversation#notify_status_change
* Add mock_redis for test env