app/models/ruby_conversations/concerns/message_validation.rb



# frozen_string_literal: true

module RubyConversations
  module Concerns
    # Handles validation-related functionality for Message
    module MessageValidation
      extend ActiveSupport::Concern

      private

      def validate_messages
        messages.each do |message|
          next if message.valid?

          message.errors.full_messages.each do |msg|
            errors.add(:messages, "invalid: #{msg}")
          end
        end
      end

      def validate_message_level(message)
        return if message.valid?

        message.errors.full_messages.each do |msg|
          errors.add(:base, "Message error: #{msg}")
        end
      end

      def validate_prompt_level(prompt)
        return if prompt.valid?

        prompt.errors.full_messages.each do |msg|
          errors.add(:base, "Message prompt error: #{msg}")
        end
      end

      def validate_input_level(input)
        return if input.valid?

        input.errors.full_messages.each do |msg|
          errors.add(:base, "Message prompt input error: #{msg}")
        end
      end
    end
  end
end